We're also using Inertia in a pretty large project and we're super happy with it.
959 karma · joined September 19, 2022
We're also using Inertia in a pretty large project and we're super happy with it.
Yeah, Inertia is great. We're supper happy with it. It simplified a lot of things and makes us feel we're building something robust and maintainable.
I agree the "popular" JavaScript solutions are a complexity, over engineering and maintenance nightmare (I'm talking about Next.js mostly here).
But if you use somethink like Inertia, which TL;DR basically just makes React (or Vue) a templating library for your backend framework, it becomes super simple and easy to maintain. I find Inertia great because it's the perfect bridge that can make both backend and frontend devs happy, as it gives you the best of both worlds.
Hotwire is great, but you do need to invest into its way of doing things, and believe me... backend devs who hate on JS doing frontends leads to disaster in the same way JS devs hating on PHP/Ruby/Etc doing backend also leads to disaster.
Last year we replaced Hotwire in a medium size Rails app with Inertia because even if it was quite fast to build new features with, it became a total nightmare to maintain. Simple things such as a modal were split in 4 or 5 different files... some logic was in controllers, other in templates, then the stimulus controller for this and that, and the frames, and... nobody knew what to change.
The problem with Hotwire is that you need to be super "creative" with your solutions and take decisions like should I use a stimulus controller, a frame, a stream? or what? at every single step, and a single functionality ends up split in multiple different places. While with React or Vue it would be just a single component with an isOpen=true/false and done.
I insist... if you look at the "modern frontend" situation thinking on Next.js, Redux, css-in-js, etc... yes... it's a f*ng over engineering marketing hype bullshit hell.
But React/Vue on their own do provide some real benefits and real solutions to actual problems.
I think inertia brings to backend frameworks all the benefits of these tools, with minimal (and worth it, in my opinion) trade offs.
If you end up using Hotwire, just be careful and be warned... it's very likely to become a mess sooner, especially if used by JS haters.
All this server side components is just over engineering no one needs, and even if you think you need it the complexity and vendor lock in introduced is not a trade off worth to do in my opinion.
Also, repeating this again… the hype and the marketing from HTMX is something I never thought I would see, it’s worse than vercel’s
Not using a framework leads to either spaghetti code, or reinventing your own undocumented, untested, unproven framework.
A feature nobody needed that breaks the ecosystem and introduces huge amounts of complexity.
It hurts to see.
Using typescript and next maybe you are super productive writing code, but in the big scheme of things you are not productive if you have to reinvent the wheel and write your own framework.
Neither Next nor typescript will give you an integrated solution for translations, background jobs, schedules, validation, ORM, queues, file uploads, authentication, authorization, etc.
Granted, you’re super fast writing typescript but we are not talking about the same kind of productivity I think.
Not a single one of those provide even a way to do translations, run a background job and most don’t even provide an ORM or a way to validate input.
It’s a freaking joke.
You’re wrong on this. You’d use Alpine and do the interactivity client side. If you don’t miss use the tool, Livewire is supposed to reach to the server in the same situations an SPA would reach to the server (updating or refreshing server state)
And this is a big problem in my opinion. We should decide the stack that better solves the problem, and then hire people that are happy to work with that, not the other way around.
It's like saying you're in the business of putting screws into walls, but you do it always with hammers because most people like to use hammers.
Also, to me at least, just because it’s able to execute code on the browser and on the server doesn’t mean “full stack”.
Let me know when it supports all the real stuff you need to build actual “full stack” applications.
My comment definitely applies to the other two options you listed.
Also, the list they gave you will be different next month.
I've seen marvels and disasters in every stack.
My last sentence on the parent message was directed to the comment I was replying to (which said they couldn't set up node properly).
What I do think is that there's a huge % of Rails devs that hate on JavaScript as if it were some kind of enemy to beat or something, and often that leads to people not wanting to learn it properly.