2N Rails Template

// production-ready Rails 8 generator with batteries included

curl -fsSL rails.2n.pl/go | ruby
View on GitHub

default_stack

// what you get out of the box

core

PostgreSQL
UUIDv7 primary keys
Vite + Tailwind 4 + DaisyUI
Devise (User model)
Pundit
Shrine + S3

javascript

React 19 + TypeScript
Hotwire (Turbo + Stimulus)
wired through Vite
always on

monitoring

Sentry
Rack::Attack
Prosopite (N+1)
database_consistency
strong_migrations

deployment

Kamal (prod + staging)
GitHub Actions
Dependabot
Solid Queue
Mission Control

configuration_options

// toggle in the Edit step on the review screen

Optional

Devise
Pundit
Sentry
rack-cors
ReactionView
Alba serializers
Service + Query objects
PaperTrail
Discard
Playwright
Polish locale
Poppler (PDF)
— all on, toggle off in Edit

Always-on storage

Shrine
image_processing + ruby-vips
S3 in production, disk in dev

Always-on JS

React 19 + TypeScript
Hotwire (Turbo + Stimulus)
Vite + Tailwind 4 + DaisyUI

Always-on UI

Ui::* component pack
UiFormBuilder + Rails Icons
Lookbook previews at /lookbook

Always-on testing

RSpec + FactoryBot
shoulda-matchers
webmock + simplecov
faker + pry-byebug
Vitest + Testing Library
prosopite (N+1) fails the example

Always-on core

UUIDv7 primary keys
Rack::Attack + prosopite
strong_migrations
meta-tags + pagy
invisible_captcha
ransack

Always-on quality

RuboCop omakase
herb-lint + herb-format
ESLint + Tailwind class lint
Brakeman + bundler-audit
database_consistency
bin/ci runs the lot

available_endpoints

// ready to use after generation

/

Landing page

/jobs

Mission Control dashboard

/sitemap.xml

SEO sitemap

/robots.txt

Per-environment robots

/lookbook

UI component library (dev)

/rails_icons

Icon browser (Lucide)

quick_start

// just one command

curl -fsSL rails.2n.pl/go | ruby

Prompts for an app name, then a review screen — accept the defaults or Edit. Defaults: PostgreSQL, React + Hotwire, the Ui::* component pack with Lookbook, Devise, Pundit, Shrine + S3, Sentry, Kamal.