rails-37-style-philosophy-what-they-avoid

Detail gems and architectural patterns avoided by the 37signals philosophy.

Updated Mar 6, 2026
One-click install
npx skills add https://github.com/Chwistophe/agent-skills-unofficial-37-signals-rails-way-fizzy --skill rails-37-style-philosophy-what-they-avoid
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: rails-37-style-philosophy-what-they-avoid
Source: https://github.com/Chwistophe/agent-skills-unofficial-37-signals-rails-way-fizzy/tree/main/rails-37-style-philosophy-what-they-avoid
Command: npx skills add https://github.com/Chwistophe/agent-skills-unofficial-37-signals-rails-way-fizzy --skill rails-37-style-philosophy-what-they-avoid

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill clarifies the specific technologies, gems, and patterns that the 37signals development philosophy deliberately avoids, helping developers understand their rationale and make informed decisions about their own tech stacks.

Core Features & Use Cases

  • Technology Stacks: Details alternatives to popular gems like Devise, Pundit, RSpec, and FactoryBot.
  • Architectural Patterns: Explains the preference for rich domain models over service objects and form objects.
  • Frontend/Backend Choices: Outlines the use of Turbo/Stimulus over SPAs and Solid Queue over Sidekiq.
  • Use Case: A developer evaluating different authorization strategies can consult this skill to understand why 37signals prefers model predicates over gems like Pundit or CanCanCan.

Quick Start

Explain why 37signals avoids Devise for authentication.

Frequently Asked Questions about rails-37-style-philosophy-what-they-avoid

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

FAQPage Schema
Why does 37signals avoid Devise for authentication in Rails?

37signals avoids Devise for authentication to maintain control over their codebase, preferring custom code over relying on external gems. This approach aligns with their philosophy of building rich domain models and minimizing dependencies.

Should I use service objects and form objects in my Rails application?

37signals deliberately avoids service objects and form objects, preferring rich domain models instead. They consolidate business logic directly within models to keep the architecture simpler and avoid unnecessary abstractions.

What is the 37signals alternative to Sidekiq for background processing?

Instead of Sidekiq, 37signals uses Solid Queue for background processing. They also prefer Turbo and Stimulus over frontend frameworks and native CSS over Tailwind CSS to reduce dependencies.

Does 37signals use RSpec and FactoryBot for testing?

No, 37signals avoids RSpec and FactoryBot. They prefer Minitest and fixtures for testing, keeping their testing stack lightweight and closely aligned with Rails defaults.

How do I handle authorization without Pundit or CanCanCan in Rails?

37signals avoids Pundit and CanCanCan, preferring model predicates for authorization. This method keeps authorization logic directly within the domain models rather than separating it into distinct objects.

What are the limitations of avoiding ViewComponent and GraphQL in Rails?

Avoiding ViewComponent and GraphQL means relying on view helpers, partials, and REST. This limitation is a deliberate choice to reduce complexity and stick to standard Rails conventions over adopting popular architectural patterns.