Rails 7+ specialist with expertise in Hotwire, Turbo, Stimulus, and modern Rails development
Scanned 6/9/2026
Install via CLI
openskills install belokonm/claude-supercode-skills---
name: rails-expert
description: Rails 7+ specialist with expertise in Hotwire, Turbo, Stimulus, and modern Rails development
---
# Rails Expert
## Purpose
Provides expert Ruby on Rails development expertise specializing in Rails 7+ modern features, Hotwire stack (Turbo, Stimulus), and modern Rails patterns. Excels at building full-stack web applications with server-rendered HTML, real-time updates, and structured client-side behavior without heavy JavaScript frameworks.
## When to Use
- Building modern Rails 7+ applications with Hotwire (Turbo, Stimulus)
- Implementing real-time features with Turbo Streams and Action Cable
- Migrating legacy Rails apps to modern Rails patterns and conventions
- Building API-first Rails applications with JSON:API or GraphQL
- Optimizing Rails application performance (database queries, N+1, caching)
- Implementing complex Rails patterns (Service Objects, Form Objects, Query Objects)
- Integrating Rails with modern frontend tools (Import Maps, esbuild, Vite)
## Quick Start
**Invoke this skill when:**
- Building Rails 7+ apps with Hotwire/Turbo/Stimulus
- Implementing real-time features (Turbo Streams, Action Cable)
- Migrating legacy Rails to modern patterns
- Building API-first Rails (JSON:API, GraphQL)
- Optimizing performance (N+1, caching, eager loading)
- Using Rails patterns (Service Objects, Form Objects, Query Objects)
**Do NOT invoke when:**
- Only frontend development needed → Use frontend-developer or react-specialist
- Database-specific optimization → Use database-optimizer or postgres-pro
- Pure API design without Rails → Use api-designer
- DevOps/deployment only → Use devops-engineer
## Core Capabilities
### Rails 7+ Modern Features
- **Hotwire**: Turbo, Stimulus, and dynamic HTML updates without JavaScript frameworks
- **Import Maps**: JavaScript dependency management without build tools
- **Rails 7 Action Text**: Rich text editing with modern UI
- **Encrypted Credentials**: Enhanced security for sensitive data
- **Async Query Loading**: Improved database query performance
- **Multi-DB Support**: Primary/replica database configurations
- **Parallel Testing**: Faster test execution across processes
- **Async Action Mailer**: Non-blocking email delivery
### Hotwire Stack
- **Turbo Drive**: Faster page navigation with automatic page caching
- **Turbo Frames**: Partial page updates without full reloads
- **Turbo Streams**: Real-time updates over WebSocket or SSE
- **Stimulus Controllers**: Structured client-side JavaScript behavior
- **Turbo Morph**: Smart DOM diffing for minimal re-renders
### Modern Rails Patterns
- **Service Objects**: Extract business logic from controllers
- **Query Objects**: Complex database queries as reusable objects
- **Form Objects**: Handle complex form logic and validation
- **Decorators**: Presentational logic separation
- **View Components**: Reusable UI component architecture
- **API Resources**: Consistent API response formatting
## Decision Framework
### Rails Feature Selection
```
Rails Development Decision
├─ Need real-time updates
│ ├─ User-specific updates → Turbo Streams + Action Cable
│ ├─ Broadcast to multiple users → Action Cable channels
│ └─ Simple form responses → Turbo Streams over HTTP
│
├─ Frontend architecture
│ ├─ Minimal JS, server-rendered → Hotwire (Turbo + Stimulus)
│ ├─ Complex client-side logic → Rails API + React/Vue
│ └─ Hybrid approach → Turbo Frames for islands of interactivity
│
├─ Database strategy
│ ├─ Read-heavy workload → Multi-DB with read replicas
│ ├─ Complex queries → Query Objects + proper indexing
│ └─ Caching needed → Russian doll caching + fragment caching
│
└─ Code organization
├─ Fat models → Extract Service Objects
├─ Complex validations → Form Objects
└─ Business logic in controllers → Move to services
```
### Performance Optimization Matrix
| Issue | Solution | Implementation |
|-------|----------|----------------|
| N+1 queries | Eager loading | `includes(:association)` / `preload` |
| Slow counts | Counter caches | `counter_cache: true` on associations |
| Repeated queries | Fragment caching | `cache @object do` blocks |
| Large datasets | Pagination | Kaminari / Pagy gems |
| Slow API responses | JSON caching | `stale?` / `fresh_when` |
## Best Practices
### Rails 7+ Features
- **Hotwire First**: Use Turbo/Stimulus before reaching for JS frameworks
- **Import Maps**: Manage JS dependencies without complex bundlers
- **Async Query Loading**: Leverage parallel query execution
- **Multi-DB**: Use read replicas for read-heavy workloads
### Code Organization
- **Service Objects**: Extract business logic from controllers
- **Query Objects**: Encapsulate complex database queries
- **Form Objects**: Handle complex form validation logic
- **View Components**: Create reusable, testable UI components
### Performance
- **Eager Loading**: Always use includes/preload for associations
- **Counter Caches**: Pre-calculate counts for associations
- **Caching Strategy**: Implement multi-level caching
- **Database Indexes**: Add indexes based on query patterns
### Testing
- **System Tests**: Use for critical user journeys
- **Component Tests**: Test View Components in isolation
- **Request Tests**: Test API endpoints comprehensively
- **Model Tests**: Test business logic at unit level
## Anti-Patterns
### Architecture Anti-Patterns
- **Fat Controllers**: Business logic in controllers - use Service Objects and POROs
- **Massive Models**: Models handling too many responsibilities - extract concerns
- **Callback Spaghetti**: Complex callback chains - use service objects
- **Skinny Controller, Fat Model**: All logic in model - balance distribution
### Database Anti-Patterns
- **N+1 Queries**: Not using eager loading - use includes/joins/preload
- **Missing Indexes**: Slow queries without proper indexes - analyze and add
- **Counter Cache Miss**: Repeated count queries - use counter caches
- **Migrations Without Down**: Non-reversible migrations - ensure reversibility
### Performance Anti-Patterns
- **Eager Loading Excess**: Over-eager loading causing memory issues
- **Missing Caching**: No caching strategy - implement appropriate levels
- **Render Bloat**: Heavy view rendering - use fragments and caching
- **Job Queue Backlog**: No background job processing - use Active Job
## Additional Resources
- **Detailed Technical Reference**: See [REFERENCE.md](REFERENCE.md)
- **Code Examples & Patterns**: See [EXAMPLES.md](EXAMPLES.md)
No comments yet. Be the first to comment!