Agent Skills: 37signals Rails Best Practices

37signals Rails coding principles and conventions from DHH, Jorge Manrubia, and the Fizzy/Basecamp/HEY codebase. This skill should be used when writing, reviewing, or refactoring Ruby on Rails code following the 37signals philosophy — vanilla Rails, CRUD controllers, rich domain models, concerns, no service objects, Hotwire, Turbo, Stimulus, Solid Queue, Solid Cache, Solid Cable, multi-tenancy, Minitest, custom auth, or DHH conventions.

UncategorizedID: pproenca/dot-skills/37signals-rails

Install this agent skill to your local

pnpm dlx add-skill https://github.com/pproenca/dot-skills/tree/HEAD/skills/.experimental/37signals-rails

Skill Files

Browse the full folder contents for 37signals-rails.

Download Skill

Loading file tree…

skills/.experimental/37signals-rails/SKILL.md

Skill Metadata

Name
37signals-rails
Description
37signals Rails coding principles and conventions from DHH, Jorge Manrubia, and the Fizzy/Basecamp/HEY codebase. This skill should be used when writing, reviewing, or refactoring Ruby on Rails code following the 37signals philosophy — vanilla Rails, CRUD controllers, rich domain models, concerns, no service objects, Hotwire, Turbo, Stimulus, Solid Queue, Solid Cache, Solid Cable, multi-tenancy, Minitest, custom auth, or DHH conventions.

37signals Rails Best Practices

Comprehensive coding principles and conventions for Ruby on Rails applications, as practiced at 37signals (Basecamp, HEY, Fizzy). Contains 56 rules across 8 categories, prioritized by architectural impact. Derived from official 37signals sources: the Fizzy codebase, STYLE.md, AGENTS.md, the Rails Doctrine, DHH's "On Writing Software Well" series, and the unofficial 37signals style guide (265 Fizzy PRs).

When to Apply

Reference these guidelines when:

  • Writing new Rails controllers, models, or views
  • Deciding between gems and vanilla Rails
  • Modeling state and database schema
  • Setting up background jobs, caching, or real-time features
  • Reviewing code for 37signals-style conventions
  • Refactoring toward rich domain models
  • Choosing authentication or authorization approach
  • Adding Stimulus controllers or Turbo patterns

Rule Categories by Priority

| Priority | Category | Impact | Prefix | |----------|----------|--------|--------| | 1 | Architecture Fundamentals | CRITICAL | arch- | | 2 | Controllers & REST | CRITICAL | ctrl- | | 3 | Domain Modeling | HIGH | model- | | 4 | State Management | HIGH | state- | | 5 | Database & Infrastructure | HIGH | db- | | 6 | Views & Frontend | MEDIUM | view- | | 7 | Code Style | MEDIUM | style- | | 8 | Testing | MEDIUM | test- |

Quick Reference

1. Architecture Fundamentals (CRITICAL)

2. Controllers & REST (CRITICAL)

3. Domain Modeling (HIGH)

4. State Management (HIGH)

5. Database & Infrastructure (HIGH)

6. Views & Frontend (MEDIUM)

7. Code Style (MEDIUM)

8. Testing (MEDIUM)

How to Use

Read individual reference files for detailed explanations and code examples:

Reference Files

| File | Description | |------|-------------| | references/_sections.md | Category definitions and ordering | | assets/templates/_template.md | Template for new rules | | metadata.json | Version and reference information |