Petal Pro 4.0 — The AI-Ready Phoenix Boilerplate
Petal Pro 4.0 is out — the AI-ready Phoenix boilerplate with a built-in MCP server, Jido AI admin chat, 22 Claude Code recipes, GDPR compliance, in-app feedback, and a built-in changelog system. Everything you need to ship a production SaaS, faster.
- Name
- Matt
- @mplatts
3 days ago
Petal Pro 4.0 is out. Half our day is in Claude Code now — yours probably is too. v4 is the same Phoenix + LiveView SaaS starter you know, but with the AI tooling baked into the boilerplate itself. MCP server, recipe commands for the things people customise first, sub-agents that know your conventions. Plus the usual stack of new features.
What’s new
Admin MCP server
Point Claude Code at POST /api/mcp with a bearer token and you’ve got a working tool surface — search users, manage memberships, query stats — without leaving your editor. 10 actions ship out of the box. Adding a new one is one Jido.Action module.
AI admin chat (native Jido)
The in-app admin chat got rebuilt on Jido.Action so it shares the same tool registry as the MCP server. Add a tool once, get it in both places. LangChain and Tesla are gone. Everything’s on Req.
AI cost tracking
Every Claude/OpenAI/Gemini call gets logged with token counts, costs, and timing in ai_call_logs. Built as a Req plugin. No wrapper code in your app.
22 Claude Code recipes
Slash commands for the customisations everyone does first: /recipes:remove-billing, /recipes:add-magic-link-auth, /recipes:switch-to-single-tenant, /recipes:remove-orgs, and 18 more. Plus 5 sub-agents (schema-architect, elixir-reviewer, heex-reviewer, ui-ux-reviewer, test-runner) and a stack of scaffolding skills.
GDPR Your Data
A new /app/users/your-data page lets users export their full personal data as JSON and submit account deletion requests. Soft-delete + anonymisation cascade + Oban background processing. If you sell into the EU, that’s one less weekend you have to spend writing it.
Granular notification preferences
Per-type toggles for in-app vs email. Security-critical notifications are forced-on. Single dispatch entry point: Notifications.notify/3 — checks per-user preferences, fans out to the right channels.
In-app feedback
A built-in feedback widget at /app/feedback lets users submit bug reports and feature requests with category tags. You get a searchable admin dashboard to manage it all — no third-party tool needed.
Built-in changelog system
Ship your own changelog to your users, not just ours to you. Full admin CRUD with an Editor.js content editor, public pages with likes and social sharing, a promotional banner component, and email notifications when new entries are published.
New sidebar layout
The app shell got a full refresh. Collapsible sidebar with localStorage persistence, mobile-friendly sticky bar, and a live notification badge. The old top-nav header is gone.
DataTable overhaul
Declarative DataTableConfig, global search, filter chips, row selection, and bulk actions.
Org ownership model
New owner role (owner → admin → member), ownership transfer, self-service leave org, and invitation expiry with auto-purge.
Infrastructure
-
Sentry error monitoring — set
SENTRY_DSNand it just works - Hammer rate limiting on auth endpoints
- Resend transactional email adapter
- Bunny.net file upload provider
-
DB schema visualiser at
/dev
- Dynamic OG image generation
- UUID v7 primary keys across the board
- Elixir 1.19+ / OTP 27
- HTTPoison/Tesla → Req across the board
Upgrading from v3
If you have an active membership, v4 is yours — log in and download.
The biggest item in the diff will be the Styler 1.11 reformat. Don’t panic — that’s expected. Read the upgrade guide before you cherry-pick.