B Blengi docs

Platform admin

Editable pricing page copy

Every piece of copy on the public /pricing page (besides the plan + add-on data which lives in plans / plan_addons) is editable from Settings โ†’ System โ†’ Pricing page copy. The form sits right under Marketing homepage in /settings/system and groups the 28 editable fields into five tabs (Hero / Plans & toggle / Lifetime & add-on / Comparison & FAQ / CTA & footer). Use it to rewrite the hero title, billing toggle labels, lifetime & add-on section copy, comparison table heading, FAQ heading, bottom CTA, and the Enterprise footer line.

Saved values are deep-merged over the shipped defaults at render time, so you can leave the fields you don't want to touch blank โ€” only the changed keys are persisted and surfaced to the visitor.

What you can edit

FieldWhere it appears
Hero eyebrow The small UPPERCASE pill above the headline ("Pricing" by default).
Hero title prefix / accent / suffix "Simple, conversation-based pricing" โ€” three editable parts so you can rewrite either side of the italic accent.
Hero subtitle The paragraph under the title.
Billing toggle labels "Monthly" / "Yearly" โ€” useful if you sell yearly only and want to relabel as "Annual" / "Monthly".
Save badge template "Save :percent% with yearly" โ€” use :percent as the placeholder.
Currency label The "Currency" label next to the currency dropdown.
Lifetime section Eyebrow + title + subtitle for the LTD section. Only renders when at least one lifetime plan is published.
Comparison table Heading + subheading + the "Feature" column label.
FAQ heading "Frequently asked" by default.
CTA section Bottom black band with title + subtitle + button label + button href. Customise the href to point at /register?trial=14 etc.
Enterprise footer "Need higher limits or a self-hosted license? Talk to us about Enterprise" โ€” both halves editable.
Add-on section Eyebrow + footnote shown under the addon card on the pricing page.

How the values are stored

A single JSON blob on app_settings.pricing_page_content. The App\\Support\\MarketingPricingContent resolver deep-merges it over the shipped defaults at every render so a partial customisation never breaks the page โ€” any key you didn't touch falls back to the default.

Translation: every string is still wrapped in the t() helper on the React side, so the translation system can localise your custom strings via the standard locale JSON files.

Themes other than the default

The Aurora and Prism marketing themes also consume the same content prop and render the editor's customisations natively, including the addon_section card. Switch themes from Settings โ†’ System โ†’ Marketing โ†’ Theme; edited pricing copy survives the theme switch.

See also: Plans & Stripe sync for plan-level pricing data and One-time add-ons for the add-on catalog.