I never used Rails other than doing it's tutorial, etc. And I only know hotwire by their docs, so I can't do a real life / production code comparison.
But from my understanding, Unpoly manages to achieve almost the same thing that Turbo + turbo frames can do, plus some other extra goodies such as modals (now layers), forms validation, etc. I honestly like Unpoly a lot more, and it also works with any backend framework "as is", given it does not require any special behaviour from the backend. That's a big win in my opinion...learning a tool that can be used everywhere can't be a bad thing.
The only thing I miss in Unpoly, is something equivalent to Stimulus. You do have "compilers" which allow you to attach custom JavaScript to any Dom element, but everything you do there is pretty manual and imperative. For these use cases I also use Alpine.
I'm working on a project with Laravel + Unpoly. It's an extremely easy and straight forward stack. And I knew zero PHP when I started, but I don't find it difficult at all.
I've been using node/react for a lots of years. This year I started working on a project built with Laravel. I can confirm it is a GREAT framework. Suddenly everything is reasonably easy again.
After like 8 years working with node/react, this year I got into this exact stack.. and OMG... feels like cheating. I had forgotten life could be easier.
I used to think like this, but nowadays I think that's no a real problem, at eñadt to me. I find it very easy to go across different JavaScript projects with different libraries, etc. Usually the worst part is understanding the business domain, the warts of the application, the know bugs, problems, etc.
The libraries used, as long as they have documentation and are supported and more or less widely used...that's fine, they're easy to learn. And if I have to switch between 10 different projects, then for me that's the actual problem, not the fact they have different architectures.
What has been a terrible experience for me, was when at two past companies in an attempt to "standardize" they ended up with custom in house libraries and wrappers, all of them built in house, undocumented, with the original developers already gone and nobody knowing/wanting to touch them. And then the rejection of any kind of improvement or modernization because "then that new app will have a different architecture"... So what? We have a terrible one, and we need to do every project terrible, so everything is consistently terrible.
> So, if you're doing all of this effort anyway, why go through the effort of using the HTML input checkbox at all?
Because HTML is the only way to do a checkbox?... Even if you use JavaScript, at the end of the day you'll have to generate HTML for it to render... so then why go through the effort of using JavaScript for a checkbox at all?
Meanwhile I'm having a ton of fun (and better metrics) by just rendering html from the server and using Unpoly for interactivity and "old style ajax" dynamic updates. And still building the entire application in JavaScript, end to end.
The closest thing I can think of to what you're asking for is https://tallstack.dev/. You have everything you might need there and you will have to take zero decisions tech stack related.
There are also those "no code" tools, but I've never used them and I'm pretty skeptical about it.
I kind of disagree on the last one, or at least there is a huge step from the second one to it.
I've used next.js for a project which I think qualifies as the new hotness. Once I had to add translations, authentication and do some authorization checks, and make all of this work with SSR, it became a hell of a nightmare and I regretted it so much.
For me the quickest and most robust way to build anything web related, as a single dev or as a small team is Laravel + Unpoly + tailwind. That's a real full stack: from authentication, translations, background jobs, componetized views, ajax updates and form submissions, etc, etc.
A pretty well known ticketing company bought our startup a few years ago, and after the first week of parties, raising salaries and hyping us the reality struck us very hard. It was impossible to do any work at all. Anything you wanted to do would require tons of meetings, there was always a few people blocking any initiative you could have.
And then the freaking Agile By The book (with agile coaches and all!) I couldn't stand for the life of me. We'd have like 10 ritual meetings a week and the joke was that those meetings were to discuss "What we're going to do, what we're not doing, and what we didn't do".
Worst part, is that *everything* pushed you to just stay at your desk watching online courses or reading stuff on the internet and do nothing, and as long as you showed up to your scheduled meetings, all was good. You'd even get promotions by just smiling around and being nice to others.
I left that and now I'm at a company about 3 times as big. The difference is that here we're 100% remote and 100% async, written communication. Literally ZERO work meetings a week, just one "hang out" to not forget about the faces of your coworkers. No Agile, no Jira, no bullshit. A shared "to do" list to show others what you're on and weekly reports of your progress. I just can't believe how well this works.
I consider myself just a "Web Developer". That's it. Do you need frontend? I can do it. Do you need backend? I can do it. Do you need a deployment script or a CI pipeline? I can do it. I'm in my 40s and I've been doing this since I was 17, so it's not that I'm special. I'm just old and spent a lot of time learning everything I can learn.
I'm terrible at designing, management, or "product" management. But I'm pretty decent at all of the others, stronger on some areas and a bit weaker on others, but I can do all of what's required to ship a working web application/site to our customers and I have a pretty awesome salary because of this.
I prefer Unpoly, which I already know. Or inertia if I have to go full Js.