I'm a fullstack JavaScript dev. I used to write everything in pure React and serve it with Express on Node but two years ago I started experimenting with all the fancy new frameworks and now my every project is:
- Gatsby or Next depending on how dynamic the content is
- Firebase for db, auth, and bucket storage, and sometimes hosting
- Vercel for NextJS hosting
- Recoil for state management; after years of using Redux it feels amazing, like it's a part of React
- ImmerJS for immutability
- SASS for CSS
I love my current stack. It definitely took a while to make everything work together smoothly. I don't understand the complaints about modern web dev. I've been building websites for almost 20 years and this is the most productive and fast I've ever been.
The only thing I still haven't figured out is CMS. Tried all of the fancy new headless CMSs but nothing works for me. Working on my own.
I had a look at a lot of the available headless CMS systems last year. Didn't fancy any of them as they just seemed like a UI for building a db schema essentially. So I just added the relevant tables for my content to my db and then it was trivial to add content management UI to react-admin and add react pages on the main website to show the content.
I think you don't find many problems because you're using firebase and that's outsourcing a lot of problems you'd face if you weren't using it.
Many people don't want to be tied to a provider to this level (I think it's all about trade offs, not saying it is a good or bad thing).
In the stack you described, in my experience, it is a real headache to get a stable and realiable system where you need authentication, permissions, users management, a CMS, background jobs, input validation, migrations, internationalization, etc.
Ruby on rails, Laravel, Django, etc provide a clean, well documented and battle tested solution to all of this. The modern stack you describe, if not outsourcing all of this to a third party, it is pretty complicated and no one builds it the same way.
That's why people complain about these modern stacks being complicated, you're just not feeling it because of the trade offs you've made. (Good for you!).
Yes, it was my favorite for a while. But recently I switched to GraphCMS for more basic data structure and I love it. Especially the UI.
I think what the market is missing is a sort of locally run CMS that is file based with Sqlite and managed completely with Git. Something that can can be moved around with project easily and have great version control.
Let's say you have a /content folder in your project that is it's own separate git repo, and there you have .md or .txt or sqlite files, and your assets, and there's a browser based client to manage it that runs locally.
- Gatsby or Next depending on how dynamic the content is
- Firebase for db, auth, and bucket storage, and sometimes hosting
- Vercel for NextJS hosting
- Recoil for state management; after years of using Redux it feels amazing, like it's a part of React
- ImmerJS for immutability
- SASS for CSS
I love my current stack. It definitely took a while to make everything work together smoothly. I don't understand the complaints about modern web dev. I've been building websites for almost 20 years and this is the most productive and fast I've ever been.
The only thing I still haven't figured out is CMS. Tried all of the fancy new headless CMSs but nothing works for me. Working on my own.