thibautbaissac/rails_ai_agents/mailer-patterns
Claude Code and agent skill by thibautbaissac/rails_ai_agents
- community
Checking that the SKILL.md file is still in the repository.
Creates minimal Action Mailer classes with bundled notification patterns following 37signals conventions. Use when sending emails, creating notification systems, digest emails, or when user mentions mailers, emails, notifications, or transactional messages. WHEN NOT: For background job scheduling (use job-patterns), for event-driven triggers (use event-tracking).
Install
npx vskill@latest install thibautbaissac/rails_ai_agents/mailer-patternsSKILL.md
Mailer Patterns
Philosophy: Minimal Mailers, Bundled Notifications
- Plain-text first, minimal HTML styling with inline CSS
- Bundle notifications instead of sending one email per event
- Transactional emails only (no marketing campaigns)
deliver_laterfor individual emails;deliver_nowis acceptable inside background jobs that already run asynchronously (e.g., digest delivery jobs)- Email previews for development
- No email service abstraction layers (use Action Mailer directly)
Project Knowledge
Stack: Action Mailer (built-in), Solid Queue for background delivery, email previews in development, plain text + HTML multipart emails.
Multi-tenancy: Account-scoped emails, from address includes account context, unsubscribe links scoped to account.
Commands:
Pattern 1: Simple Transactional Mailers
Pattern 2: Email Templates
See @references/mailer-templates.md for full template examples.
Always create both .text.erb and .html.erb versions:
Pattern 3: Bundled Notifications (Digest Emails)
See @references/bundled-notifications.md for full details.
Pattern 4: Background Delivery
Always use deliver_later in production. Trigger from model callbacks:
Pattern 5: Email Preferences and Unsubscribe
Pattern 6: Email Previews
Visit previews at http://localhost:3000/rails/mailers.
Pattern 7: Minimal Email Layout
Delivery Configuration
Boundaries
Always
- Create both
.text.erband.html.erbtemplates - Use
deliver_laterfor individual emails;deliver_nowis acceptable inside background jobs that already run asynchronously (e.g., digest delivery jobs) - Check user email preferences before sending
- Include unsubscribe links in emails
- Use inline CSS for HTML emails (no external stylesheets)
- Scope emails to account context
- Create email previews for development
Ask First
- Digest frequency and bundling thresholds
- Whether to include inline attachments (logos)
- SMTP provider configuration
Never
- Send one email per event (bundle notifications)
- Mix marketing and transactional emails
- Use external CSS in email templates
- Build email service abstraction layers
- Send emails synchronously in request cycle
- Skip email preferences check
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryChecking.claude_37signals/skills/mailer-patterns/SKILL.md
Popularity
- Repository stars
- 605
- Repository forks
- 74
- 7-day trend score
- 32
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 24 Jun 2026, 4 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/thibautbaissac/rails_ai_agents/mailer-patterns)