There are a collection of application templates, scripts, and automatizations I use for everyday work. All included code is written with the following principles:
Feel free to submit any feature or pull request if you think that it may be useful for the community.
Use the interactive installer script:
# Interactive mode - select template from menu
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/alec-c4/kickstart/master/install.sh)" -- myapp
# Or specify template directly
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/alec-c4/kickstart/master/install.sh)" -- myapp esbuild_tailwind
Available templates: esbuild_tailwind, importmap_tailwind, inertia_react, inertia_vue, inertia_svelte, api
If you prefer to use rails new directly:
# ESBuild + Tailwind (Classic Rails with Turbo/Stimulus)
rails new myapp -m https://raw.githubusercontent.com/alec-c4/kickstart/master/esbuild_tailwind.rb \
--no-rc --skip-test --skip-system-test --database=postgresql \
--devcontainer --css=tailwind --javascript=esbuild
# Importmap + Tailwind (Classic Rails with Turbo/Stimulus)
rails new myapp -m https://raw.githubusercontent.com/alec-c4/kickstart/master/importmap_tailwind.rb \
--no-rc --skip-test --skip-system-test --database=postgresql \
--devcontainer --css=tailwind
# Inertia + React (Modern SPA)
rails new myapp -m https://raw.githubusercontent.com/alec-c4/kickstart/master/inertia_react.rb \
--no-rc --skip-test --skip-system-test --database=postgresql \
--devcontainer --skip-javascript
# Inertia + Vue (Modern SPA)
rails new myapp -m https://raw.githubusercontent.com/alec-c4/kickstart/master/inertia_vue.rb \
--no-rc --skip-test --skip-system-test --database=postgresql \
--devcontainer --skip-javascript
# Inertia + Svelte (Modern SPA)
rails new myapp -m https://raw.githubusercontent.com/alec-c4/kickstart/master/inertia_svelte.rb \
--no-rc --skip-test --skip-system-test --database=postgresql \
--devcontainer --skip-javascript
# API Only (REST API)
rails new myapp -m https://raw.githubusercontent.com/alec-c4/kickstart/master/api.rb \
--no-rc --skip-test --skip-system-test --database=postgresql \
--devcontainer --api
After app creation:
cd myapp
bundle install
yarn install # Only for esbuild_tailwind and Inertia templates
rails db:create db:migrate
rails parallel:create # Creates parallel test databases
bin/dev
See Quick Reference above for creating new applications.
The interactive installer (install.sh) will:
Modern Rails application with ESBuild bundling and Tailwind CSS.
Frontend:
Backend:
Development:
Deployment:
Rails application with Import Maps and Tailwind CSS.
Frontend:
Backend & Deployment:
Modern SPA with Inertia.js and Svelte 5 for reactive interfaces.
Frontend:
Backend:
Development:
Deployment:
Modern SPA with Inertia.js and React for component-based UIs.
Frontend:
Backend & Development:
Modern SPA with Inertia.js and Vue 3 for progressive interfaces.
Frontend:
Backend & Development:
Rails API-only application for backend services.
Backend:
Development:
Deployment:
If you have cloned this repository locally, you can use the templates with local file paths:
# ESBuild + Tailwind
rails new myapp -m ~/path/to/kickstart/esbuild_tailwind.rb \
--no-rc --skip-test --skip-system-test --database=postgresql \
--devcontainer --css=tailwind --javascript=esbuild
# Importmap + Tailwind
rails new myapp -m ~/path/to/kickstart/importmap_tailwind.rb \
--no-rc --skip-test --skip-system-test --database=postgresql \
--devcontainer --css=tailwind
# Inertia + React
rails new myapp -m ~/path/to/kickstart/inertia_react.rb \
--no-rc --skip-test --skip-system-test --database=postgresql \
--devcontainer --skip-javascript
# Inertia + Vue
rails new myapp -m ~/path/to/kickstart/inertia_vue.rb \
--no-rc --skip-test --skip-system-test --database=postgresql \
--devcontainer --skip-javascript
# Inertia + Svelte
rails new myapp -m ~/path/to/kickstart/inertia_svelte.rb \
--no-rc --skip-test --skip-system-test --database=postgresql \
--devcontainer --skip-javascript
# API Only
rails new myapp -m ~/path/to/kickstart/api.rb \
--no-rc --skip-test --skip-system-test --database=postgresql \
--devcontainer --api
After creating your app with one of the templates above:
cd myapp
# Install dependencies
bundle install
yarn install # Only needed for: esbuild_tailwind, inertia_react, inertia_vue, inertia_svelte
# Setup database
rails db:create db:migrate
rails parallel:create # Creates parallel test databases (ignore 'already exists' message)
# Run tests to verify everything works
bundle exec rspec
# Start development server
bin/dev # Runs Rails + Vite (for Inertia) or Rails + Asset pipeline (for classic templates)
Note for Inertia templates: The Inertia generator automatically:
All templates (classic and Inertia) include custom error pages for:
Testing in Development:
By default, Rails shows detailed error pages in development. To test custom error pages locally:
# Enable custom error pages
rails dev:errors
# Restart your server
bin/dev
# Disable custom error pages (back to default)
rails dev:errors
Add new templates
Not found
Previous versions of kickstart templates can be found here due to complete project rewrite with master repo reboot.
For bug fixes, documentation changes, and features:
git checkout -b my-new-feature)git commit -am 'Add some feature')git push origin my-new-feature)For larger new features: Do everything as above, but first also make contact with the project maintainers to be sure your change fits with the project direction and you won't be wasting effort going in the wrong direction.