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

Marketing Site

The public-facing FitKit marketing surface that lives at the apex domain (e.g. fitkit.fit). Distinct from per-org minisites, which use the same Astro toolchain to render per-tenant landing pages.

What

apps/marketing is an Astro project (server-output, deployable to Vercel via @astrojs/vercel or to Railway via @astrojs/node). It serves the FitKit waitlist landing page, the cookie/privacy/terms/AUP legal pages, the fitness liability waiver, and the accessibility statement.

Why

  • Independent codebase from the dashboard (apps/web) so marketing iterations don’t ship dashboard bundles.
  • Astro for static-first rendering — fast LCP and trivial CDN caching.
  • Localized — Hebrew (/), English (/en), Russian (/ru) — handled by src/i18n plus locale-specific page folders.

Who

  • Visitors — prospective gym owners landing from search / partner referrals.
  • Compliance reviewers — legal pages are deep-linked from the dashboard footer and from membership signup flows.

Persona impact

PersonaImpact
Gym ownerFirst touchpoint with FitKit before the trial. Drives waitlist conversions and answers core “is this for me” questions.
MemberLands here when following legal links from the dashboard or from emailed invitations.
Internal teamHosts canonical privacy / terms copy referenced by Stripe-style payment flows for legal compliance.

Capabilities

  • Localized landing page (/, /en, /ru) — Hebrew is the default to match the primary launch geography.
  • Standalone waitlist form (waitlist.astro) — posts to the FitKit waitlist intake (held in the API leads pipeline).
  • Static legal corpus: privacy-policy.astro, terms-of-use.astro, cookie-policy.astro, acceptable-use.astro, fitness-waiver.astro, accessibility-statement.astro.
  • Lightweight animation hooks under src/animations/ (CSS-driven, no runtime JS framework).
  • minisites (apps/minisites) — shares the Astro stack but renders per-org marketing sites at custom hosts.
  • webhooks — Clerk handles auth on dashboard, marketing is unauthenticated.
  • leads-crm — waitlist submissions land in the leads pipeline via the API.

Status

Shipped. Lightweight ongoing maintenance — legal copy refresh as policies change, occasional A/B experiments on the hero.

Gaps

  • No CMS — copy edits require a deploy. Acceptable for a small static surface; revisit if marketing cadence increases.
  • No analytics on the waitlist funnel beyond PostHog page views. A conversion rate dashboard would unblock landing-page experiments.
  • No structured data / SEO schema beyond Astro’s default sitemap integration.