Documentation

Frontends

Marketing site, web app and admin panel structure.

The three frontends are separate deployments that share configuration and design tokens but never import each other's code.

Marketing site

Next.js App Router, server-rendered, localized in English, Spanish and Portuguese. Routes live under src/app/[locale], and the reusable product sections under src/product.

SEO is handled at the framework level: robots.ts, sitemap.ts and a generated llms.txt sit at the root of src/app, and every page emits canonical, hreflang and Open Graph tags from generateMetadata. Structured data comes from src/components/structured-data.tsx.

Each blog post is also served as raw markdown at /blog/<slug>.md, which is what AI crawlers prefer to read.

Web app and admin panel

Both are Vite + React single-page apps. They authenticate against the same API and read the same config/ files, so a plan added to pricing.json shows up in both without a code change.

Adding a page

Create the route under src/app/[locale], export generateMetadata, and add the path to the staticPaths array in src/app/sitemap.ts. Text goes in src/product/messages/*.json, and the language guard rejects Spanish or Portuguese strings written directly into components.

ConfigurationAPI & database