5 min read
|
Saved February 14, 2026
|
Copied!
Do you care about this?
This article outlines a coding style guide based on the Fizzy codebase, 37signals' open-source project management tool. It details best practices, patterns, and design philosophies derived from actual production code, emphasizing a "Vanilla Rails" approach with minimal dependencies.
If you do, here's more
The style guide presented is based on the Fizzy codebase, an open-source project management tool created by 37signals. For the first time, developers have access to a real-world example of a Rails application that follows the principles espoused by 37signals and David Heinemeier Hansson (DHH). The guide was generated through a thorough analysis of the Fizzy codebase, focusing on the reasoning behind coding patterns and design choices.
Key insights include a strong preference for "vanilla Rails," meaning minimal reliance on external gems and a focus on built-in Rails features. The guide emphasizes CRUD (Create, Read, Update, Delete) principles, suggesting that each action should correspond to a new resource rather than modifying existing ones. For instance, instead of adding custom actions to a resource, developers are encouraged to create new resources for state changes. This approach simplifies routing and maintains clarity in the code structure.
The guide outlines specific practices, such as using rich domain models over service objects and avoiding over-engineered solutions like service objects, GraphQL, or Redis. It also highlights whatβs absent from their approach, which can be as telling as whatβs included. For example, they avoid using the Devise gem for authentication, opting for a custom solution that fits their needs in about 150 lines of code. This style guide serves as a practical resource for developers looking to adopt the 37signals philosophy in their Rails applications.
Questions about this article
No questions yet.