Routing

View saved

Goal

This snapshot advances Wavelength Daily by teaching you to add static and dynamic filesystem routes.

Each numbered folder is a complete app. Run it independently and compare adjacent snapshots to isolate the new responsibility.

Prerequisites

Use Node.js 20 or newer, npm, and a terminal. Basic TypeScript, HTML, and CSS familiarity will help.

The development server uses port 5173. Database snapshots also need Docker and the Supabase CLI.

  • Node.js and npm
  • A code editor
  • Docker from part 4 onward

Concepts

Folders under src/routes become URLs; bracketed folders capture dynamic parameters.

SvelteKit keeps route UI, server loading, and form actions close together while preserving a clear browser/server boundary.

Walkthrough

Add about, feed, and story routes, then return a SvelteKit 404 for an unknown slug.

Trace the example from request to rendered page, then inspect the complete matching snapshot for types, validation, and failure handling.

export const load = ({ params }) => ({ slug: params.slug });

Run and verify

Enter 02-Routing, install dependencies, and start the app. Supabase stages must start the local stack and copy the printed anon key into .env.

Open http://localhost:5173 and keep the terminal visible so browser actions can be matched to server errors.

git clone https://github.com/michaeldunga1/fcc-sveltekit-blog.git
cd fcc-sveltekit-blog/02-Routing
npm install
npm run dev

Troubleshooting

A route mismatch usually comes from folder naming or placing a server file at the wrong level.

A missing package usually means npm install ran in another snapshot. After changing environment variables, restart the SvelteKit process.

  • Read the first error first
  • Check the current snapshot path
  • Never commit .env or node_modules

Try this

Add a contact route and a custom missing-story message.

Test one happy path and one invalid or unauthorized path before moving on.

  • Make one focused change
  • Verify it in the browser
  • Compare with the next snapshot after it works

Next: Layout and UI

Comments

One comment per signed-in account. Comments are saved with this page’s URL.