Guides
Surfaces
Landing
The marketing site: a landing page, about, contact, pricing, brand and the legal pages.The landing surface is the marketing site. It is the surface that owns /,
and it requires no slices: every page is rendered from content files in the
repository, so it runs with no environment at all.
It is usually the first surface named, next to whatever the site markets:
--surfaces landing,dashboard, say. Without it, another surface's
rootRedirect decides where / lands.
Last updated November 1, 2026- / — hero, features, elements, customization, testimonials, FAQ.
- /about — the story, benefits and team.
- /contact — contact cards.
- /pricing — plans, testimonials and the FAQ.
- /brand — brand assets and guidelines.
- /terms-of-use, /privacy-policy — the legal pages.
- /products/landing, /products/dashboard — product pages for the template itself.
- src/content/legal/*.mdx — the terms and the privacy policy.
- src/content/about/about.js — /about.
- src/content/pricing/pricing.js — the plans on /pricing.
- src/content/brand/brand.js — /brand.
- src/content/misc/faq.js — the FAQ on / and /pricing.
- src/content/misc/testimonials.js — testimonials on / and /pricing.
- src/content/misc/navigation.tsx — the header's mega menu, mobile menu and promo card.
- Signed in (in demo mode, a browser that has opened the dashboard before): a logo splash, then the dashboard. The landing page stays open to them at /home, which canonicalizes back to /.
- Everyone else, search engines included: the landing page at /. On /home they get a permanent redirect to /, so the content has exactly one indexable URL. Both routes read the session, so they render per request and are never cached.
- The page itself. src/app/(landing)/home-content.tsx is a list of sections from src/app/(landing)/components. Reorder, remove or add sections there.
- Pricing. The plans on /pricing are static content in pricing.js, and their buttons link to /auth?state=signup. They are not read from src/resources/plans.json, so with the billing slice keep the two in step by hand.
- The banner and footer. Banner.tsx and Footer.tsx hold their text and links directly; some footer links are # placeholders.
Edit this page on GitHub