AUTH4D-47 public pricing page
The public site (apps/site) publishes /pricing/. It is a static page and adds no API endpoints,
Worker routes or bindings.
Data source
The page renders listPlans() from packages/billing/src/catalog.ts at build time through
apps/site/src/lib/plans.ts. Prices are integer minor units formatted in ZAR by formatMoney from
packages/email/src/currency.ts. Changing a price or limit in the catalog changes the page on the
next build; the site holds no copy of these values.
Each plan card carries data-plan-id, data-amount-minor and data-currency attributes for tests.
Links
- The primary navigation links to
/pricing/on every page. - The page’s sign-up action links to the console origin (
https://app.auth4.dev). Plan selection and payment happen in the console and API; the site never sends a plan or price anywhere. /docs/limitations/links to the page.
Checks
apps/site/src/checks/check-site.mjs allows pricing phrases only on /pricing/ and the generated
API reference pages, and requires one ZAR price per plan card. tests/e2e/auth4d-47.pricing.spec.ts
compares the rendered page with the catalog at 1280 px and 360 px.
Source: docs/api-spec/auth4d-47.md