{"slug": "show-hn-rails-baseline-a-rails-saas-starter-with-agent-readable-architecture", "title": "Show HN: Rails Baseline – a Rails SaaS starter with agent-readable architecture", "summary": "Rails Baseline, a production-ready Rails 8 SaaS starter kit priced at $129 one-time (planned standard price $179), launched with agent-readable architecture documentation including AGENTS.md and ARCHITECTURE.md to guide coding agents in extending the codebase consistently. The kit includes authentication, accounts, billing, authorization, entitlements, Hotwire, Tailwind, and Kamal, and is designed to provide local precedent for AI coding agents such as Codex, Claude, and Cursor.", "body_md": "`rails new my_saas`\n\n- ? tenancy\n- ? authorization\n- ? billing boundary\n- ? service conventions\n- ? public IDs\n- ? frontend ownership\n- ? jobs\n- ? admin\n- ? testing patterns\n\nEvery feature request is also an architecture prompt.\n\nRails for the agent era\n\nRails Baseline is a production-ready SaaS foundation with authentication, accounts, billing, authorization, entitlements, Hotwire, Tailwind, and Kamal — plus the working patterns and architectural context coding agents need to extend it consistently.\n\n**Founding release · $129 one-time** Planned standard price · $179\n\nRepository\n\n```\nrails-baseline/\n├── AGENTS.md\n├── ARCHITECTURE.md\n├── starter.yml\n├── docs/\n│   ├── contracts/\n│   ├── recipes/\n│   └── vendor/\n├── app/\n├── config/\n├── db/\n└── test/\n```\n\nBefore making a non-trivial change:\n\n`ARCHITECTURE.md`\n\nTask\n\nContext found\n\n01 / The expensive part moved\n\n`rails new`\n\nis easy.Codex, Claude, and Cursor can generate a Rails application from scratch in minutes.\n\nThat isn’t the expensive part anymore. A blank repository still gives the agent almost no local precedent for how your application is supposed to work.\n\nHow are records scoped?\n\nWhere do permissions live?\n\nIs Stripe state also product access?\n\nDoes this interaction need Stimulus or React?\n\nHow is tenant context restored?\n\nWhere does “25 projects” live?\n\nWhat does a system administrator mean?\n\nWhat gets retried, and how?\n\nCoding agents made scaffolding cheap. Architecture still isn’t.AI is very good at continuing strong patterns.\n\nA new repository has no patterns to continue.\n\n02 / Local precedent\n\n`rails new my_saas`\n\nEvery feature request is also an architecture prompt.\n\n`existing patterns found`\n\nThe feature request can mostly remain a feature request.\n\n03 / More than boilerplate\n\nTraditional Rails starter kits primarily answer: “What code can I avoid writing?” Rails Baseline also answers: “How should the code that comes next fit this application?”\n\nFeatures you don’t have to build.\n\nA codebase worth continuing.\n\nMost starter kits optimize for how much code they include.**Rails Baseline optimizes for how well the next 100,000 lines get written.**\n\n04 / Stable contracts\n\n```\nEntitlements.enabled?(\n  account: Current.account,\n  key: :advanced_exports\n)\n```\n\nCan this account use exports? Ask Entitlements.\n\n```\nLimits.value(\n  account: Current.account,\n  key: :projects\n)\n```\n\nHow many projects may it create? Ask Limits.\n\n```\nauthorize project\n```\n\nCan this user modify this project? Ask Pundit.\n\n```\nCurrent.account.projects.find_by!(\n  public_id: params[:id]\n)\n```\n\nScope the record before deciding permission.\n\nWhich Stripe object exists underneath all of that? **Ordinary product code should not care.**\n\nBilling\n\nIdentity & access\n\n05 / Pattern density\n\nRails Baseline provides strong local precedent for the architectural problems a SaaS application keeps encountering.\n\nSearch repository context…\n\nfollow an existing account-scoped lookup\n\nfollow the existing Pundit policy\n\nuse Entitlements\n\nuse Limits\n\nfollow a tenant-aware Solid Queue job\n\nfollow AuditEvent\n\nfollow the supported Pay pattern\n\nuse the React-island recipe\n\nThe goal isn’t maximum code. **It’s enough high-quality precedent that the next feature has something local to imitate.**\n\n06 / Familiar by design\n\nRails Baseline does not hide Rails behind another framework. It looks familiar to an experienced Rails developer — and recognizable to coding agents already fluent in conventional Rails code.\n\nRails first. Hotwire first. React when you actually need React.\n\n07 / Shipping in the founding release\n\nA conventional Rails 8 SaaS foundation, with the operating context that keeps its conventions coherent as the application grows.\n\n08 / Explicitly optional\n\nRails Baseline establishes how optional capabilities should join the architecture without forcing every application to carry them on day one.\n\n**A baseline, not a kitchen sink.**\n\n09 / Repository-native context\n\nNo proprietary Rails Baseline agent is required. The repository itself carries the architecture.\n\nCodex, Claude Code, Cursor, and other capable coding agents can consume the same local patterns and instructions.\n\nAdd CSV exports to projects.\n\nRequire `advanced_exports`\n\n.\n\nRun it asynchronously.\n\n10 / Who it’s for\n\nYou know how to build these pieces. You just don’t need to make the same infrastructure decisions for every new product.\n\nYour coding agent writes meaningful implementation. You want it extending a codebase instead of inventing one.\n\nYou want to start quickly without owning an opaque generated pile of abstractions afterward.\n\nYou want the next few days spent on the thing customers might pay for.\n\n11 / Clear boundaries\n\nBuilt by Rob Race\n\nRails Baseline is built by [Rob Race](/), a long-time Rails developer, senior software engineer, SaaS builder, and author of [Build a SaaS App in Rails 8 ](https://buildasaasappinrails.com).\n\nThe architecture draws from patterns that survived actual applications, along with the places those applications accumulated complexity that a new baseline can avoid.\n\nFounding license\n\nLaunching soon. One purchase, one opinionated Rails foundation, and the context to keep extending it.\n\nPlanned standard price: ~~$179~~\n\nPurchase terms\n\nRails Baseline provides immediate access to the complete source code, so purchases are generally non-refundable once access has been granted.\n\nIf Rails Baseline materially differs from what was described, you encounter a problem that prevents you from reasonably using it, or you were charged incorrectly, contact me within 14 days. I’ll work with you to resolve the issue, and if the problem is with Rails Baseline and can’t reasonably be resolved, I’ll issue a refund.\n\nRefunds aren’t offered for change of mind, deciding not to use the product, or expecting functionality that wasn’t included in the product description.\n\n12 / Questions\n\nIt includes the SaaS primitives you expect, but the emphasis is different. Rails Baseline gives humans and coding agents enough architecture and working precedent that new features can extend the codebase consistently.\n\nYou can. Code generation is no longer the expensive part. A blank repository still provides little local precedent for the dozens of architectural decisions a real SaaS application requires.\n\nNo. Rails Baseline is a conventional Rails application first. Its contracts, recipes, and explicit patterns are useful to humans too.\n\nNo. Rails views, Hotwire, Turbo, and Stimulus are the default. React is an optional island capability for interfaces with substantial client-side state.\n\nPay provides a conventional Rails billing integration for Stripe while Rails Baseline keeps product capabilities and limits as application-owned concepts. The repository also documents the supported Pay API.\n\nNo. It is deliberately a normal Rails application.\n\nYes. The architecture distinguishes foundational concepts from optional capabilities so the application can evolve without depending on a proprietary Baseline runtime.\n\nThe initial founding license is intended for products you own.\n\nRails Baseline\n\nStart from a Rails application whose architecture, working patterns, and agent context already agree with each other.", "url": "https://wpnews.pro/news/show-hn-rails-baseline-a-rails-saas-starter-with-agent-readable-architecture", "canonical_source": "https://railsbaseline.com/", "published_at": "2026-09-01 22:00:30+00:00", "updated_at": "2026-09-01 22:22:16.393495+00:00", "lang": "en", "topics": ["developer-tools", "ai-tools"], "entities": ["Rails Baseline", "Rails 8", "Hotwire", "Tailwind", "Kamal", "Codex", "Claude", "Cursor"], "alternates": {"html": "https://wpnews.pro/news/show-hn-rails-baseline-a-rails-saas-starter-with-agent-readable-architecture", "markdown": "https://wpnews.pro/news/show-hn-rails-baseline-a-rails-saas-starter-with-agent-readable-architecture.md", "text": "https://wpnews.pro/news/show-hn-rails-baseline-a-rails-saas-starter-with-agent-readable-architecture.txt", "jsonld": "https://wpnews.pro/news/show-hn-rails-baseline-a-rails-saas-starter-with-agent-readable-architecture.jsonld"}}