Quickly build modern single-page React, Vue and Svelte apps using classic server-side routing and controllers.

Inertia.js retweeted
What you’ll see during the Laravel team keynote at @LaraconUS - AI - TypeScript - Inertia - Nightwatch updates - Next evolution of Laravel Forge - Multiple banger features for Laravel Cloud Let’s ship.
35
56
589
59,291
We're working on big improvements to the @inertiajs docs! In the meantime we've added some quick wins to help AI understand Inertia better: inertiajs.com/llms.txt inertiajs.com/llms-full.txt You can now also add ".md" to any docs URL for Markdown: inertiajs.com/pages.md
13
39
337
26,671
We crushed a ton of @inertiajs PRs the past couple of weeks and some great stuff got shipped. A few highlights: ⛵ Laravel Wayfinder integration The `form.submit` method and the `Link` component now accept Wayfinder-shaped objects.
9
28
200
33,698
Inertia.js retweeted
.@inertiajs's "Deferred Props" feature explained in 2 minutes. 🥁
5
20
166
15,185
Inertia.js retweeted
This is a huge milestone for Inertia.js! 🎉 I’m incredibly grateful to the Laravel team for taking this project under their wing. Working with Joe and Taylor has been an absolute joy, and Inertia is so much better because of them 🤝 Extremely proud of what Inertia has become 🥹
Thrilled to announce Inertia 2.0 is now stable and released! Thank you to everyone who provided feedback while we were in beta, we are so excited about this next phase of @inertiajs and there is even more to come. Shoutout to the 🐐 @reinink for such an incredible library. ⏩
9
17
287
21,552
Inertia.js retweeted
Inertia 2.0 is now stable. 👀 You might have seen @taylorotwell demo some of the new features at Laracon US, but I wanted to take 3 minutes and show off what I'm excited about. The next phase of @inertiajs is here and even more on the way. 👏
5
27
187
20,461
Thrilled to announce Inertia 2.0 is now stable and released! Thank you to everyone who provided feedback while we were in beta, we are so excited about this next phase of @inertiajs and there is even more to come. Shoutout to the 🐐 @reinink for such an incredible library. ⏩
20
92
495
81,414
😍
Coincidence? we also have a new release of @inertiajs
1
56
7,484
Go get it! ⚡
We released a new @inertiajs beta yesterday with some important bug fixes, grab it while it's hot: github.com/inertiajs/inertia…
3
34
4,744
We took the @inertiajs infinite scroll component for 2.0 and turbo boosted it: - ⬆️ Reverse infinite scroll - 👬 Multiple infinite scroll components on the same page - 🔃 *Two way* infinite scroll - 🔗 Syncing page state in URL - 🖱️ Manual mode after X requests 🚀👨‍🚀
47
47
478
53,130
Inertia.js retweeted
Inertia.js v2.0 just keeps getting better! 🔥
In Inertia 2.0, we added some great primitives to make infinite scrolling really easy, such as prop merging and the WhenVisible component. I was working on the docs this morning and I thought... let's make this *really* easy. So I whipped this up. Still WIP, still exciting. ⏩
5
5
169
12,263
Inertia.js retweeted
🚀 The Inertia.js v2.0 beta is now available! This marks a huge step forward for Inertia. The core library has been completely rewritten to architecturally support asynchronous requests, enabling a whole set of new features, including: - Polling - Prefetching - Deferred props - Infinite scrolling - Lazy loading data on scroll A huge thanks to @taylorotwell, @joetannenbaum, and @pedroborg_es in particular for making this possible 🤝 Please install the beta and let us know if you run into any issues! 🙏
49
179
810
123,624
Inertia.js retweeted
🚀 Try out @inertiajs v1.3-beta.2 if you're using the @sveltejs adapter! This release fixes an issue that caused large bundle sizes and some TypeScript errors. github.com/inertiajs/inertia…
3
10
2,260
Inertia.js retweeted
We just released Inertia `v1.3.0-beta.1`, which includes: ✅ Added Svelte 5 + Svelte TypeScript support 🪲 Fixed history navigation on Chrome iOS 🖱️ Fixed some scroll restoration bugs ⚛️ Fixed bugs with the React form helper Please give it a try and report back any issues! 🙏
8
24
207
25,874
Inertia.js retweeted
The @inertiajs @sveltejs adapter upgrade to 2.0 is going well. I'm excited to announce it will be available in the beta release next week 🎉 - TypeScript support - Svelte 5 support - Prefetching - Deferred props - Lazy components - Polling - Easy infinite scrolling Stay tunned!
3
6
63
4,978
Inertia.js retweeted
Our mission is to get an Inertia 2.0 beta in your hands by the end of next week. 🫡 - Prefetching - Deferred props - Lazy components - Polling - Easy infinite scrolling It's good. ❤️
45
87
1,047
48,941
Inertia.js retweeted
🔐 Something people have wanted for a long time in Inertia.js is a way to force a page to reload when navigating through history. The primary motivation is to prevent someone from seeing pages in history after logging out of an app. Right now, if you sign out of an Inertia app and then go back in your history, you'll see the previous pages as they were when you visited them. This is just how the browser's history state works. Yes, you can close your tab or even close your browser to end that session — but most browsers still allow reopening recently closed tabs, giving you access to that previous history state. Unfortunately, browsers don't provide any APIs for clearing records out of history state — it's just not possible. Since Inertia.js saves each page visit in history state, which includes all the page props (your data), it's possible for someone to go snooping through your history if you're on a public or shared computer and didn't use an incognito window. Even if we got creative and added a flag to prevent end-users from restoring pages from history, a hacker could easily still access the data via the `history.state` property. Well, @joetannenbaum and I have been trying to find a solution to this in Inertia.js v2.0. It's been a journey. We've explored all kinds of approaches to solve this — like storing the history state in localStorage, sessionStorage, IndexedDB, an in-memory cache, etc. While these storage mechanisms allow for clearing data, they all have other issues — for example, storage limits. Turns out you can store a lot in history state, and honestly, that's where we want to store this data. That's where the browser expects you to put it! But we just can't clear it out. So, how do we solve that? Well, I think we've found a way! Using the web crypto APIs, we're able to automatically encrypt the Inertia page props into history state. Then, we save an encryption key in the browser's session storage and use that to decrypt the page props when navigating through history. However, and this is the important part, you can choose to delete this key from your session storage! When you do this, it automatically invalidates all your previous history entries — they can't be decrypted. When Inertia can't decrypt a history entry (because the key has been rotated), it automatically loads a fresh copy of the page from the server — meaning if you've logged out of your app you'll be automatically redirected to the login page. We're still working out the exact APIs, but enabling prop encryption will be something you do server-side. For example, in a Laravel app, you'll be able to add the `inertia:encrypt` middleware to the routes you want encrypted. (And yes, you can mix encrypted and non-encrypted routes!) To clear history state on logout (or whenever you want), you can use the `Inertia::clearHistory()` method, which will instruct Inertia client-side to rotate the encryption key. It's remarkable how quick the encryption and decryption are — most of the time it takes 1-2ms. It's so fast that we almost considered just having this enabled by default all the time. We're still testing this out, and there's definitely a chance we hit a roadblock that invalidates this whole idea, but as of right now I'm optimistic that this might just work! 🤞
36
47
503
40,280