Rust off Rails: The opinionated web stack for the AI era

news

A web structure that ships no lines of code

Rust off Rails is a set of Markdown submits that inform coding representatives how to develop a full-stack Rust web app: one blessed stack, one design, one method to do everything. The convention resides in the prose. The representative composes the code.

curl -fsSL https://rustoffrails.org/install.sh | sh

or in Claude Code: /plugin marketplace add rust-off-rails/rustoffrails

Check out before you pipeline: the set up script · INSTALL.md

Railboard: a live Kanban constructed by AI in 7 triggers 3:06 · Watch on YouTube
  • 0 lines of structure code
  • 60 Markdown files
  • 2 databases, exact same code
  • ~/ code/bookshelf, claude

    A detailed representative session: the/ offrails: brand-new command, the interview, the strategy, the produced files and the tests handing down SQLite and Postgres.

    1. > / offrails: brand-new bookshelf: individuals track and examine books, with an API for a mobile app later on
    2. ● Reading AGENTS.md → interview · teaching · structure · stack · workflow
    3. Accounts? a) magic link (Recommended) b) e-mail + password c) invite-only d) none
    4. a
    5. Who owns information? a) each user (Recommended) b) groups c) shared
    6. you choose
    7. Frontend? a) htmx (Recommended) b) inertia c) day spa d) api
    8. b
    9. UI library? a) React (Recommended) b) Svelte
    10. b
    11. API for other programs? a) none b) REST + OpenAPI c) GraphQL d) both
    12. b
    13. ◆ Plan: inertia + Svelte · API rest · Postgres in prod (SQLite in your area)
    14. Schedule title, author, score 1– 5 · comes from User
    15. Evaluation body, stars 1– 5 · comes from Book
    16. API/ api/v1/books,/ api/v1/reviews · bearer tokens
    17. yes
    18. + migration/src/m20261013 _ 120000_create_books. rs
    19. + src/models/book. rs · src/controllers/books. rs
    20. + web/src/pages/ Books/Index. svelte (+ 71 more)
    21. ✓ freight clippy– all-targets– -D cautions
    22. ✓ pnpm– dir web typecheck · svelte-check
    23. ✓ freight nextest run · SQLite · 142 passed
    24. ✓ freight nextest run · Postgres 18 · 142 passed
    25. Meaning of Done: green. Run bin/setup && bin/dev
    26. The starting guideline

      All code is composed by AI

      Every line of Rust, SQL, HTML, CSS, TypeScript and every Dockerfile is composed by a representative. People compose intent: specifications in product/responses in the interview, feedback in discussion. Never ever code. It’s the guideline the others rest on: boilerplate is complimentary, conventions are imposed by the representative, and specifications remain the source of reality. Check out § 0.

      Markdown is the structure

      Where a structure would deliver a library, Off Rails ships an exact specification. The task line, sessions and Inertia adapter are rendered into your app as code you own.

      Strong viewpoints, targeted at representatives

      Dog crate option, file design, calling, mistakes, tests: chose as soon as. The representative never ever disputes the ORM. Disparity is the opponent, not flaw.

      Batteries consisted of

      Auth, tasks, e-mail, caching, uploads, realtime, releases: every layer has a guide and a dish, so the representative never ever begins with a blank page. Search the guides.

      1. 01

        Interview

        Item concerns just, each with an advised default. “Who can see this?” yes; “which ORM?” never ever. State “you decide” and it takes the defaults.

      2. 02

        Strategy

        A compact strategy (resources, pages, tasks, presumptions) composed into product/ specifications with approval requirements. The specification is the resilient record; chat is not.

      3. 03

        Create

        Generator dishes, run by the representative: migration → design → stopping working tests → controller → views, one vertical piece at a time.

      4. 04

        Green

        fmt, clippy, tests on SQLite and Postgres, every approval requirement traced to a test, protection gates. Green or it didn’t occur.

      8 abilities, one per task

      AbilityWhat it does
      /offrails:new Interview → strategy → app skeleton → prepared functions, green
      /offrails:feature Specification initially, then code. Without any argument: develop what altered in product/
      /offrails:scaffold A complete resource in the app’s frontend mode
      /offrails:generate Jobs, mailers, channels, authentication, designs, migrations, jobs
      /offrails:check The Definition of Done: fmt, clippy, tests on SQLite and Postgres
      /offrails:doctor Audits the app versus every convention in the docs
      /offrails:deploy Release config and a confirmed image; validates before anything outward-facing
      /offrails:upgrade Relocations the app’s vendored structure forward and moves conventions

      How you’ll utilize it

      news You compose intent. The representative composes whatever else

      1. 1

        State what you desireor compose it in product/features/*.mdPlain English.

      2. 2

        The representative composes the specification, then the code: migrations, designs, views, tests.

      3. 3

        Done methods green on SQLite and Postgres, every approval requirement evaluated.

      Check out the guide

      A library with numerous countless lines
      60 Markdown files

      A code generator binary
      generators/scaffold.md: a dish the representative runs

      Convention over setup
      Convention over consideration: the representative never ever disputes which crate to utilize

      Enhanced for developer joy
      Enhanced for representative accuracy: compiler-checked whatever

      Magic, to conserve keystrokes
      No magic. Specific code is inexpensive when you do not type it.

      Axum·Tokio·SeaORM SQLite in your area, Postgres in production, exact same code·Askama·Tailwind·lettre·tracing·one binary, one Docker image

      FRONTEND_MODEselected when in the interview

      htmx default

      Askama design templates, inspected at assemble time, plus htmx. No Node. For CRUD apps, control panels, material websites (like this one).

      inertia

      Respond or Svelte pages with server-side routing and controllers, through a created Inertia adapter. The choice when you desire a JS UI.

      spa

      A different single-page app plus a JSON API, for when the UI should be a standalone app. Types circulation from Rust through ts-rs

      api in development

      No UI at all: a backend and a versioned API for mobile apps, partners and scripts.

      UI_LIBRARY
      react (default) or sveltefor inertia spa and htmx islands

      API
      none rest (OpenAPI + tokens), graphql or both: a public, versioned API, independent of the UI

      And in the database: a task line, a cache and pub/sub. The database is the only facilities.

      From Ruby on Rails

      • Convention over setuphoned into convention over consideration
      • Generators: rails new and scaffold, as dishes the representative runs
      • Active Record → designs and migrations
      • Bed rails 8 authentication: database-backed sessions, created and owned
      • Strong Queue, Cache and Cable: the database is the facilities, no Redis
      • Turbo 8 page-refresh broadcasts → signals over SSE
      • Action Mailer sneak peeks
      • Kamal, /up and Docker by default
      • bin/rails jobs → one app binary
      • Qualifications and env discipline

      From Elixir and Phoenix

      • Oban: relentless tasks with states, special tasks, cron, snooze
      • Oban Web → the live /admin/jobs control panel
      • Swoosh’s regional mail box → /dev/mailbox
      • phx.gen.auth: magic links and the “check your mailbox” dev tip
      • LiveDashboard → the /dev tool kit
      • The pending-migrations pagewith its “Run migrations” button
      • Ecto’s specific information layer: changesets, no callbacks
      • Channels, Presence and PubSub in development
      • Dispersed nodes and “let it crash” guidance in development
      • from Fizzy In development

        fizzyer

        Fizzy’s boards and cards, rebuilt in Rust by representatives.

      • from FreeScout In development

        A FreeScout port

        A shared-inbox aid desk, constructed by representatives on another device.

      • from Uptime Kuma Constructed

        uptime-offrails

        1530 of 1530 tests green on SQLite and Postgres.

      1 With Claude Code (suggested)

      /plugin marketplace add rust-off-rails/rustoffrails
      /plugin install offrails@offrails

      In an empty directory site:

      /offrails:new bookshelf: people track the books they've read and review them

      The representative interviews you, verifies a strategy, then constructs. Abilities likewise activate on plain demands (“make me a new Rust web app…”.

      2 With Codex, Cursor, or any representative that checks out AGENTS.md

      Check out/ path/to/rustoffrails/ AGENTS.md and make me a brand-new app called "bookshelf"

      Produced apps bring AGENTS.md and a vendored .offrails/so later on sessions require no setup.

      3

      Explain functions in plain language, or compose them as specifications in product/:

      Scaffold Book with title:string, author:string, published_on:date, rating:integer.
      Users must be logged in to create books.

      The complete walkthrough How you’ll utilize it Read the docs Star on GitHub


      Discover more from PMN S.P.O.R.T.S - A PRIME MEDIA NETWORK BRAND

      Subscribe to get the latest posts sent to your email.

      Related Articles

      LEAVE A REPLY

      Please enter your comment!
      Please enter your name here

      Captcha verification failed!
      CAPTCHA user score failed. Please contact us!

      spot_imgspot_imgspot_imgspot_img