How asendia/salmonfit works
Salmon Fit is a restaurant website whose main customer-facing purpose is to present a browsable food menu, with a separate status-history view for delivery listings. Menu content is paired with thumbnail and detail imagery; the README documents editing menu CSV and images, but the generation script is excluded as build tooling. The status page filters and paginates history from an external API. Some route implementations were not sampled, so their internal connections are intentionally omitted.
Main entry points: +page.svelte Status history · menuItems.ts Menu enrichment · Header.svelte Header · Social.svelte Social links
Components 19
Site shell
- App layout
src/routes/+layout.svelte - Home page
src/routes/+page.svelte
Food menu
- Food detail
src/routes/food/[slug]/+page.svelte - Menu data
src/lib/data/menu.json - Menu enrichment
src/lib/menuItems.ts - Thumbnail images
src/lib/menuThumbnailPhotoMap.ts - Detail images
src/lib/menuDetailPhotoMap.ts - Slug helper
src/lib/url.ts
Listing status
- Status history
src/routes/status/+page.svelte - Status API
- Listing name
src/routes/status/ListingName.svelte - Date formatting
src/lib/date.ts
Shared interface
- Header
src/lib/components/Header.svelte - Social links
src/lib/components/Social.svelte - Theme switcher
src/lib/components/ThemeSwitcher.svelte - Modal
src/lib/components/Modal.svelte - Footer
src/lib/components/Footer.svelte - Fonts
src/lib/components/Fonts.svelte
Other components
- Visitor
Connections 16
- Visitor → Home page: opens
- App layout → Fonts: renders
src/routes/+layout.svelte - Menu enrichment → Menu data: loads
src/lib/menuItems.ts - Menu enrichment → Thumbnail images: attaches thumbnails
src/lib/menuItems.ts - Menu enrichment → Detail images: attaches photos
src/lib/menuItems.ts - Menu enrichment → Slug helper: creates keys
src/lib/menuItems.ts - Status history → Status API: fetches history
src/routes/status/+page.svelte - Status history → Date formatting: formats dates
src/routes/status/+page.svelte - Status history → Header: renders
src/routes/status/+page.svelte - Status history → Modal: renders
src/routes/status/+page.svelte - Status history → Footer: renders
src/routes/status/+page.svelte - Status history → Listing name: renders
src/routes/status/+page.svelte - Header → Social links: renders
src/lib/components/Header.svelte - Header → Theme switcher: renders
src/lib/components/Header.svelte - Social links → Modal: renders
src/lib/components/Social.svelte - Social links → Status API: fetches history
src/lib/components/Social.svelte