Skip to main content
The landing page is the only theme template that receives plans. It holds the active plans, sorted by price ascending, each serialized with everything a pricing table needs.

What a plan contains

A feature line entered as -No API access becomes { title: 'No API access', is_included: false }, so you can render excluded features with a different marker.

A pricing section

sections/pricing.twig
snippets/plan.twig

Formatting money and credits

Two custom elements do the formatting for you:
The currency global gives you what they need:

Grouping by billing cycle

Most pricing pages separate recurring plans from one-time packs:
For a monthly and yearly toggle, render both groups and switch between them with Alpine:
To show a yearly plan as a monthly figure, divide by twelve and say what’s actually billed:

Feature rows from plan capabilities

plan.config mirrors what the plan grants, so a comparison table can be generated rather than hand-written:
Check the global feature flag as well as the plan, so a capability the administrator turned off platform-wide doesn’t appear in your table.
Signed-out visitors are sent to sign in first, and return to checkout afterwards, so you don’t need to branch on user.

Credit pricing pages

Because the model registry and credit rates are exposed to templates, you can build a calculator that shows what credits buy: