What's the most annoying thing every backend developer must do at the beginning of their project? Create some level of Create-Read-Update-Delete (CRUD) APIs to be consumed by the front end. Then, add some authentication and authorization. Plenty of tools are great for solving this problem: why build a new one?
Let's talk about the Pareto Principle: roughly 80% of outcomes come from 20% of causes.
How does this impact software development? In practice, only 20% of the features (the hard ones) cause 80% of the effort. While a solution is to not implement those features (like Apple did with the copy&paste in the original iPhone), those will be needed in the end.
What would you optimize for? My secret sauce for delivering projects on time and on budget is to design flexible systems that can cater to the unknown - the hard features that would definitely come. Unfortunately, most solution for "quick" API development on the market fails the test of time and eventually becomes technical debt. At Platformatic, we want to build a solution that can avoid "repetitive" tasks and be extremely flexible for 20% of hard tasks.
The first friction we are solving is the tiresome mapping of databases table to APIs that burden any developer. Should I use an automated tool, or should I build everything from scratch? Whenever I chose one or the other, I felt I was making a significant compromise. I wanted a solution where I could have my cake and eat it too!
Platformatic DB is a daemon that can turn any PostgreSQL, MySQL, MariaDB, or SQLite database into a REST and GraphQL endpoint. What makes it special is that it allows massive customization thanks to the flexibility of Fastify plugins. You can start automated mapping and slowly rebuild the most complex part without compromise. Ultimately, it's all built on Fastify - you can even reuse the individual modules that compose Platformatic DB in your code! You can find all the docs at oss.platformatic.dev.
You can watch a quick demo at: loom.com/share/cb292b03ae684ac3ade99a7717f5...
Here are a few links to get you started: