I think one of the things that sort of stopped rails from becoming mainstream was that when WebApps really took off everything switched to SPA apps. Now that's shifting back a bit (a good thing imo) as many people are starting to recognize the downsides of frontend apps. Next.js is basically one giant workaround for the shortcomings of spa apps.
Rails isn't mainstream? I'm of the opposite opinion - it's definitely in the Boring Technology† Club. It's well known that it's hard to find a more productive tech stack for building server side web apps.
Rails made Microsoft change its entire web strategy. It influenced so much. Rails is so mainstream that it doesn't get talked about like a hot new tech anymore. If you were a web developer in 2006~2016 it was still hot tech but kind of lost the plot IMO when they really started futzing around with the asset pipeline.
That’s fair, I guess I’m comparing it to how stable the controller and Active Model APIs have been. I wish Rails had taken a more hands off approach and let the frontend community plug in their own approaches to tooling instead of taking opinionated stances and then rolling them back after a while. I understand that Rails is “omakase” but I had to learn the frontend tooling, anyway, and the Rails versions are different enough to invalidate that learning.
Yes, i don't like to fight against the assets pipeline, but to be honest, I just went from Sprockets to Propshaft and never tried to use Webpacker.. you can even still use Sprockets with rails 7, so you could use the whole time, plain Sprockets and you would be doing fine.
Next.js isn’t one giant workaround for anything. People were building isomorphic SPAs using React long before Next was created. All Next.js did is to put it all together in a simple framework.
Some googling tells me that isomorphic SPA means the same page can be rendered server side or client side. Is that what it means to you? It's my first time encountering the term. If so ... people were doing that in react??
What alternatives would you propose? Usually when people are surprised by this, digging in reveals that they don’t really know what “client-side rendering” means.
It’s really a pity because nest.js is an awesome and very intuitive backend framework. Because it’s written on top of express, the real power comes from being able to drop down to the express layer anytime.