Skip to Content
Living documentation — last reviewed 2026-05-28
FeaturesMarketing SiteMarketing Site — Behavior

Marketing Site — Behavior

Hosting

  • Output mode: server (set in apps/marketing/astro.config.mjs). Pages render at request time on Vercel / Railway / Node.
  • Adapter: @astrojs/vercel when VERCEL env is set, @astrojs/node (standalone) otherwise.
  • Allowed hosts: configured at deploy time; Astro proxies any subdomain of fitkit.fit.
  • Sitemap: generated via @astrojs/sitemap integration at build time.

Routing

PathFilePurpose
/src/pages/index.astroHebrew landing page (default locale).
/ensrc/pages/en/index.astroEnglish landing page.
/rusrc/pages/ru/index.astroRussian landing page.
/waitlistsrc/pages/waitlist.astroStandalone waitlist intake.
/privacy-policysrc/pages/privacy-policy.astroPrivacy policy.
/terms-of-usesrc/pages/terms-of-use.astroTerms of use.
/cookie-policysrc/pages/cookie-policy.astroCookie disclosure.
/acceptable-usesrc/pages/acceptable-use.astroAUP.
/fitness-waiversrc/pages/fitness-waiver.astroLiability waiver (linked from membership signup).
/accessibility-statementsrc/pages/accessibility-statement.astroAccessibility statement.

Layouts and shared components

  • src/layouts/LandingLayout.astro — shell for the landing page; injects locale-specific <html lang> and the global CSS bundle.
  • src/components/LandingPage.astro — composes hero, problem, solution, pricing, FAQ, and CTA blocks. Locale-aware via the locale prop.
  • src/animations/ — CSS-only animations triggered by scroll observers in the layout script.

Localization

  • src/i18n/ holds per-locale string maps consumed by Astro pages at build/render time.
  • The default route (/) serves Hebrew; English and Russian live under /en and /ru.
  • Direction is set per layout — Hebrew renders dir="rtl", English/Russian render dir="ltr".

Waitlist intake

The /waitlist page posts directly to the FitKit API leads endpoint. There is no Clerk authentication on this surface — leads land in the public lead pool, tagged as source: 'waitlist'. The frontend uses a hand-rolled fetch (no shared API client) to keep the bundle small.

Caching and performance

  • Pages are server-rendered but mostly static; the Vercel adapter applies CDN edge caching by default.
  • Legal pages are pure markdown-flavoured Astro and serve in <50ms TTFB.
  • No client-side React/Vue — only the Astro runtime + small CSS payload.

Deployment

  • Vercel project autodeploys from main.
  • railway.toml lives in the app root for the alternate Railway deployment (used as a fallback / staging surface).
  • scripts/ holds deploy helpers used by CI (e.g. preview cleanup).