Architecture: Westside Landing Site (Public Routes)
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 bysrc/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 storiesreference_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 gotchasfeedback_landing_vs_app.md— public (landing) vs. authenticated (app) splitconvention-architecture-ids— arch label convention