[HN Gopher] Inertia.js - Build React, Vue, or Svelte apps with s...
___________________________________________________________________
Inertia.js - Build React, Vue, or Svelte apps with server-side
routing
Author : rob
Score : 128 points
Date : 2024-09-06 13:15 UTC (1 days ago)
(HTM) web link (inertiajs.com)
(TXT) w3m dump (inertiajs.com)
| begueradj wrote:
| My experience with using Inertia.js for Laravel has always been
| smooth and pleasant.
|
| But I can't say the same with translations/localisation.
| 0xblinq wrote:
| Translations are a pain in the "SPA world".
|
| Having to load every single string from your entire application
| is something I don't like at all. I wish at some point we have
| a solution where we can just create a bundle per language so we
| can get code splitting, etc and just ship what's necessary for
| your locale.
|
| For the Inertia project I work on at my job, we just use a
| "frontend" translation solution and keep the Rails translations
| system just for the backend.
| ncphillips wrote:
| Really? What's been the issues? We have our app fully
| translated and it's seemed fine.
| calexanderaz wrote:
| Inertia is pretty interesting! Recently, Elixir / Phoenix started
| supporting it:
|
| https://youtu.be/uyfyFRvng3c
| rmsaksida wrote:
| How good is the Rails integration? I know Inertia is very popular
| in the Laravel community, but I rarely see it being mentioned
| among rubyists.
| efields wrote:
| The React example is 2 years old but doesn't look that
| different than what I would do today:
| https://github.com/BrandonShar/inertia-rails-template
|
| The rails adapter is up to date, sponsored:
| https://github.com/inertiajs/inertia-rails?tab=readme-ov-fil...
| chao- wrote:
| I became aware of Intertia from a Ruby shop some time in 2022,
| who had good things to say, along the lines of "We could not
| ship as fast as we do without it." At work we are exploring
| Inertia to migrate parts of a long-lived Rails application
| quickly-but-gradually into an SPA. Have not gone live with the
| first feature yet, but so far a proof-of-concept and our
| exploration have been positive.
|
| By "quickly-but-gradually", I mean that some pages will remain
| server rendered, and gradually more migrate to being browser-
| rendered, but each new page or slice of functionality is very
| quick to port over. If you have any sort of viewmodel,
| presenter, or form object abstraction in your server-rendering
| architecture, it is much faster to just turn that into JSON and
| use Interia than it is to convert everything into pure JS/TS
| and generalize a set of APIs to serve the frontend. Of course
| YMMV depending on your existing architecture and needs.
| 0xblinq wrote:
| At work we replaced a super messy hotwire/stimulus frontend
| with Inertia+React and we're super happy about it, no issues at
| all.
|
| The project is a lot easier to maintain and Inertia just does
| what it says it does.
| banashark wrote:
| Adonis has great support for inertia builtin. Very quick to get
| started. https://docs.adonisjs.com/guides/getting-
| started/installatio...
|
| Docs here: https://docs.adonisjs.com/guides/views-and-
| templates/inertia
|
| Using inertia with SSR is very nice for the combination of:
|
| * I want to have simple server-rendered views, with added client
| side sprinkling
|
| * I want to be able to use off-the-shelf components like complex
| data grids to build fast
|
| * I want to minimize API communication headaches
| lessname wrote:
| I really like the server side routing part of Inertia and that
| you can pass data to the frontend directly in the first request
| without needing to do an additional http request (altough this
| might be a bit problematic for sensitive information in case the
| sites are cached).
|
| However, there are also things that make it feel gimmicky:
|
| - The resolve function createInertiaApp runs more than once
| (mainly) on the first page load causing a re-render and it seems
| like there is no plan to fix that in near feature
| https://github.com/inertiajs/inertia/issues/1595 /
| https://github.com/inertiajs/inertia/issues/1091
|
| - There are issues like this where they could at least merge the
| PR to improve the documentation as there seem to be many people
| to misunderstand the usage the function but it did not happen
| https://github.com/inertiajs/inertia/issues/1631
| miohtama wrote:
| Is there any functionality that is not offered by SvelteKit?
| SvelteKit is batteries including SSR/web server solution for
| Svelte and works beautifully together, as they are tightly
| coupled.
| izietto wrote:
| Yes, It works with any backend
| samldev wrote:
| I switched from Svelte/SvelteKit to Svelte/Laravel and my
| productivity went through the roof. Same would apply with Rails
| or probably other batteries included backends. SvelteKit gives
| you SSR but that's it. Laravel/Rails/etc gives you database,
| queues, real time support, authentication, authorization, the
| list goes on.
|
| I plan to make my next YouTube video making my case for why
| Laravel is better with Svelte than SvelteKit is
| https://youtube.com/@samldev
| miohtama wrote:
| Thank you. I asked about SvelteKit vs. Inertia, not Laravel.
| halfcat wrote:
| It's not really a valid comparison. Inertia isn't a full
| stack solution like SvelteKit. You pair Inertia with a
| backend.
|
| The whole point of it is it bridges the backend you know
| (Laravel, Rails, Django) with frontends (React, etc),
| without having to mess with JSON APIs.
| miohtama wrote:
| SvelteKit is not a "full" (depending on the definition
| what full means) stack solution either, and is commonly
| used with backends like Django or Rails. For example, it
| does not have its own ORM.
| KaoruAoiShiho wrote:
| What's a Laravel equivalent in JS so we can stick with 1
| language instead of using PHP?
| mgkimsal wrote:
| What if there isn't one?
| jitl wrote:
| Redwoodjs seems active, Sails seems less active, Adonisjs
| I've heard of.
|
| The lack of a clear leader Rails clone in NodeJS land is
| probably the ecosystem's biggest weakness. The downstream
| effect is theres a bunch of typical libraries/clients are
| just... MIA in the node ecosystem. Like, there's no
| production grade Memcached client for node. -\\_(tsu)_/- We
| had to fork one & heavily patch it for Notion.
| miohtama wrote:
| One (not only) of the problem is that you cannot do it in
| JavaScript very well due to poor underlying support for
| types. You neded TypeScript to have the equicalent of
| ActiveRecord or Django model.
| jitl wrote:
| This doesn't follow because both Django and Rails evolved
| in languages without a type checking compiler. Rails is
| super dynamic in ways that would make Typescript type
| checker kind of sad.
| ncphillips wrote:
| There isn't one. There's been a couple attempts but they
| just don't hit the mark like Rails or Laravel do.
|
| Honestly, the upside of 1 language is not that high. Don't
| be afraid of PHP, it isn't the same language it was 15
| years ago. I've been programming JS for 10 years but only
| been using PHP for a year, it's weird but it's got some
| nice parts too.
| banashark wrote:
| Adonisjs, which is explicitly stated as taking major
| influence from laravel: https://adonisjs.com/
| 0xblinq wrote:
| It looks to me like you didn't even check what Inertia is?
|
| It basically gives you access to the entirety of features
| provided by Rails, Laravel, etc without having to write an API,
| create a separate codebase or deployment. You don't get any of
| that with SvelteKit. This is apples vs oranges.
| victorbjorklund wrote:
| You dont need to write the backend in Nodejs. If you want a
| svelte app with nodejs backend then sveltekit makes more sense.
| losthobbies wrote:
| There is a really good adocast channel on YouTube going over this
| and it's integration with Adonisjs
|
| https://youtube.com/playlist?list=PL9dIWiKCV571S3ILiADMKlZS4...
| halfcat wrote:
| How difficult is it to troubleshoot Inertia when something
| breaks?
|
| That was my only fear when I toyed with Inertia, Django, and
| Svelte for an afternoon. When I'd get an error it seemed obscure
| or not indicative of the underlying cause.
|
| What's everyone's experience? Inertia seems like magic. And
| that's what scares me a little.
| ncphillips wrote:
| My team of 5-6 devs has been using Inertia for a year now. I
| really don't think that Inertia is magic. Some of us have 10
| years experience, some 2 years. I don't think anyone on the
| team has had to troubleshoot Inertia. Nothing with Inertia has
| ever broken. Juniors have never gotten confused by how it
| works.
|
| It is just a simple bit of glue between your Vue app and your
| backend. The docs are good, and it overall just feels
| solid/stable. Super excited to see the new changes that are
| coming too!
| nsonha wrote:
| Is this similar to React Server Actions?
| mmerlin wrote:
| At the Laracon it was estimated the new version 2 of inertia will
| be released in October with new features like multiple async
| requests, polling, infinite page scroll with smart background
| loader, etc
| jitl wrote:
| It's funny, this is how we built apps in 2014-era Rails at
| Airbnb, and by 2015 we were doing server-side rendering of some
| React components too. We had a thing to pop a React component
| into our regular rails views as a "partial".
| <%= render_react_component('MyComponent.js', :name => 'Hypernova
| The Renderer') %>
|
| https://github.com/airbnb/hypernova?tab=readme-ov-file#rails
| jrajav wrote:
| Wishing this (Hypernova) was still maintained at all! We've
| been eyeing it, and it would be an absolute perfect fit for our
| Rails / React-heavy shop that is close to requiring SSR. As is,
| it seems like the only viable, supported solution in this space
| is Shakacode's.
| jitl wrote:
| It's really not a lot of code to do this. I'm sure you could
| study the codebase a bit and then write your own in-repo and
| have a great time. If I were writing a Rails app tomorrow I'd
| make my own, although the Shakacode docs looked fine too.
| tamimio wrote:
| This is good if you would compile your node app into a binary,
| everything in one place.
| dSebastien wrote:
| I really like Inertia. For my project, I have chosen yo use
| Laravel with the Jetstream starter kit, converted to React. It
| works quite well for my current use cases.
|
| https://github.com/knowii-oss/knowii
| adrum wrote:
| I've used this package several times to automate the Vue to
| React chore. Works pretty well.
| https://github.com/ozziexsh/laravel-jetstream-react
| adrum wrote:
| Here's a server-side community adapter our team has been using
| for ASP.NET Core. It works pretty well! I helped contribute the
| Vite helper to bring HMR and ease of integration.
|
| https://github.com/kapi2289/InertiaCore
___________________________________________________________________
(page generated 2024-09-07 23:01 UTC)