Stack QuestJoin the beta
Android beta openiOS TestFlight by invite

Learn software development, five minutes a day.

Stack Quest is a phone app that teaches coding, system design and AI the way a language app teaches a language: short daily sessions of exercises you answer, not videos you watch. Runnable coding exercises use JavaScript; other subjects include quizzes and code-reading practice.

Courses
14
Sessions
589length varies
Exercises
8,060
You write
402programs, run on your phone
The Stack Quest learn path for the System design course, showing today's session and unit 1

What it is

Duolingo-style practice for the whole arc of software development.

Content is not the bottleneck; there is more free material than anyone can finish. Habit and retention are. Stack Quest is built for those two.

Practice, not lectures

Short sessions with explanatory feedback. Exercise counts and completion time vary, especially when you retry or write code.

Scheduled so it sticks

What you see today is decided by what you got wrong and when. Reviews come back right before you would forget.

One path, first line of code to AI

From print('hello') to designing a rate limiter to building with LLMs — 14 courses on one continuous path instead of 14 apps.

What you can learn

14 courses. 108 units, 589 sessions.

Languages, the systems you build with them, and the AI on top. Pick one to start; switch any time. Progress is kept per course, and a placement test lets you skip a unit you already know.

How a session works

A short session, at your pace.

These are screenshots from the app, not mockups.

  1. Step 1

    One screen of concept

    Definition, example, takeaway. No lecture, no video. Reading more is one tap away, by choice.

    Stack Quest lesson card for 'How a web request works' with an example and a takeaway
  2. Step 2

    Then it is all practice

    Multiple choice, match the pairs, put the steps in order, estimate the numbers, arrange the code, fill the blank, predict the output, spot the bug — and write real JavaScript that runs on your phone against tests.

    A multiple choice exercise about durable storage in Stack Quest
  3. Step 3

    Wrong answers explain themselves

    Every miss shows why, and the exercise comes back before the session ends. A session only finishes when everything in it is right.

    Stack Quest showing 'Not quite' with an explanation after a wrong answer
  4. Step 4

    Stuck? Take a hint

    A hint on every exercise. Using one affects the skill rating that schedules your review, never whether you can finish.

    A Stack Quest exercise with a hint revealed above the answer choices

9 kinds of exercise, 8,060 of them

A session mixes them, so you are recognising, recalling, predicting and writing rather than clicking the same widget for a month.

  • Multiple choice2,183
  • Predict the output1,756
  • Fill the blank1,068
  • Match the pairs791
  • Arrange the code700
  • Estimate the number526
  • Spot the bug433
  • Write and run code402
  • Put it in order201

You write the code

Real JavaScript, real tests, on your phone.

402 of the exercises are programs you write. They run in a JavaScript engine inside the app and are checked against test cases — the same way your work is checked at work.

It actually executes

Not a quiz about code. Your function is run against inputs, and the failing case is shown to you with what it expected and what it got.

Nothing is graded by an AI

Correctness is deterministic: test cases, answer keys and rubrics decide. JavaScript runs locally; signed-in progress backup can include saved code drafts.

Downloaded exercises run locally

Lessons and JavaScript execution work locally once downloaded. Sync, downloads, purchases and subscription checks need internet; paid offline access requires a valid cached entitlement.

And 15 projects you finish and keep

Each project is a handful of functions written in order, every one building on the last, every one checked by tests. Projects use JavaScript and require a Full Access subscription.

  • Build a worker that retries safely

    Capped backoff, due-time filtering, a retry budget that ends in a dead letter, idempotency, and one testable tick of a worker.

    5 steps · 20 tests · ≈25 min

  • Build a cache that forgets

    Five steps that turn a plain object into a cache with expiry, a size cap and least-recently-used eviction.

    5 steps · 20 tests · ≈25 min

  • Build a rate limiter

    Five steps from a fixed window that leaks bursts to a per-caller token bucket a service could run on.

    5 steps · 20 tests · ≈30 min

  • Build a rollout controller

    Health as a share, batches that bound the blast radius, a canary judged against the running version, and a rollout that stops.

    5 steps · 20 tests · ≈25 min

  • Build a text search index

    Five functions that turn a pile of documents into a search box that ranks what it finds.

    5 steps · 20 tests · ≈30 min

  • Build the retrieval half of RAG

    Five steps that turn a document into a prompt: chunking, an inverted index, scoring, ranking, and a prompt that cites what it used.

    5 steps · 19 tests · ≈25 min

  • Build a commit graph

    Five steps that build the data structure git actually is: commits with parents, reachability, merge-base, and the three kinds of merge.

    5 steps · 20 tests · ≈25 min

  • Build a receipt printer

    Five functions that add up to a receipt you could hand someone.

    5 steps · 20 tests · ≈25 min

  • Build k-nearest neighbours

    Five steps that build a working classifier from distance alone — and the scaling bug that silently ruins it.

    5 steps · 20 tests · ≈25 min

  • Build a word-frequency report

    Raw text to a readable report: deciding what a word is, counting, ranking with repeatable ties, and aligning the columns.

    5 steps · 20 tests · ≈25 min

  • Build a token gate

    An untrusted string to an authorisation decision: shape, a constant-time signature check, expiry, scope, and a refusal that says why.

    5 steps · 20 tests · ≈25 min

  • Build a tiny query engine

    Five steps that turn arrays of objects into WHERE, ORDER BY, GROUP BY and JOIN — and show why a database applies them in that order.

    5 steps · 20 tests · ≈25 min

  • Build a test runner

    Five functions that grow into the runner every testing framework is underneath.

    5 steps · 20 tests · ≈25 min

  • Build a type checker

    What TypeScript does to your code: literal types, operator rules, narrowing a union, checking a call, and walking an expression.

    5 steps · 22 tests · ≈25 min

  • Build an HTTP router

    A raw URL to a response: segments, patterns with parameters, the query string, honest status codes, and 405 instead of 404.

    5 steps · 20 tests · ≈25 min

See what you build

Why it sticks

It remembers what you are forgetting.

Stack Quest tracks 486 individual skills and schedules each one with FSRS, the open-source spaced-repetition algorithm, so a review lands right before you would have forgotten it.

A rating per skill, per session

Again for a first-try miss, Hard when a hint or retry was needed, Good for clean, Easy for clean and fast on a skill already in review.

Due reviews come first

Reviews are interleaved into lesson sessions, and served on their own in Practice when nothing new is due.

Mistakes, one tap away

Everything you missed in the last 30 days, ready to re-practice. Strength shows your estimated chance of recalling each skill right now.

Streaks that measure learning

A daily goal of one to three sessions, a streak with one earned freeze, and XP for real practice, not taps. Byte, the bolt on the icon, keeps count.

Stack Quest practice tab: nothing due right now, practice weakest skills, and fix mistakes

FAQ

Questions people ask before installing.

Start a five-minute habit today.

Start with the free opening units of each course. Later units and projects require Full Access. Android uses Google Play internal testing; iOS uses TestFlight invitations.

Join the beta