Architecture: Westside Landing Site (Public Routes)

arch-landing-site Doc

architecture active westside arch:landing-site

Architecture: Westside Landing Site

The westside landing site is the unauthenticated, marketing-facing SvelteKit surface of westside-app. It exists to answer "what is this program?" for a prospective family, surface contact paths, and point known users at sign-in. Everything requiring identity lives under the (app) group and is out of scope for this note.

Overview

  • Repo: forgejo_admin/westside-app
  • Framework: SvelteKit 2.x with @sveltejs/adapter-static — prerendered HTML, absolute-root asset paths, no backend runtime
  • Route group: src/routes/(public)/ — covered by src/routes/(public)/+layout.svelte
  • Audience: unauthenticated visitors — prospective families, sponsors, staff recruits
  • User story: story:WS-S26 (Prospect tier, project-westside-basketball)

Route Group

Route File Purpose
<code>/</code> <code>(public)/+page.svelte</code> Home — program pitch + CTA
<code>/about</code> <code>(public)/about/+page.svelte</code> Program overview + coach contact
<code>/staff</code> <code>(public)/staff/+page.svelte</code> Coach bios + sponsorship CTA
<code>/teams</code> <code>(public)/teams/+page.svelte</code> Kings/Queens rosters + inquiry
<code>/tryouts</code> <code>(public)/tryouts/+page.svelte</code> Tryout dates + contact
<code>/schedule</code> <code>(public)/schedule/+page.svelte</code> Practice + tournament calendar
<code>/gear</code> <code>(public)/gear/+page.svelte</code> Merch info + jersey CTA
<code>/sponsors</code> <code>(public)/sponsors/+page.svelte</code> Sponsor list + inquiry
The shared (public)/+layout.svelte renders the site footer with the canonical contact address and phone — it's the single surface every public page inherits.

Deploy Path

Zero backend. The adapter-static bundle is served as plain files behind the Tailscale funnel. No cert-manager — Tailscale terminates TLS. Authenticated traffic eventually hits (app) routes, which call basketball-api; that's a separate concern documented under arch-jersey-intake and siblings.

References

  • project-westside-basketball — project page, user stories
  • reference_westside_email.md — canonical contact email spelling (westsidebasktball@gmail.com)
  • arch-jersey-intake — sibling arch note (authenticated jersey flows)
  • deployment-lessons — Tailscale funnel + Harbor + ArgoCD gotchas
  • feedback_landing_vs_app.md — public (landing) vs. authenticated (app) split
  • convention-architecture-ids — arch label convention