Build a SvelteKit Blog

Build Wavelength Daily with TypeScript, SvelteKit, Open Props, Supabase Auth, Postgres row-level security, profile media, owned post CRUD, search, and Cloudflare Pages.

  • Difficulty Intermediate
  • Parts 12
  • Stack TypeScript, SvelteKit, Open Props + scoped CSS, Supabase Auth via @supabase/ssr, Supabase Postgres + RLS

How this project works

Wavelength Daily is an original publishing app built in 12 cumulative, independently runnable snapshots.

The course starts with routes and scoped styling, then adds a local Supabase database, SSR authentication, profile media, ownership-enforced posts, pagination, search, password recovery, and Cloudflare Pages deployment.

Snapshots 4–12 seed ada@example.com and grace@example.com; both use password123. These accounts are local teaching data only.

Run npx supabase start inside a database snapshot, copy its printed public values into .env, and use npx supabase db reset to replay migration and seed files.

Open GitHub repo →

Parts in order

Work through the parts in sequence. Each lesson explains the ideas, then points you to a runnable GitHub snapshot.