Frontend Technologies

SvelteKit + Svelte 5

What: The consumer web app (client/web-app) — SvelteKit 2 on Svelte 5 with TypeScript, built by Vite, deployed with the static adapter as a single-page app.

Why: Svelte compiles components to minimal JavaScript instead of shipping a framework runtime, which matters for the product's defining moment: a first-time scanner on a phone, in a store, on whatever signal they have (ASR-2). The static adapter means no Node server in the service fleet — the SPA is plain files behind the gateway, calling /api/v1. The current app serves the consumer scan, product, Compare, Fridge, Health Profile, and mock-auth routes.

Tailwind CSS

What: Utility-first CSS framework, with clsx and tailwind-merge for conditional class composition and lucide-svelte for icons.

Why: Styling lives in the component markup, so there is no parallel CSS structure to keep in sync — the right trade-off for a solo-maintained UI that changes every cycle. A small shared class layer in src/app.css standardizes common buttons, cards, icon actions, and inputs without introducing a component-library dependency.