dhh-rails-style

Enforce DHH and 37signals Ruby on Rails coding conventions.

9|Updated Mar 9, 2026
One-click install
npx skills add https://github.com/sylvanding/omelette --skill dhh-rails-style-sylvanding
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: dhh-rails-style
Source: https://github.com/sylvanding/omelette/tree/main/.claude/skills/dhh-rails-style
Command: npx skills add https://github.com/sylvanding/omelette --skill dhh-rails-style-sylvanding

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Writing Ruby on Rails code that adheres to DHH and 37signals' distinctive, production-proven conventions is challenging without direct access to their internal style guidelines, leading to inconsistent codebases that deviate from the maintainable, battle-tested patterns used to build Basecamp, HEY, and Campfire.

Core Features & Use Cases

  • Comprehensive Style Guidance: Covers all core Rails domains including controllers, models, frontend (Turbo/Stimulus), architecture, testing, and dependency selection, extracted from analysis of 265 production 37signals pull requests.
  • Code Generation & Refactoring: Apply DHH's REST purity, fat model/thin controller, and "clarity over cleverness" principles to new or existing Rails code.
  • Code Review Support: Review code against 37signals standards to catch deviations from proven patterns like state-as-records, database-backed infrastructure, and Minitest with fixtures.
  • Use Case: A developer building a new Rails application can use this skill to ensure their controller actions follow RESTful resource mapping instead of custom verbs, or a team lead can use it to align their codebase with 37signals' proven conventions.

Quick Start

Provide your Ruby or Rails code snippet to this skill to receive refactoring guidance and style feedback aligned with 37signals/DHH coding standards.

Frequently Asked Questions about dhh-rails-style

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
What are DHH's Rails code conventions for controllers and models?

DHH's Rails code conventions enforce RESTful resource mapping and a fat model, thin controller architecture. This approach prioritizes clarity over cleverness, using database records for state tracking instead of booleans to ensure maintainable Ruby on Rails codebases.

How do I refactor Rails code to match 37signals style guidelines?

Refactor Rails code to match 37signals style by applying RESTful resource mapping instead of custom verbs, moving logic to fat models, and replacing boolean state tracking with database records. Provide your Ruby code snippet to receive refactoring guidance aligned with DHH coding standards.

Does the DHH Rails style use Minitest with fixtures or RSpec?

The DHH Rails style uses Minitest with fixtures for testing instead of RSpec. This aligns with the production-proven 37signals conventions used to build Basecamp and HEY, ensuring reliable and straightforward Ruby on Rails testing practices.

What's the best way to structure Rails frontend code using Hotwire?

The best way to structure Rails frontend code using Hotwire is following 37signals conventions extracted from production pull requests. This involves using Turbo and Stimulus patterns that prioritize clarity over cleverness, ensuring maintainable frontend architecture in Ruby on Rails applications.

Why should I use database-backed infrastructure instead of Redis in Rails?

You should use database-backed infrastructure instead of external services like Redis because DHH's Rails conventions favor using the database for state tracking and infrastructure. This approach, proven in 37signals applications like Basecamp, reduces dependency complexity and maintains architectural clarity.

Can I use this DHH Rails style guide for code reviews?

Yes, you can use the DHH Rails style guide for code reviews to catch deviations from 37signals standards. It checks Ruby on Rails code against proven patterns like RESTful controllers, Minitest with fixtures, and database-backed infrastructure to ensure codebase consistency.