Pro Recipes
Viewing latest docs.
Switch version: v3

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
/recipes:add-saml-sso Adds SAML 2.0 single sign-on so each org connects its own identity provider (Okta, Microsoft Entra ID, Google Workspace) When enterprise customers require SSO. Org billing only, and needs OTP 27+

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
/task:plan Interview-driven task planning: asks clarifying questions, generates a structured task file in .claude/tasks/
/task:do Executes a task file step by step, with the sub-agents reviewing as it goes
/ci Runs the full CI pipeline locally (format, compile warnings, tests, credo, sobelow) and fixes what fails
/git:commit Smart git commit with conventional messages, runs mix format, auto-splits unrelated changes
/review Runs mix quality, then reviews your branch for bugs, security holes and missing tests
/db:scan Comprehensive database architecture review
/test-your-work QA verification of your changes via browser or IEx
/regenerate:architecture-doc Audits .claude/generated/architecture.md for drift against the codebase
/regenerate:db-schema Dumps the Postgres schema to .claude/generated/db-schema.md

How to Run a Recipe

  1. Install Claude Code and open it in your Petal Pro project directory
  2. Type the slash command — e.g. /recipes:remove-billing
  3. 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.