{"id":13878882,"url":"https://github.com/ElMassimo/jumpstart-vite","last_synced_at":"2025-07-16T14:33:16.386Z","repository":{"id":37049417,"uuid":"338039260","full_name":"ElMassimo/jumpstart-vite","owner":"ElMassimo","description":"⚡️ Jumpstart a new Rails app with Vite.js + Turbo + Stimulus, and more","archived":false,"fork":true,"pushed_at":"2024-08-06T08:07:11.000Z","size":145,"stargazers_count":89,"open_issues_count":1,"forks_count":9,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-08-07T08:11:49.810Z","etag":null,"topics":["rails","stimulusjs","template","vitejs"],"latest_commit_sha":null,"homepage":"http://jumpstartrails.com","language":"Ruby","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"excid3/jumpstart","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ElMassimo.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":["excid3"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2021-02-11T13:38:29.000Z","updated_at":"2024-07-21T10:45:55.000Z","dependencies_parsed_at":"2023-01-17T13:30:30.342Z","dependency_job_id":null,"html_url":"https://github.com/ElMassimo/jumpstart-vite","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ElMassimo%2Fjumpstart-vite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ElMassimo%2Fjumpstart-vite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ElMassimo%2Fjumpstart-vite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ElMassimo%2Fjumpstart-vite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ElMassimo","download_url":"https://codeload.github.com/ElMassimo/jumpstart-vite/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226138849,"owners_count":17579496,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["rails","stimulusjs","template","vitejs"],"created_at":"2024-08-06T08:02:03.143Z","updated_at":"2024-11-24T07:31:23.134Z","avatar_url":"https://github.com/ElMassimo.png","language":"Ruby","funding_links":["https://github.com/sponsors/excid3"],"categories":["Ruby"],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  \u003ca href=\"https://vite-ruby.netlify.app/\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/ElMassimo/vite_ruby/main/logo.svg\" width=\"200px\"/\u003e\n  \u003c/a\u003e\n\n  \u003cbr\u003e\n\n  \u003ca href=\"https://github.com/excid3/jumpstart\"\u003eJumpstart Rails\u003c/a\u003e\n  with\n  \u003ca href=\"https://vite-ruby.netlify.app/\"\u003eVite\u003c/a\u003e\n\n  \u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/ElMassimo/vite_ruby/blob/master/LICENSE.txt\"\u003e\n      \u003cimg alt=\"License\" src=\"https://img.shields.io/badge/license-MIT-428F7E.svg\"/\u003e\n    \u003c/a\u003e\n  \u003c/p\u003e\n\u003c/h1\u003e\n\n[jumpstart]: https://github.com/excid3/jumpstart\n[pro]: https://jumpstartrails.com\n[vite_rails]: https://github.com/ElMassimo/vite_rails/tree/main/vite_rails\n[esbuild]: https://github.com/evanw/esbuild\n[significantly faster]: https://github.com/evanw/esbuild#why\n[no bundling]: https://vitejs.dev/guide/why.html#the-problems\n[bundling]: https://vitejs.dev/guide/why.html#why-bundle-for-production\n[JS From Routes]: https://github.com/ElMassimo/js_from_routes\n[vite-plugin-stimulus-hmr]: https://github.com/ElMassimo/vite-plugin-stimulus-hmr\n[vite-plugin-full-reload]: https://github.com/ElMassimo/vite-plugin-full-reload\n\nThis repo is a fork of the [__Jumpstart Rails__][jumpstart] template, which is\nlike Laravel Spark, for Rails.\n\nThis fork replaces webpacker with [__Vite Rails__][vite_rails], and extends the\nbasic setup to include a working Stimulus example and Hotwire integration.\n\n## Features ⚡️\n\n- 💡 Instant server start\n- ⚡️ Blazing fast hot reload\n- 🚀 Stimulus + Turbo Hotwire\n- 🛤 Path and API Helpers: [JS From Routes]\n- [And more!][jumpstart]\n\nIt adds \u003ckbd\u003e[vite-plugin-stimulus-hmr]\u003c/kbd\u003e for instant feedback on changes to\nyour Stimulus controllers, \u003ckbd\u003e[vite-plugin-full-reload]\u003c/kbd\u003e to automatically\nrefresh the page when editing the Rails layout or templates, and __[JS From Routes]__\nto automatically generate path and API helpers from the routes.\n\n## Demo 🎥\n\nChanges to Stimulus controllers don't require a full page refresh.\n\n\u003ca href=\"https://user-images.githubusercontent.com/1158253/107971586-6deb2480-6f91-11eb-8919-100ca36f3683.mp4\" rel=\"noreferrer\" target=\"_blank\"\u003e\n  \u003cimg width=\"836\" alt=\"Screen Shot 2021-02-15 at 13 27 22\" src=\"https://user-images.githubusercontent.com/1158253/107971695-8e1ae380-6f91-11eb-9ef7-9fed47d4d3be.png\"\u003e\n\u003c/a\u003e\n\nThis feature is powered by \u003ckbd\u003e[vite-plugin-stimulus-hmr](https://github.com/ElMassimo/vite-plugin-stimulus-hmr)\u003c/kbd\u003e.\n\n## Installation 💿\n\n```bash\nrails new myapp -d postgresql -m https://raw.githubusercontent.com/ElMassimo/jumpstart-vite/master/template.rb\n```\n\nFor the rest of the instructions, head to [Jumpstart Rails][jumpstart].\n\n\u003cbr/\u003e\n\n## Video Comparison 🎥\n\nWebpacker on the left, Vite on the right. I run `foreman start`, wait until the page loads, then kill the process and run it a second time.\n\n\u003ca href=\"https://user-images.githubusercontent.com/1158253/107697132-98876580-6c91-11eb-9bda-567b1b9f6cf5.mp4\" target=\"_blank\" rel=\"noreferrer\"\u003e\n  \u003cimg width=\"832\" alt=\"Screen Shot 2021-02-12 at 10 03 51\" src=\"https://user-images.githubusercontent.com/1158253/107771581-b7c9d580-6d19-11eb-9184-48f97b47f2cf.png\"\u003e\n\u003c/a\u003e\n\n### Webpacker\n\nInstalling the vanilla Jumpstart template takes 5 minutes, be prepared to watch\n`node-sass` spin for a while, along with all the webpack dependencies.\n\n\u003cimg width=\"350\" alt=\"jumpstart-webpacker-node-sass\" src=\"https://user-images.githubusercontent.com/1158253/107692177-2e6bc200-6c8b-11eb-8943-c03a2f3a5023.png\"\u003e\u003cimg width=\"480\" alt=\"jumpstart-webpacker-installation\" src=\"https://user-images.githubusercontent.com/1158253/107692176-2e6bc200-6c8b-11eb-9511-69124f6bf844.png\"\u003e\n\nOnce it's installed, and we have run `bin/rake db:create db:migrate`, we'll start it twice:\n\n\u003ca href=\"https://user-images.githubusercontent.com/1158253/107692172-2ca1fe80-6c8b-11eb-9e2b-d44c069a45b0.mp4\" target=\"_blank\" rel=\"noreferrer\"\u003e\n  \u003cimg width=\"828\" alt=\"Screen Shot 2021-02-11 at 17 21 03\" src=\"https://user-images.githubusercontent.com/1158253/107694027-a1763800-6c8d-11eb-935a-76facdaba764.png\"\u003e\n\u003c/a\u003e\n\nCold start is particularly slow, and it locks Rails rendering.\n\n\u003cbr/\u003e\n\n### Vite ⚡️\n\nInstalling the Jumpstart template with Vite takes 1 minute.\n\n\u003cimg width=\"359\" alt=\"jumpstart-vite-installation\" src=\"https://user-images.githubusercontent.com/1158253/107692180-2f045880-6c8b-11eb-9fbe-8289100d22b8.png\"\u003e\n\nOnce it's installed, and we have run `bin/rake db:create db:migrate`, we'll start it twice:\n\n\u003ca href=\"https://user-images.githubusercontent.com/1158253/107692148-2744b400-6c8b-11eb-833a-7a7d4e46e6be.mp4\" target=\"_blank\" rel=\"noreferrer\"\u003e\n  \u003cimg width=\"828\" alt=\"Screen Shot 2021-02-11 at 17 21 25\" src=\"https://user-images.githubusercontent.com/1158253/107694019-9e7b4780-6c8d-11eb-96da-d1e65f3471a1.png\"\u003e\n\u003c/a\u003e\n\nLoads only 9 seconds after `foreman start`, and is also running a Stimulus example.\n\nSubsequent loads are significantly faster.\n\n\u003cbr/\u003e\n\n## How does it work? 🤔\n\nVite is powered by [esbuild], which can process files [significantly faster] than Webpack.\n\nVite [does not bundle your code during development][no bundling], which means\nas your app grows, the dev server will still start fast, and your changes will\ncontinue be __updated instantly__.\n\nIn production, Vite [bundles your code][bundling] with tree-shaking, lazy-loading,\nand common chunk splitting out of the box, to achieve optimal loading performance.\n\n\u003cbr/\u003e\n\n## Special Thanks 🙌\n\n- [Jumpstart Rails][jumpstart]: 👉 Have in mind they have also built [Jumpstart Pro][pro] which also includes payments with Stripe \u0026 Braintree, team accounts, TailwindCSS, and much more.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FElMassimo%2Fjumpstart-vite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FElMassimo%2Fjumpstart-vite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FElMassimo%2Fjumpstart-vite/lists"}