PageSourceSearch

https://inertia-rails.dev/awesome

html inertia-rails.dev collected 2026-09-25 21:01:28 UTC 35,749 bytes, 70 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en-US" dir="ltr">
3  <head>
4    <meta charset="utf-8">
5    <meta name="viewport" content="width=device-width,initial-scale=1">
6    <title>Awesome Inertia Rails | Inertia Rails</title>
7    <meta name="description" content="The official Rails adapter for Inertia.js. Build modern single-page applications using your existing Rails controllers and routes. No API required.">
8    <meta name="generator" content="VitePress v1.6.4">
9    <link rel="preload stylesheet" href="/assets/style.CTGU42mJ.css" as="style">
10    <link rel="preload stylesheet" href="/vp-icons.css" as="style">
11    
12    
12<script type="module" src="/assets/app.XSZNT00r.js"></script>
12
13    <link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14    <link rel="modulepreload" href="/assets/chunks/framework.Dy0xQE9M.js">
15    <link rel="modulepreload" href="/assets/chunks/theme.CQThEITk.js">
16    <link rel="modulepreload" href="/assets/chunks/katex.DwBr_Loo.js">
17    <link rel="modulepreload" href="/assets/chunks/dagre-KLK3FWXG.BKgmxawD.js">
18    <link rel="modulepreload" href="/assets/chunks/cose-bilkent-S5V4N54A.CNG06jdl.js">
19    <link rel="modulepreload" href="/assets/chunks/c4Diagram-IC4MRINW.ETFuZf8M.js">
20    <link rel="modulepreload" href="/assets/chunks/flowDiagram-PKNHOUZH.lRGVUxIq.js">
21    <link rel="modulepreload" href="/assets/chunks/erDiagram-INFDFZHY.eeMizkkg.js">
22    <link rel="modulepreload" href="/assets/chunks/gitGraphDiagram-K3NZZRJ6.RbZCzbYl.js">
23    <link rel="modulepreload" href="/assets/chunks/ganttDiagram-A5KZAMGK.MCiroxUi.js">
24    <link rel="modulepreload" href="/assets/chunks/infoDiagram-LFFYTUFH.DdnNhDeF.js">
25    <link rel="modulepreload" href="/assets/chunks/pieDiagram-SKSYHLDU.CyHnU1fA.js">
26    <link rel="modulepreload" href="/assets/chunks/quadrantDiagram-337W2JSQ.oe6j1yjn.js">
27    <link rel="modulepreload" href="/assets/chunks/xychartDiagram-JWTSCODW.Ba-9aapX.js">
28    <link rel="modulepreload" href="/assets/chunks/requirementDiagram-Z7DCOOCP.sZRMDFaE.js">
29    <link rel="modulepreload" href="/assets/chunks/sequenceDiagram-2WXFIKYE.JkAksYvO.js">
30    <link rel="modulepreload" href="/assets/chunks/classDiagram-VBA2DB6C.CeLQZ0yK.js">
31    <link rel="modulepreload" href="/assets/chunks/classDiagram-v2-RAHNMMFH.CeLQZ0yK.js">
32    <link rel="modulepreload" href="/assets/chunks/stateDiagram-RAJIS63D.C7bUrpfR.js">
33    <link rel="modulepreload" href="/assets/chunks/stateDiagram-v2-FVOUBMTO.D_ylnqok.js">
34    <link rel="modulepreload" href="/assets/chunks/journeyDiagram-4ABVD52K.B6r9C1Qc.js">
35    <link rel="modulepreload" href="/assets/chunks/timeline-definition-YZTLITO2.DfyfUUdK.js">
36    <link rel="modulepreload" href="/assets/chunks/mindmap-definition-YRQLILUH.Diwi3Vlm.js">
37    <link rel="modulepreload" href="/assets/chunks/kanban-definition-K7BYSVSG.Bdjk0XKz.js">
38    <link rel="modulepreload" href="/assets/chunks/sankeyDiagram-WA2Y5GQK.D08Cp6yt.js">
39    <link rel="modulepreload" href="/assets/chunks/diagram-P4PSJMXO.B8iT5fQI.js">
40    <link rel="modulepreload" href="/assets/chunks/diagram-IFDJBPK2.BMfM7N1G.js">
41    <link rel="modulepreload" href="/assets/chunks/blockDiagram-WCTKOSBZ.BDc1rc0W.js">
42    <link rel="modulepreload" href="/assets/chunks/architectureDiagram-2XIMDMQ5.CLR0s57E.js">
43    <link rel="modulepreload" href="/assets/chunks/ishikawaDiagram-PHBUUO56.DKU7PrvT.js">
44    <link rel="modulepreload" href="/assets/chunks/vennDiagram-LZ73GAT5.C_sZeZEa.js">
45    <link rel="modulepreload" href="/assets/chunks/diagram-E7M64L7V.BuPpLOzi.js">
46    <link rel="modulepreload" href="/assets/chunks/virtual_mermaid-config.DDnGl6nM.js">
47    <link rel="modulepreload" href="/assets/awesome.md.QaWPRtvU.lean.js">
48    <link rel="icon" href="/favicon.ico" sizes="32x32">
49    <link rel="icon" href="/logo.svg" type="image/svg+xml">
50    <link rel="apple-touch-icon" href="/apple-touch-icon.png">
51    <meta name="twitter:card" content="summary_large_image">
52    <meta name="twitter:site" content="https://inertia-rails.dev">
53    <meta name="twitter:description" value="The official Rails adapter for Inertia.js. Build modern single-page applications using your existing Rails controllers and routes. No API required.">
54    <meta name="twitter:image" content="https://inertia-rails.dev/og-image.png">
55    <meta property="og:type" content="website">
56    <meta property="og:locale" content="en_US">
57    <meta property="og:site" content="https://inertia-rails.dev">
58    <meta property="og:site_name" content="Inertia Rails">
59    <meta property="og:image" content="https://inertia-rails.dev/og-image.png">
60    <meta property="og:description" content="The official Rails adapter for Inertia.js. Build modern single-page applications using your existing Rails controllers and routes. No API required.">
61    
61<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
61
62    
62<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
62
63  </head>
64  <body>
65    <div id="app"><div class="Layout" data-v-d8b57b2d><!--[--><!--]--><!--[--><span tabindex="-1" data-v-fcbfc0e0></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-fcbfc0e0>Skip to content</a><!--]--><!----><header class="VPNav" data-v-d8b57b2d data-v-7ad780c2><div class="VPNavBar" data-v-7ad780c2 data-v-9fd4d1dd><div class="wrapper" data-v-9fd4d1dd><div class="container" data-v-9fd4d1dd><div class="title" data-v-9fd4d1dd><div class="VPNavBarTitle" data-v-9fd4d1dd data-v-9f43907a><a class="title" href="/" data-v-9f43907a><!--[--><!--]--><!--[--><img class="VPImage logo" src="/logo.svg" alt data-v-ab19afbb><!--]--><span data-v-9f43907a>Inertia Rails</span><!--[--><!--]--></a></div></div><div class="content" data-v-9fd4d1dd><div class="content-body" data-v-9fd4d1dd><!--[--><!--]--><div class="VPNavBarSearch search" data-v-9fd4d1dd><!--[--><!----><div id="docsearch"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-9fd4d1dd data-v-afb2845e><span id="main-nav-aria-label" class="visually-hidden" data-v-afb2845e> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/" tabindex="0" data-v-afb2845e data-v-815115f5><!--[--><span data-v-815115f5>Home</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/guide" tabindex="0" data-v-afb2845e data-v-815115f5><!--[--><span data-v-815115f5>Guide</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/cookbook/integrating-shadcn-ui" tabindex="0" data-v-afb2845e data-v-815115f5><!--[--><span data-v-815115f5>Cookbook</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink active" href="/awesome" tabindex="0" data-v-afb2845e data-v-815115f5><!--[--><span data-v-815115f5>Awesome</span><!--]--></a><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-afb2845e data-v-bfe7971f><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-bfe7971f><span class="text" data-v-bfe7971f><!----><span data-v-bfe7971f>Links</span><span class="vpi-chevron-down text-icon" data-v-bfe7971f></span></span></button><div class="menu" data-v-bfe7971f><div class="VPMenu" data-v-bfe7971f data-v-20ed86d6><div class="items" data-v-20ed86d6><!--[--><!--[--><div class="VPMenuLink" data-v-20ed86d6 data-v-7eeeb2dc><a class="VPLink link vp-external-link-icon" href="https://inertiajs.com" target="_blank" rel="noreferrer" data-v-7eeeb2dc><!--[--><span data-v-7eeeb2dc>Official Inertia.js docs</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuGroup" data-v-20ed86d6 data-v-a6b0397c><p class="title" data-v-a6b0397c>Gems</p><!--[--><!--[--><div class="VPMenuLink" data-v-a6b0397c data-v-7eeeb2dc><a class="VPLink link vp-external-link-icon" href="https://github.com/inertiajs/inertia-rails" target="_blank" rel="noreferrer" data-v-7eeeb2dc><!--[--><span data-v-7eeeb2dc>inertia_rails</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-a6b0397c data-v-7eeeb2dc><a class="VPLink link vp-external-link-icon" href="https://github.com/skryukov/inertia_rails-contrib" target="_blank" rel="noreferrer" data-v-7eeeb2dc><!--[--><span data-v-7eeeb2dc>inertia_rails-contrib</span><!--]--></a></div><!--]--><!--]--></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/llms-full.txt" tabindex="0" data-v-afb2845e data-v-815115f5><!--[--><span data-v-815115f5>LLMs</span><!--]--></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-9fd4d1dd data-v-3f90c1a5><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-3f90c1a5 data-v-be9742d9 data-v-b4ccac88><span class="check" data-v-b4ccac88><span class="icon" data-v-b4ccac88><!--[--><span class="vpi-sun sun" data-v-be9742d9></span><span class="vpi-moon moon" data-v-be9742d9></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-9fd4d1dd data-v-ef6192dc data-v-e71e869c><!--[--><a class="VPSocialLink no-icon" href="https://github.com/inertiajs/inertia-rails" aria-label="github" target="_blank" rel="noopener" data-v-e71e869c data-v-60a9a2d3><span class="vpi-social-github"></span></a><a class="VPSocialLink no-icon" href="https://x.com/inertiajs" aria-label="x" target="_blank" rel="noopener" data-v-e71e869c data-v-60a9a2d3><span class="vpi-social-x"></span></a><a class="VPSocialLink no-icon" href="https://discord.gg/inertiajs" aria-label="discord" target="_blank" rel="noopener" data-v-e71e869c data-v-60a9a2d3><span class="vpi-social-discord"></span></a>
65<!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-9fd4d1dd data-v-f953d92f data-v-bfe7971f><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-bfe7971f><span class="vpi-more-horizontal icon" data-v-bfe7971f></span></button><div class="menu" data-v-bfe7971f><div class="VPMenu" data-v-bfe7971f data-v-20ed86d6><!----><!--[--><!--[--><!----><div class="group" data-v-f953d92f><div class="item appearance" data-v-f953d92f><p class="label" data-v-f953d92f>Appearance</p><div class="appearance-action" data-v-f953d92f><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-f953d92f data-v-be9742d9 data-v-b4ccac88><span class="check" data-v-b4ccac88><span class="icon" data-v-b4ccac88><!--[--><span class="vpi-sun sun" data-v-be9742d9></span><span class="vpi-moon moon" data-v-be9742d9></span><!--]--></span></span></button></div></div></div><div class="group" data-v-f953d92f><div class="item social-links" data-v-f953d92f><div class="VPSocialLinks social-links-list" data-v-f953d92f data-v-e71e869c><!--[--><a class="VPSocialLink no-icon" href="https://github.com/inertiajs/inertia-rails" aria-label="github" target="_blank" rel="noopener" data-v-e71e869c data-v-60a9a2d3><span class="vpi-social-github"></span></a><a class="VPSocialLink no-icon" href="https://x.com/inertiajs" aria-label="x" target="_blank" rel="noopener" data-v-e71e869c data-v-60a9a2d3><span class="vpi-social-x"></span></a><a class="VPSocialLink no-icon" href="https://discord.gg/inertiajs" aria-label="discord" target="_blank" rel="noopener" data-v-e71e869c data-v-60a9a2d3><span class="vpi-social-discord"></span></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-9fd4d1dd data-v-6bee1efd><span class="container" data-v-6bee1efd><span class="top" data-v-6bee1efd></span><span class="middle" data-v-6bee1efd></span><span class="bottom" data-v-6bee1efd></span></span></button></div></div></div></div><div class="divider" data-v-9fd4d1dd><div class="divider-line" data-v-9fd4d1dd></div></div></div><!----></header><div class="VPLocalNav empty fixed" data-v-d8b57b2d data-v-2488c25a><div class="container" data-v-2488c25a><!----><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-2488c25a data-v-6b867909><button data-v-6b867909>Return to top</button><!----></div></div></div><!----><div class="VPContent" id="VPContent" data-v-d8b57b2d data-v-9a6c75ad><div class="VPDoc has-aside" data-v-9a6c75ad data-v-e6f2a212><!--[--><!--]--><div class="container" data-v-e6f2a212><div class="aside" data-v-e6f2a212><div class="aside-curtain" data-v-e6f2a212></div><div class="aside-container" data-v-e6f2a212><div class="aside-content" data-v-e6f2a212><div class="VPDocAside" data-v-e6f2a212 data-v-cb998dce><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-cb998dce data-v-f610f197><div class="content" data-v-f610f197><div class="outline-marker" data-v-f610f197></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-f610f197>On this page</div><ul class="VPDocOutlineItem root" data-v-f610f197 data-v-53c99d69><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-cb998dce></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-e6f2a212><div class="content-container" data-v-e6f2a212><!--[--><!--]--><main class="main" data-v-e6f2a212><div style="position:relative;" class="vp-doc _awesome" data-v-e6f2a212><div><div style="display:none;" hidden="true" aria-hidden="true">Are you an LLM? You can read better optimized documentation at /awesome.md for this page in Markdown format</div><h1 id="awesome-inertia-rails" tabindex="-1">Awesome Inertia Rails <a class="header-anchor" href="#awesome-inertia-rails" aria-label="Permalink to &quot;Awesome Inertia Rails&quot;">​</a></h1><p>A curated list of community resources, tools, and content for Inertia Rails.</p><h2 id="starter-kits-alphabetical" tabindex="-1">Starter kits (alphabetical) <a class="header-anchor" href="#starter-kits-alphabetical" aria-label="Permalink to &quot;Starter kits (alphabetical)&quot;">​</a></h2><ul><li><a href="https://github.com/growthxai/starter" target="_blank" rel="noreferrer">GrowthX Starter Kit</a> - Rails 8 + React 19 + Inertia.js + Shadcn/UI Starter Kit from GrowthX.ai</li><li><a href="https://inertia-rails.dev/guide/starter-kits" target="_blank" rel="noreferrer">Inertia Rails Starter Kits</a> — Official starter kits for React, Vue, and Svelte (TypeScript, shadcn/ui)</li><li><a href="https://github.com/gtkvn/kaze" target="_blank" rel="noreferrer">Kaze</a> — Rails authentication scaffolding (Hotwire/React/Vue)</li><li><a href="https://github.com/alec-c4/kickstart" target="_blank" rel="noreferrer">Kickstart</a> — Rails application starter kits, Inertia-based (React, Svelte, Vue) and classic (API, esbuild and importmaps)</li><li><a href="https://github.com/georgekettle/rails_svelte" target="_blank" rel="noreferrer">Svelte starter template</a> — Svelte starter template (Svelte, shadcn/ui)</li></ul><h2 id="packages-alphabetical" tabindex="-1">Packages (alphabetical) <a class="header-anchor" href="#packages-alphabetical" aria-label="Permalink to &quot;Packages (alphabetical)&quot;">​</a></h2><h3 id="inertia-specific" tabindex="-1">Inertia-specific <a class="header-anchor" href="#inertia-specific" aria-label="Permalink to &quot;Inertia-specific&quot;">​</a></h3><ul><li><a href="https://github.com/skryukov/alba-inertia" target="_blank" rel="noreferrer">Alba::Inertia</a> — Seamless integration between Alba serializers and Inertia Rails</li><li><a href="https://github.com/inertiaui/modal" target="_blank" rel="noreferrer">Inertia Modal</a> — Open any route in a Modal or Slideover without having to change anything about your existing routes or controllers (React, Vue)</li><li><a href="https://github.com/buhrmi/inertiax" target="_blank" rel="noreferrer">Inertia X</a> — Svelte-only fork of Inertia with additional features (Svelte)</li><li><a href="https://github.com/rodrigotavio91/inertia-builder" target="_blank" rel="noreferrer">
65InertiaBuilder</a> — JBuilder-like DSL for declaring Inertia.js props</li><li><a href="https://github.com/cole-robertson/inertia-cable" target="_blank" rel="noreferrer">InertiaCable</a> — Real-time prop updates for Inertia.js Rails apps using ActionCable</li><li><a href="https://github.com/alec-c4/inertia_i18n" target="_blank" rel="noreferrer">InertiaI18n</a> — Translation management bridging Rails YAML and frontend i18next JSON</li><li><a href="https://github.com/aviemet/useInertiaForm" target="_blank" rel="noreferrer">useInertiaForm</a> — Direct replacement of Inertia&#39;s useForm hook with support for nested forms (React)</li></ul><h3 id="general" tabindex="-1">General <a class="header-anchor" href="#general" aria-label="Permalink to &quot;General&quot;">​</a></h3><ul><li><a href="https://github.com/ElMassimo/js_from_routes" target="_blank" rel="noreferrer">JS From Routes</a> — Generate path helpers and API methods from your Rails routes</li><li><a href="https://github.com/railsware/js-routes" target="_blank" rel="noreferrer">JsRoutes</a> — Brings Rails named routes to JavaScript</li><li><a href="https://github.com/skryukov/typelizer" target="_blank" rel="noreferrer">Typelizer</a> — A TypeScript type generator for Ruby serializers</li><li><a href="https://github.com/ElMassimo/types_from_serializers" target="_blank" rel="noreferrer">types_from_serializers</a> — Generate TypeScript interfaces from your JSON serializers</li></ul><h2 id="articles-newest-first" tabindex="-1">Articles (newest first) <a class="header-anchor" href="#articles-newest-first" aria-label="Permalink to &quot;Articles (newest first)&quot;">​</a></h2><ul><li><a href="https://evilmartians.com/chronicles/optimistic-ui-in-rails-with-optimism-and-inertia" target="_blank" rel="noreferrer">Optimistic UI in Rails with optimism... and Inertia</a> — Deep dive by Svyatoslav Kryukov (2026)</li><li><a href="https://evilmartians.com/chronicles/redprints-cfp-open-source-cfp-management-app-build-with-rails-and-inertia-js" target="_blank" rel="noreferrer">Redprints CFP: an open source CFP management app built with Rails + Inertia.js</a> — Deep dive by Vladimir Dementyev (2025)</li><li><a href="https://evilmartians.com/chronicles/simplicity-vanished-solving-the-mystery-with-inertia-js-and-rails" target="_blank" rel="noreferrer">Simplicity, vanished?! Solving the mystery with Inertia.js + Rails</a> — Deep dive by Svyatoslav Kryukov (2025)</li><li><a href="https://pedro.switchdreams.com.br/inertiajs/2025/06/03/filters-with-inertia-and-rails/" target="_blank" rel="noreferrer">Building Filters with Inertia.js and Rails: A Clean Approach</a> — Guide by Pedro Duarte (2025)</li><li><a href="https://robrace.dev/blog/build-a-twitter-clone-with-rails-inertia-and-react" target="_blank" rel="noreferrer">How to Build a Twitter Clone with Rails 8 Inertia and React</a> — Tutorial by Rob Race (2025)</li><li><a href="https://pedro.switchdreams.com.br/inertiajs/2025/03/21/handle-bundle-size-inertiajs" target="_blank" rel="noreferrer">How to Handle Bundle Size in Inertia.js</a> — Guide by Pedro Duarte (2025)</li><li><a href="https://hardcover.app/blog/part-1-how-we-fell-out-of-love-with-next-js-and-back-in-love-with-ruby-on-rails-inertia-js" target="_blank" rel="noreferrer">How We Fell Out of Love with Next.js and Back in Love with Ruby on Rails &amp; Inertia.js</a> — Deep dive by Adam Fortuna (2025)</li><li><a href="https://avohq.io/blog/inertia-js-with-rails" target="_blank" rel="noreferrer">Building an InertiaJS app with Rails</a> — Tutorial by Exequiel Rozas (2025)</li><li><a href="https://tuyenhx.com/blog/inertia-rails-shadcn-typescript-ssr-en/" target="_blank" rel="noreferrer">Inertial Rails project setup to use code generated from v0 (ShadcnUI, TailwindCSS4, React, TypeScript) and deploy with Kamal</a> — Guide by Tom Ho (2025)</li><li><a href="https://evilmartians.com/chronicles/keeping-rails-cool-the-modern-frontend-toolkit" target="_blank" rel="noreferrer">Keeping Rails cool: the modern frontend toolkit</a> — Deep dive by Irina Nazarova (2024)</li><li><a href="https://evilmartians.com/chronicles/inertiajs-in-rails-a-new-era-of-effortless-integration" target="_blank" rel="noreferrer">Inertia.js in Rails: a new era of effortless integration</a> — Deep dive by Svyatoslav Kryukov (2024)</li></ul><h2 id="videos-and-talks-newest-first" tabindex="-1">Videos and talks (newest first) <a class="header-anchor" href="#videos-and-talks-newest-first" aria-label="Permalink to &quot;Videos and talks (newest first)&quot;">​</a></h2><ul><li><a href="https://www.youtube.com/watch?v=XBZcLD5xcPY" target="_blank" rel="noreferrer">Inertia Rails Workshop</a> — SF Ruby Conference 2025 workshop by Brandon Shar, Svyatoslav Kryukov, and Brian Knoles (<a href="https://github.com/inertia-rails/inertia-workshop-demo" target="_blank" rel="noreferrer">
65demo app</a>)</li><li><a href="https://www.youtube.com/watch?v=WOd3uNlW37I" target="_blank" rel="noreferrer">Optimistic Drawer UI with Inertia.js and Rails</a> — by Brian Knoles (2025)</li><li><a href="https://www.youtube.com/watch?v=B8D195yQX04" target="_blank" rel="noreferrer">Optimistic UI Updates with Inertia.js and Rails</a> — by Brian Knoles (2025)</li><li><a href="https://www.youtube.com/watch?v=MHqITeJGci0" target="_blank" rel="noreferrer">The Best of Both Worlds: InertiaJS + React + Rails</a> — by Colleen Schnettler (2025)</li><li><a href="https://www.youtube.com/watch?v=uLFItMoF_wA" target="_blank" rel="noreferrer">Tropical on Rails 2025: Defying Front-End Inertia</a> — Conference talk by Svyatoslav Kryukov (2025)</li><li><a href="https://www.youtube.com/@kengreeff/search?query=inertia" target="_blank" rel="noreferrer">Ken Greeff&#39;s YouTube channel</a> — Fresh Inertia Rails content (2025)</li><li><a href="https://www.youtube.com/watch?v=03EjkPaCHEI&amp;list=PLRxuhjCzzcWj4MUjDCC9TCP_ZfcRL0I1s" target="_blank" rel="noreferrer">InertiaJS on Rails</a> — YouTube course by Brandon Shar (2021)</li><li><a href="https://www.youtube.com/watch?v=-JT1RF-IhKs" target="_blank" rel="noreferrer">RailsConf 2021: Inertia.js on Rails Lightning Talk</a> — Conference talk by Brandon Shar (2021)</li></ul><h2 id="example-applications-alphabetical" tabindex="-1">Example applications (alphabetical) <a class="header-anchor" href="#example-applications-alphabetical" aria-label="Permalink to &quot;Example applications (alphabetical)&quot;">​</a></h2><h3 id="open-source" tabindex="-1">Open source <a class="header-anchor" href="#open-source" aria-label="Permalink to &quot;Open source&quot;">​</a></h3><ul><li><a href="https://code-basics.com" target="_blank" rel="noreferrer">Code Basics</a> — Free online programming courses. <strong>Code available on <a href="https://github.com/hexlet-basics/hexlet-basics" target="_blank" rel="noreferrer">GitHub</a></strong></li><li><a href="https://github.com/evilmartians/redprints-cfp" target="_blank" rel="noreferrer">Redprints CFP</a> — Open source CFP management app built with Rails and Inertia.js</li></ul><h3 id="demo" tabindex="-1">Demo <a class="header-anchor" href="#demo" aria-label="Permalink to &quot;Demo&quot;">​</a></h3><ul><li><a href="https://github.com/ledermann/pingcrm" target="_blank" rel="noreferrer">Ruby on Rails/Vue</a> by Georg Ledermann</li><li><a href="https://github.com/ElMassimo/pingcrm-vite" target="_blank" rel="noreferrer">Ruby on Rails/Vue SSR/Vite</a> by Máximo Mussini</li></ul><h3 id="production" tabindex="-1">Production <a class="header-anchor" href="#production" aria-label="Permalink to &quot;Production&quot;">​</a></h3><ul><li><a href="https://calmcompanies.club" target="_blank" rel="noreferrer">Calm Companies</a> — Get weekly emails when companies with a great work culture are hiring</li><li><a href="https://www.clipflow.co" target="_blank" rel="noreferrer">Clipflow</a> — Project management for content creators</li><li><a href="https://crevio.co" target="_blank" rel="noreferrer">Crevio</a> — All-In-One creator store</li><li><a href="https://hardcover.app" target="_blank" rel="noreferrer">Hardcover</a> — A social network for book lovers</li><li><a href="https://trykatara.com" target="_blank" rel="noreferrer">Katara</a> - A reverse job board for software engineers</li><li><a href="https://ogpilot.com" target="_blank" rel="noreferrer">OG Pilot</a> — A dynamic Open Graph image generator tool</li><li><a href="https://switchkanban.com.br" target="_blank" rel="noreferrer">Switch Kanban</a> — Project management tool for software houses</li><li><a href="https://railsfullstack.com" target="_blank" rel="noreferrer">railsfullstack.com</a> - Ruby on Rails back-end &amp; full-stack job board</li></ul><h2 id="other-alphabetical" tabindex="-1">Other (alphabetical) <a class="header-anchor" href="#other-alphabetical" aria-label="Permalink to &quot;Other (alphabetical)&quot;">​</a></h2><ul><li><a href="https://github.com/cole-robertson/inertia-rails-skills" target="_blank" rel="noreferrer">Inertia Rails Skills</a> — Agent skills and best practices for AI coding assistants working with Inertia Rails</li><li><a href="https://chromewebstore.google.com/detail/inertiajs-devtools/golilfffgehhabacoaoilfgjelagablo?hl=en" target="_blank" rel="noreferrer">Inertia.js devtools</a> — Inertia.js page JSON in devtools panel</li></ul><h2 id="community" tabindex="-1">Community <a class="header-anchor" href="#community" aria-label="Permalink to &quot;Community&quot;">​</a></h2><ul><li><a href="https://x.com/inertiajs" target="_blank" rel="noreferrer">X.com</a> — Official X account</li><li><a href="https://discord.gg/inertiajs" target="_blank" rel="noreferrer">Discord</a> — Official Discord server</li><li><a href="https://www.reddit.com/r/inertiajs" target="_blank" rel="noreferrer">Reddit</a> — Inertia.js subreddit</li></ul><p><em>Please share your projects and resources with us!</em></p></div></div></main><footer class="VPDocFooter" data-v-e6f2a212 data-v-1bcd8184><!--[--><!--]--><div class="edit-info" data-v-1bcd8184><div class="edit-link" data-v-1bcd8184><a class="VPLink link vp-external-link-icon no-icon edit-link-button" href="https://github.com/inertiajs/inertia-rails/edit/master/docs/awesome.md" target="_blank" rel="noreferrer" data-v-1bcd8184><!--[--><span class="vpi-square-pen edit-link-icon" data-v-1bcd8184></span> Edit this page on GitHub<!--]--></a></div><!----></div><!----></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><!----><!--[--><!--]--></div></div>
66    
66<script>window.__VP_HASH_MAP__=JSON.parse("{\"awesome.md\":\"QaWPRtvU\",\"cookbook_handling-validation-error-types.md\":\"CmZkYwBx\",\"cookbook_http-caching-and-xsrf-cookie-refresh.md\":\"Bce45--L\",\"cookbook_inertia-modal.md\":\"CfBOnqyw\",\"cookbook_integrating-shadcn-ui.md\":\"DX2NQKwj\",\"cookbook_server-managed-meta-tags.md\":\"QiKxB0AY\",\"guide.md\":\"BlIp-wbv\",\"guide_asset-versioning.md\":\"BNTjFxHJ\",\"guide_authentication.md\":\"Dy-rid7b\",\"guide_authorization.md\":\"DiIk790q\",\"guide_cached-props.md\":\"BNzfhGCQ\",\"guide_caching.md\":\"CSrJcq7U\",\"guide_client-side-setup.md\":\"CHdWJYLI\",\"guide_code-splitting.md\":\"CKI5lJCf\",\"guide_configuration.md\":\"B6u-DJzY\",\"guide_csrf-protection.md\":\"D_Z1hHCf\",\"guide_deferred-props.md\":\"Cl_q7pBM\",\"guide_demo-application.md\":\"DUrz71Dp\",\"guide_error-handling.md\":\"BDmKzyfN\",\"guide_events.md\":\"DE6j7Q1-\",\"guide_file-uploads.md\":\"AEmNK3kn\",\"guide_flash-data.md\":\"vcWSMTKs\",\"guide_forms.md\":\"BENvoTii\",\"guide_history-encryption.md\":\"CmPwl_-s\",\"guide_how-it-works.md\":\"DdBH5aCY\",\"guide_http-requests.md\":\"CMrd66ee\",\"guide_infinite-scroll.md\":\"BrXIBDSu\",\"guide_instant-visits.md\":\"Cw1NA2Ty\",\"guide_instrumentation.md\":\"DZeiW1QK\",\"guide_layouts.md\":\"3HxAUOvx\",\"guide_links.md\":\"A_Jm3mpr\",\"guide_load-when-visible.md\":\"B7V8loTX\",\"guide_manual-visits.md\":\"BnPmWs7f\",\"guide_merging-props.md\":\"CG7i0BAa\",\"guide_once-props.md\":\"f0t4ihGA\",\"guide_optimistic-updates.md\":\"Cjbid21V\",\"guide_pages.md\":\"07HTyq_5\",\"guide_partial-reloads.md\":\"DuRLvwuJ\",\"guide_polling.md\":\"Cn-rcm8r\",\"guide_precognition.md\":\"DaQmse0b\",\"guide_prefetching.md\":\"Cfgg2S6z\",\"guide_progress-indicators.md\":\"C1SGCvdf\",\"guide_redirects.md\":\"BvDuCAmH\",\"guide_remembering-state.md\":\"G8BzVSoF\",\"guide_responses.md\":\"C2FC0W3j\",\"guide_routing.md\":\"hFk1gqm5\",\"guide_scroll-management.md\":\"bbOn5KXA\",\"guide_server-side-rendering.md\":\"BIcJFIL4\",\"guide_server-side-setup.md\":\"DPCe5uEM\",\"guide_shared-data.md\":\"CMxcIKks\",\"guide_starter-kits.md\":\"C1HUJ0YO\",\"guide_testing.md\":\"BcPemKT0\",\"guide_the-protocol.md\":\"Bg2vEJq0\",\"guide_title-and-meta.md\":\"O0C9aalT\",\"guide_typescript.md\":\"D4cjvvYE\",\"guide_upgrade-guide.md\":\"D0S8ZGzN\",\"guide_validation.md\":\"ckeVds-P\",\"guide_view-transitions.md\":\"Bh_H8Xud\",\"guide_who-is-it-for.md\":\"DVLxehlo\",\"index.md\":\"BnCed9cT\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Inertia Rails\",\"description\":\"The official Rails adapter for Inertia.js. Build modern single-page applications using your existing Rails controllers and routes. No API required.\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"nav\":[{\"text\":\"Home\",\"link\":\"/\"},{\"text\":\"Guide\",\"link\":\"/guide\"},{\"text\":\"Cookbook\",\"link\":\"/cookbook/integrating-shadcn-ui\"},{\"text\":\"Awesome\",\"link\":\"/awesome\"},{\"text\":\"Links\",\"items\":[{\"text\":\"Official Inertia.js docs\",\"link\":\"https://inertiajs.com\"},{\"text\":\"Gems\",\"items\":[{\"text\":\"inertia_rails\",\"link\":\"https://github.com/inertiajs/inertia-rails\"},{\"text\":\"inertia_rails-contrib\",\"link\":\"https://github.com/skryukov/inertia_rails-contrib\"}]}]},{\"text\":\"LLMs\",\"link\":\"/llms-full.txt\"}],\"logo\":\"/logo.svg\",\"sidebar\":{\"/guide\":[{\"items\":[{\"text\":\"Introduction\",\"link\":\"/guide\"},{\"text\":\"Demo app\",\"link\":\"/guide/demo-application\"},{\"text\":\"Upgrade guide\",\"link\":\"/guide/upgrade-guide\"}]},{\"text\":\"Installation\",\"items\":[{\"text\":\"Server-side\",\"link\":\"/guide/server-side-setup\"},{\"text\":\"Client-side\",\"link\":\"/guide/client-side-setup\"},{\"text\":\"Starter kits\",\"link\":\"/guide/starter-kits\"}]},{\"text\":\"Core concepts\",\"items\":[{\"text\":\"Who is it for\",\"link\":\"/guide/who-is-it-for\"},{\"text\":\"How it works\",\"link\":\"/guide/how-it-works\"},{\"text\":\"The protocol\",\"link\":\"/guide/the-protocol\"}]},{\"text\":\"The basics\",\"items\":[{\"text\":\"Pages\",\"link\":\"/guide/pages\"},{\"text\":\"Responses\",\"link\":\"/guide/responses\"},{\"text\":\"Redirects\",\"link\":\"/guide/redirects\"},{\"text\":\"Routing\",\"link\":\"/guide/routing\"},{\"text\":\"Title & meta\",\"link\":\"/guide/title-and-meta\"},{\"text\":\"Links\",\"link\":\"/guide/links\"},{\"text\":\"Manual visits\",\"link\":\"/guide/manual-visits\"},{\"text\":\"Instant visits\",\"link\":\"/guide/instant-visits\"},{\"text\":\"Forms\",\"link\":\"/guide/forms\"},{\"text\":\"HTTP requests\",\"link\":\"/guide/http-requests\"},{\"text\":\"Optimistic updates\",\"link\":\"/guide/optimistic-updates\"},{\"text\":\"File uploads\",\"link\":\"/guide/file-uploads\"},{\"text\":\"Validation\",\"link\":\"/guide/validation\"},{\"text\":\"Precognition\",\"link\":\"/guide/precognition\"},{\"text\":\"Layouts\",\"link\":\"/guide/layouts\"},{\"text\":\"View transitions\",\"link\":\"/guide/view-transitions\"}]},{\"text\":\"Data & Props\",\"items\":[{\"text\":\"Shared data\",\"link\":\"/guide/shared-data\"},{\"text\":\"Flash data\",\"link\":\"/guide/flash-data\"},{\"text\":\"Partial reloads\",\"link\":\"/guide/partial-reloads\"},{\"text\":\"Deferred props\",\"link\":\"/guide/deferred-props\"},{\"text\":\"Polling\",\"link\":\"/guide/polling\"},{\"text\":\"Prefetching\",\"link\":\"/guide/prefetching\"},{\"text\":\"Load when visible\",\"link\":\"/guide/load-when-visible\"},{\"text\":\"Merging props\",\"link\":\"/guide/merging-props\"},{\"text\":\"Once props\",\"link\":\"/guide/once-props\"},{\"text\":\"Cached props\",\"link\":\"/guide/cached-props\"},{\"text\":\"Infinite scroll\",\"link\":\"/guide/infinite-scroll\"},{\"text\":\"Remembering state\",\"link\":\"/guide/remembering-state\"}]},{\"text\":\"Security\",\"items\":[{\"text\":\"Authentication\",\"link\":\"/guide/authentication\"},{\"text\":\"Authorization\",\"link\":\"/guide/authorization\"},{\"text\":\"CSRF protection\",\"link\":\"/guide/csrf-protection\"},{\"text\":\"History encryption\",\"link\":\"/guide/history-encryption\"}]},{\"text\":\"Advanced\",\"items\":[{\"text\":\"Caching\",\"link\":\"/guide/caching\"},{\"text\":\"Asset versioning\",\"link\":\"/guide/asset-versioning\"},{\"text\":\"Code splitting\",\"link\":\"/guide/code-splitting\"},{\"text\":\"Configuration\",\"link\":\"/guide/configuration\"},{\"text\":\"Error handling\",\"link\":\"/guide/error-handling\"},{\"text\":\"Events\",\"link\":\"/guide/events\"},{\"text\":\"Instrumentation\",\"link\":\"/guide/instrumentation\"}
66,{\"text\":\"Progress indicators\",\"link\":\"/guide/progress-indicators\"},{\"text\":\"Scroll management\",\"link\":\"/guide/scroll-management\"},{\"text\":\"Server-side rendering\",\"link\":\"/guide/server-side-rendering\"},{\"text\":\"Testing\",\"link\":\"/guide/testing\"},{\"text\":\"TypeScript\",\"link\":\"/guide/typescript\"}]}],\"/cookbook\":[{\"items\":[{\"text\":\"Integrations\",\"items\":[{\"text\":\"shadcn/ui\",\"link\":\"/cookbook/integrating-shadcn-ui\"},{\"text\":\"Inertia Modal\",\"link\":\"/cookbook/inertia-modal\"}]},{\"text\":\"Inertia-Rails-Only Features\",\"items\":[{\"text\":\"Server Managed Meta Tags\",\"link\":\"/cookbook/server-managed-meta-tags\"}]},{\"text\":\"Troubleshooting\",\"items\":[{\"text\":\"HTTP caching and XSRF cookie refresh\",\"link\":\"/cookbook/http-caching-and-xsrf-cookie-refresh\"},{\"text\":\"Rails validation error types\",\"link\":\"/cookbook/handling-validation-error-types\"}]}]}]},\"search\":{\"provider\":\"algolia\",\"options\":{\"appId\":\"BWKGTG68ZO\",\"apiKey\":\"06bc959e3f6ab7eb186cd27653408b04\",\"indexName\":\"inertia-rails\"}},\"editLink\":{\"pattern\":\"https://github.com/inertiajs/inertia-rails/edit/master/docs/:path\",\"text\":\"Edit this page on GitHub\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/inertiajs/inertia-rails\"},{\"icon\":\"x\",\"link\":\"https://x.com/inertiajs\"},{\"icon\":\"discord\",\"link\":\"https://discord.gg/inertiajs\"}]},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":true}");</script>
66
67    
68  
68<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"a968e5be66ff466d9474dba28b52f32b","r":1,"spa":2}' crossorigin="anonymous"></script>
68
69</body>
70</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.