Skip to content

The Learning Path

A leveled, ordered path from "I've never written code" to shipping real software. Don't skip levels — each one assumes the last. Each level has a goal, the exact tech it introduces, and one free resource to learn it.

If a term is unfamiliar, check the glossary.

Level 0 — Fundamentals

Goal: understand the ground everything else stands on, and get comfortable in the terminal.

Learn: how the web works (browser → server → response), the terminal / CLI basics, Git + GitHub, HTML & CSS, and JavaScript moving into TypeScript.

Resource: The Odin Project — Foundations (free, covers the web, command line, Git, HTML/CSS, and JavaScript end to end).

Level 1 — Ship something

Goal: get a real, live URL on the internet as fast as possible. Nothing motivates like a thing that exists.

Learn: Next.js + Tailwind CSS, then deploy to Cloudflare.

Resource: Next.js Learn course (free, official, builds and deploys a real app).

Level 2 — Make it real

Goal: turn a static page into an app with accounts and saved data.

Learn: Supabase for the database, Clerk for auth, environment variables for your keys, and Zod for forms and validation.

Resource: Supabase — Build a Next.js app (free quickstart connecting a database to your app).

Level 3 — Make it good

Goal: adopt the habits that separate a toy from real software. This is the Universal Toolbelt becoming muscle memory.

Learn: Biome as your formatter + linter, type-check discipline (stop ignoring the red squiggles), Vitest basics, and Sentry for error monitoring.

Resource: Vitest — Getting Started (free, the on-ramp to writing your first tests).

Level 4 — Specialize

Goal: branch toward what you actually want to build. By now the core transfers, so each path is mostly new APIs, not a new language.

Pick a branch:

  • MobileReact Native via Expo — reuse your TypeScript and React on phones.
  • AI appsAI SDK + Claude — add a model call to a web app.
  • BackendHono — build a standalone API when Next.js routes aren't enough.

Resource: open the domain page for your chosen branch and build one small project end to end.