Back to list
tmullen

vanilla-rails

by tmullen

0🍴 0📅 Dec 7, 2025

SKILL.md


name: vanilla-rails description: Use when building Rails + Hotwire applications - covers REST routing, thin controllers, rich models, Turbo Streams/Frames, and Stimulus patterns from 37signals

Rails + Hotwire Patterns

Overview

Patterns from 37signals' approach to Rails development. Emphasizes REST purity, thin controllers calling rich models, and Hotwire for dynamic interfaces without heavy JavaScript.

Read vanilla-rails.md for complete patterns and examples (~3000 tokens).

When to Use This Skill

Use when working on Rails applications with Hotwire:

  • Adding new routes, controllers, or actions
  • Implementing Turbo Streams or Turbo Frames
  • Writing Stimulus controllers
  • Organizing model concerns
  • Building real-time features with broadcasts

Quick Reference

Routing

Model actions as resources. Custom actions become nested resources:

# Instead of: post :close, :reopen on cards
resources :cards do
  resource :closure  # create = close, destroy = reopen
end

Controllers

Thin controllers call rich model methods:

class Cards::ClosuresController < ApplicationController
  def create
    @card.close(user: Current.user)
  end

  def destroy
    @card.reopen(user: Current.user)
  end
end

Models

Small, focused concerns. One behavior per concern:

class Card < ApplicationRecord
  include Closeable, Watchable, Pinnable
end

Turbo Streams

Array-based DOM IDs for scoped targets:

<%= turbo_stream.replace [@card, :container], partial: "cards/container" %>

Stimulus

Private methods with #, dispatch events for coordination:

export default class extends Controller {
  #timer

  open() {
    this.dispatch("show")
  }
}

Core Principles

  1. REST purity - Actions are CRUD on resources
  2. Thin controllers - Controllers call models, models contain behavior
  3. Small concerns - One behavior per concern
  4. Turbo-first - Server renders HTML, Turbo handles updates
  5. Stimulus for sprinkles - JavaScript enhances, doesn't replace

Bottom Line

Read vanilla-rails.md for the complete guide. These patterns work together - routing informs controller design, controllers return Turbo Streams, Stimulus coordinates the UI.

Score

Total Score

55/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

0/5
タグ

1つ以上のタグが設定されている

0/5

Reviews

💬

Reviews coming soon