codingtuto / LiteJsonDB-Node

LiteJsonDB is a lightweight, local JSON database for Node.js. It provides a simple and intuitive API for managing JSON data. This package is a fork of the Python LiteJsonDB project, adapted for Node.js, and is currently about 45% complete
2 stars 3 forks source link

Current State and Direction of LiteJsonDb (Node.js) #3

Open codingtuto opened 1 day ago

codingtuto commented 1 day ago

šŸ‘‹ Hi team,

Iā€™m taking over the development of the Node.js version of LiteJsonDb, and I wanted to address some concerns about where weā€™re heading.

To be honest, things arenā€™t in great shape right now. The original codebase was more structured, which made it easier to maintain and build upon. Unfortunately, some of the recent changes have made the project harder to manage.

For example, Bakarā€™s pull request introduces some great features (props for that), but it lacks clear architecture and modularity. This has kept the changes from being included in a release so far, despite the effort involved.

On the other hand, Doni rewrote the entire codebase in TypeScript in another pull request. While TypeScript has its benefits, this decision seems to have been made without much discussion, and itā€™s a significant shift from the Node.js native approach most of us have been following. We need consistency in our tools and workflow to stay efficient as a team.

Lastlyā€”and letā€™s be realā€”the Python version of LiteJsonDb is far ahead of the Node.js version. This gap is something we need to address, as itā€™s holding us back.

Hereā€™s what I propose:

  1. Stick to Node.js native for now to maintain team alignment and consistency.
  2. Migrate features from the Python version to the Node.js version step by step, so we can catch up.
  3. Redesign the architecture to make it more modular, maintainable, and scalable.

This isnā€™t about pointing fingersā€”Bakar and Doni, your contributions are appreciated. But we need to take a step back, refocus, and tackle the bigger picture to move the project forward.

What do you all think? Iā€™m here to discuss and figure out the best way forward together.

Letā€™s fix this together!

DoniLite commented 1 day ago

Hi Codingtuto and Team,

Thank you for taking the time to address these concerns and for outlining a path forward. I completely understand the need for consistency and alignment within the team, and I genuinely appreciate the feedback regarding the TypeScript rewrite.

When I decided to rewrite the codebase in TypeScript, my intention was to leverage the additional type safety and tooling support it provides, which I believed could enhance the long-term maintainability of the project. However, I acknowledge that this was a significant shift, and I should have initiated more discussion with the team before making such a major decision. I apologize if this caused any disruption or misalignment.

Regarding the proposal, I agree that:

  1. Team alignment and consistency are essential for the success of the project. If sticking to Node.js native is the agreed path forward, Iā€™m happy to work on aligning my contributions to this standard.
  2. Adopting features from the Python version step by step is a practical approach. Iā€™d be glad to assist in identifying and migrating these features to the Node.js version.
  3. A modular architecture would benefit the project immensely, and Iā€™m excited to contribute to this effort. Iā€™d also love to hear the teamā€™s thoughts on how we can integrate some of the benefits of TypeScript into the project in the future, perhaps in a more phased and consensual manner. If thereā€™s an opportunity to revisit this discussion later, Iā€™d be happy to contribute my perspective.

Lastly, I want to reaffirm my commitment to the project and the team. I value everyoneā€™s efforts, including Bakarā€™s feature additions, and Iā€™m looking forward to collaborating closely to improve LiteJsonDb together.

Let me know how I can help with the next steps.

Best regards, Doni

codingtuto commented 1 day ago

šŸ‘‹ Hey @DoniLite

First offā€”no need to apologize. Really. You took the initiative, rewrote the entire codebase, and submitted a pull request. Thatā€™s real work! Compare that to the usual ā€œIā€™ll totally contribute soonā€ crowdā€”you know who you are šŸ‘€ā€”and youā€™re already ahead. So, hats off to you for showing both skill and commitment.

Now, onto TypeScript. I get itā€”type safety, better tooling, fewer late-night debugging disasters. Itā€™s a solid choice, and I can see where you were coming from. But hereā€™s the deal: weā€™ve got five other contributors actively coding right now, and theyā€™re all in Node.js native. Thatā€™s our teamā€™s happy place at the moment, and consistency is key. So for now, letā€™s stick to what works for the majority, and revisit TypeScript later, maybe when the dust settles.

I really appreciate your willingness to align with the team direction, especially regarding the Python features migration. Between your skills, Bakarā€™s features (which weā€™ll modularize soon, promise!), and a bit more coordination, weā€™ve got everything we need to take LiteJsonDb to the next level. šŸš€

Also, to everyone lurking: Doniā€™s out here putting in the workā€”whatā€™s your excuse? šŸ˜‰

Letā€™s make this happen. Looking forward to the next steps!

DoniLite commented 1 day ago

Thanks for the kind words and clear direction! I completely understand the need for consistency, and Iā€™m all in for sticking to Node.js native for now. Iā€™ll start reviewing the Python features we could prioritize for migration, and Iā€™m here to help with modularizing Bakarā€™s features as well.

Letā€™s keep the momentum goingā€”excited to see how far we can take LiteJsonDb together! šŸš€