Public marketing experience
Public marketing experience
What this area does
The public-facing half of the app is a full marketing site, not just a landing page. It includes product positioning, use-case storytelling, resources, company pages, pricing, integrations, careers, contact, legal, blog content, and an embedded in-app documentation area.
Shell and layout
PublicLayout is the shared public shell. It owns:
- the marketing navigation,
- footer,
- auth modal opener,
- marketing chatbot widget,
- outlet context for child routes.
LandingPage is the canonical home page under that shell.
Route families
The public route graph in App.jsx covers:
- home and product landing content,
- platform pages,
- solutions and use-case pages,
- partner and industry pages,
- resources pages and case studies,
- pricing,
- integrations,
- company pages,
- careers,
- contact,
- legal pages,
- blog content,
- the in-app documentation site.
App.jsx also includes several marketing stub routes so every navigation target resolves to a real page or a real branded placeholder.
Major content systems
Home and landing pages
src/components/home/ contains the hero, capability, how-it-works, infrastructure, integrations, FAQ, and CTA sections. These components build the primary top-of-funnel experience.
Platform and solutions
src/components/platform/ and src/components/solutions/ provide the product- and use-case-specific storytelling pages.
Resources and case studies
src/components/resources/ contains case studies, FAQs, and professional services pages.
Company, careers, contact, and legal
These pages live in the corresponding component folders and are all mounted under the public shell.
Invariants
- Public pages should preserve the marketing shell so auth entry points and chatbot behavior remain available.
- Marketing content should not depend on workspace-only providers or admin-only state.
- Stubbed marketing routes should remain on-brand and should be preserved if navigation changes introduce new destinations.
Evidence-backed tests
Public-page behavior is mostly covered through routing and end-to-end navigation tests in e2e/tests/workflow/*.spec.js, especially the navigation and preflight workflows.
Navigation guidance
If you are changing the public site, update the route map in App.jsx first, then the corresponding page family, and finally the relevant Playwright workflow if navigation or page identity changes.