Marketing Site — Behavior
Hosting
- Output mode:
server(set inapps/marketing/astro.config.mjs). Pages render at request time on Vercel / Railway / Node. - Adapter:
@astrojs/vercelwhenVERCELenv is set,@astrojs/node(standalone) otherwise. - Allowed hosts: configured at deploy time; Astro proxies any subdomain of
fitkit.fit. - Sitemap: generated via
@astrojs/sitemapintegration at build time.
Routing
| Path | File | Purpose |
|---|---|---|
/ | src/pages/index.astro | Hebrew landing page (default locale). |
/en | src/pages/en/index.astro | English landing page. |
/ru | src/pages/ru/index.astro | Russian landing page. |
/waitlist | src/pages/waitlist.astro | Standalone waitlist intake. |
/privacy-policy | src/pages/privacy-policy.astro | Privacy policy. |
/terms-of-use | src/pages/terms-of-use.astro | Terms of use. |
/cookie-policy | src/pages/cookie-policy.astro | Cookie disclosure. |
/acceptable-use | src/pages/acceptable-use.astro | AUP. |
/fitness-waiver | src/pages/fitness-waiver.astro | Liability waiver (linked from membership signup). |
/accessibility-statement | src/pages/accessibility-statement.astro | Accessibility 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 thelocaleprop.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/enand/ru. - Direction is set per layout — Hebrew renders
dir="rtl", English/Russian renderdir="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.tomllives 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).