dhh-rails-style

Enforce 37signals/DHH Rails coding conventions for Ruby on Rails development.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill solves the problem of writing Ruby on Rails code that deviates from 37signals/DHH's proven production conventions, which often leads to unnecessary complexity, wrong abstractions, and maintainability issues for teams building apps in the Basecamp, HEY, or Campfire style.

Core Features & Use Cases

  • Full Domain Coverage: Provides guidance for all core Rails development areas including model design with concerns, RESTful controller mapping, Turbo/Stimulus frontend patterns, database architecture, Minitest testing, and gem selection.
  • Production-Proven Patterns: Includes real-world conventions extracted from analyzing 265 pull requests from the 37signals Fizzy codebase, such as state tracking via database records instead of booleans, preference for database-backed solutions over external services like Redis, and avoidance of unnecessary abstractions like service objects and GraphQL.
  • Use Case: If you are building a Rails app and want to avoid over-engineering with heavy dependencies when vanilla Rails and the Solid suite solve problems more simply, this Skill guides you to write code that matches the clarity and simplicity of 37signals' production codebases.

Quick Start

Use the dhh-rails-style skill to refactor my existing Rails authentication system to use the custom 37signals magic link pattern instead of Devise.

Frequently Asked Questions about dhh-rails-style

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

FAQPage Schema
How do I write Rails code that follows DHH and 37signals conventions?

To write Rails code following DHH and 37signals conventions, favor vanilla Rails over heavy abstractions, implement RESTful controllers with concern-based fat models, and track state via database records instead of booleans.

What is the best way to structure a Rails app without over-engineering?

The best way to avoid over-engineering in Rails is to skip unnecessary service objects and heavy dependencies, preferring database-backed solutions and the Solid suite over external services like Redis for simpler maintainability.

How do I implement Turbo and Stimulus frontend patterns in Rails?

Implement Turbo and Stimulus frontend patterns in Rails by using vanilla Hotwire conventions instead of heavy JavaScript frameworks, aligning with the 37signals clarity over cleverness engineering philosophy for interactive UI updates.

When do I need database-backed state tracking instead of using booleans in Rails?

You need database-backed state tracking in Rails when managing complex workflows, as 37signals conventions favor tracking state via database records instead of booleans to maintain clarity and avoid unnecessary state machine abstractions.

Can I use Minitest for testing Rails applications following 37signals conventions?

Yes, you can use Minitest for testing Rails applications following 37signals conventions, as Minitest is the preferred testing framework over heavy external testing libraries to maintain simplicity and align with vanilla Rails.

Why avoid service objects and GraphQL in Ruby on Rails applications?

You should avoid service objects and GraphQL in Ruby on Rails applications to prevent unnecessary abstractions, as 37signals conventions favor vanilla Rails architecture and RESTful controller design for clarity over cleverness.