Recipes
Recipes are Claude Code slash commands that automate common Petal Pro customizations. Instead of manually editing a dozen files and hoping you didn’t miss one, you run a slash command and Claude Code does it for you — reading the codebase, making the changes, and running tests.
Open Claude Code in your project directory and type the slash command to run any recipe.
Feature Removal
Strip out built-in features you don’t need. These are destructive — commit first.
| Command | Description | When to use |
|---|---|---|
/recipes:remove-billing |
Completely removes Stripe billing, subscriptions, and all payment-related code | Free apps, externally-billed apps, or anything that doesn’t need in-app payments |
/recipes:remove-organisations |
Strips multi-tenancy — orgs, memberships, invitations, org-scoped routes | Single-user apps that don’t need teams or workspaces |
/recipes:remove-2fa |
Removes TOTP two-factor authentication | Apps with simpler auth requirements |
/recipes:remove-oauth |
Removes Google and GitHub OAuth sign-in | Email/password-only apps |
/recipes:remove-passwordless-auth |
Removes PIN-based passwordless sign-in | Apps that don’t need this auth method |
/recipes:remove-notifications |
Removes the in-app notification system, bell icon, and notification preferences | Apps that don’t need in-app notifications |
/recipes:remove-blog-posts |
Removes the built-in blog/posts system | Apps using an external CMS or no blog at all |
/recipes:remove-changelog |
Removes the changelog/release notes feature | Apps that don’t need a public changelog |
/recipes:remove-api |
Removes the REST API layer and OpenAPI/Swagger docs | LiveView-only apps that don’t need a programmatic API |
/recipes:remove-admin-chat |
Removes the AI-powered admin chat feature | Apps that don’t want AI in the admin panel |
/recipes:remove-i18n |
Strips out internationalization — Gettext wrappers, locale detection, translation files | English-only apps |
Architecture Changes
Restructure how the app is organized or how billing and tenancy work.
| Command | Description | When to use |
|---|---|---|
/recipes:switch-to-single-tenant |
Limits each user to exactly one org (workspace = account, like Notion or Linear) | When you want team features but not multi-org complexity |
/recipes:switch-to-user-billing |
Changes billing from org-level to user-level | When individuals should be billed, not teams |
/recipes:windows-password-hashing |
Replaces bcrypt_elixir with pbkdf2_elixir (pure Elixir, no C compiler) |
Deploying on Windows or CI environments without native compilation |
Auth Additions
Add authentication methods on top of what ships by default.
| Command | Description | When to use |
|---|---|---|
/recipes:add-magic-link-auth |
Adds email magic link sign-in (clickable email → logged in, no password) | When you want frictionless auth without PIN codes |
Integrations
Add third-party services and infrastructure.
| Command | Description | When to use |
|---|---|---|
/recipes:add-s3-uploads |
Configures direct browser-to-S3 uploads via presigned URLs | When you need file uploads that bypass your server |
/recipes:cloudinary-uploads |
Adds direct Cloudinary uploads via signed upload parameters | When you want Cloudinary’s image transformation and CDN |
/recipes:add-custom-domains |
Allows orgs to use their own custom domains (white-label) | Multi-tenant apps that need per-org custom domains |
/recipes:google-maps |
Adds a Google Maps component with markers via a LiveView hook | When you need interactive maps |
Feature Additions
Add new capabilities to the app.
| Command | Description | When to use |
|---|---|---|
/recipes:add-lifetime-deal |
Adds a one-time payment plan alongside subscriptions | AppSumo deals, early-bird pricing, or indie SaaS one-time offers |
/recipes:add-waitlist |
Adds a pre-launch waitlist/early access signup page | Before your product launches publicly |
/recipes:first-name-last-name |
Splits the single name field into first_name and last_name across the entire codebase |
When you need separate name fields in forms, API, OAuth, etc. |
Developer Workflow Commands
These aren’t recipes — they’re general-purpose commands for working with the codebase day-to-day. Run them from Claude Code in your project directory.
| Command | Description |
|---|---|
/plan |
Interview-driven feature planning — asks clarifying questions, generates a structured task file |
/task |
Generates a detailed implementation plan with actionable steps and checkboxes |
/do_task |
Executes an implementation task from a task file, step by step |
/review |
Reviews your git branch for bugs, potential issues, and missing test coverage |
/git_commit |
Smart git commit with conventional messages, auto-splits unrelated changes |
/push |
Runs CI checks, commits, then pushes to GitHub |
/changelog |
Analyzes your git branch and updates CHANGELOG.md |
/clean_code |
Fixes compile warnings and failing tests |
/database_scan |
Scans database structure and suggests improvements |
/regenerate_architecture_doc |
Scans the codebase and regenerates ARCHITECTURE.md |
/test_your_work |
QA verification of your changes via browser or IEx |
How to Run a Recipe
- Install Claude Code and open it in your Petal Pro project directory
-
Type the slash command — e.g.
/recipes:remove-billing - Claude Code reads your codebase, makes all the necessary changes, and runs tests
All recipe files live in .claude/commands/recipes/ in your project. You can read them to understand exactly what each recipe does before running it.