I love reading the comments.
There are no simple answers.
I was and still am in a similar situation.
Since performance, ease of use and resource consumption are important my backend language of choice is Go.
So I wrote a simple backend generator with RESTful CRUD endpoints.
The workflow is, you define the data models in your models package. The generator then analyzes those models, creates all the routes and repositories and handlers, then creates Angular model definitions (interfaces) and finally vuex-orm model definitions.
It's very simple and primitive.
If you want to change anything you have to regenerate.
So this gives you a skeleton backend app. No auth.
But that's the general idea.
It uses mongodb as a database target.
And most importantly it supports data updates via websocket.
I initially worked with Angular on the frontend but have been using Vue for the last 2 years.
Angular sadly only has ngrx-data which is incomplete. Relationships are not supported and have to be done manually.
So I found vuex-orm, which is far from perfect, but works well and is productive, supports relationships.
However vuex has been deprecated in favor of Pinia.
Someone did a Pinia version of vuex-orm-next, but I haven't tried it yet.
So that's all I have.
I've been thinking to rewrite it. I wanted a simple tool, that doesn't get in my way.
I've been thinking to have a clumsy model definition way like entgo.io . And the more I worked with it, the more I see that their way is a better way. Have elaborate model definitions and relationship definitions.
I was thinking about that for a while and ent made it.
But ent is far from perfect too. It doesn't generate client models, it's complicated, the documentation is lacking. The developers assume you're smart. I'm not smart when I have to crawl through someone else's code.
They're going a certain route, and both their graphql and grpc implementations are lacking.
I tried to write an extension but the learning curve was too steep.
And now they have migrations with some external library, am I'm just sitting there thinking, why do you assume your libraries are a part of my world. The whole thing is a mix of marketing and hype development. They have their own company now and of course they want to make money.
I prefer something less hype driven. Something where when you criticize you don't self censor in order to not hurt their reputation. And I hate that.
So I'm thinking make such library myself but how can I monetize?
Who would pay me to create a useful tool to solve this 20+ year old problem? This a serious question.
I could open source my tool so far. But I didn't because it could be used by competitors to provide what I provide.
Currently my income is so low that I'm actually seeking either employment or freelance work, which I haven't done in at least 8 years.
An alternative would be Spring Boot 3. Learn Java. But could I handle the Java bs on a regular basis? Sometimes when I hate Go, I experiment doing that same backend with Spring Boot. I do the JPA definitions, do the security setup and then I just say fuck it because deep diving requires more Java knowledge and the community is very unfriendly and walled-off.
I'll continue reading the other comments now.