Added foreign-key indexes across the database — most dashboards and meal plans now load 2-4x faster.
Server pages run independent Supabase queries in parallel instead of sequentially.
Heavy modals (cook mode, ingredient scanner, share sheet, pricing) are lazy-loaded so the first paint is lighter.
Cached the authenticated profile per request so we stop re-fetching the same data inside one render.
Auth and marketing pages are statically pre-rendered again, restoring CDN caching for first-byte time.
Fixed
Fixed: upgrade button on the trial banner
An invisible overlay on the dashboard was intercepting clicks and routing every tap to the same recipe. Pressing Upgrade now correctly opens the payment flow.