Back to the reel

KeepUp.

Keep Up is a programming quiz app I designed and built. You pick the technologies you work with, answer a short quiz each day, and anything you get wrong comes back until you get it right. It installs on a phone like a native app and keeps your progress on the device, so a dropped connection does not end the quiz.

Keep Up home screen with streak stats, skill chips, learning paths, and the pixel-art duck beside a React tip
The home screen: streak, your skills, learning paths, and the duck with a tip.
Live app capture
Role
Product design
Full-stack development
Product
Daily quiz · Learning paths
Installable PWA
System
Next.js · React · TypeScript
IndexedDB · MongoDB
Details
Pixel-art mascot
Path map · quiz animation

The duck has three moods.

The duck is a pixel-art sprite sheet wired to the quiz state. On the home screen it sits next to a tip. After you answer, it changes pose for as long as the explanation is on screen.

Idle is the waiting pose; correct and wrong are the two reactions. The sprites on this page are the production sheets, playing at their native 10 frames per second with nearest-neighbor scaling so the pixels stay sharp.

The home-screen pose. A tip sits in the bubble and the duck waits.

The original production sprites, playing here at 10 frames per second.

Fifteen steps per tier.

Skills on the home screen feed the daily quiz. Learning paths are different: a topic you are still learning, taken in order.

A path has four tiers, Easy to Expert, with fifteen steps each. Finishing Easy unlocks Medium. You cannot skip ahead; later steps stay locked. Each step is five short lessons, and each lesson ends with a question.

The screen here is CI/CD & Deployment. Easy covers GitHub Actions, pipelines and getting a green CI run. Later tiers go through Docker, a Hetzner deploy, rollback and custom domains. The other published paths are Playwright, JavaScript, C# and Agentic Engineering.

Keep Up learning path for CI/CD and Deployment: four completed green star nodes, the next step open, later steps locked, Easy selected, 4 of 15
CI/CD Easy, 4 of 15. Green stars are finished; the lock is next.
Four taps build a TypeScript line.
App recording · 11 seconds

Tap the tokens into a line.

Some questions ask you to assemble a line of code. You tap a token and it flies from the pool into the next empty slot.

In this clip the line is let result: Array<string>. The empty hole in the pool marks where the token came from, so the next tap still has a clear target.

The flight is short on purpose. The panel resize and the slide to the next question have their own timing, so a quick run of taps is not waiting on those.

The +1 flies into the count.

After a correct answer, a +1 leaves the Continue button and flies into the daily counter. The counter ticks, then the next question arrives.

The token flight, the counter bump and the slide to the next question are one sequence. The explanation stays on screen until you press Continue.

One answer, then the count moves.
App recording · 8 seconds

Wrong answers come back.

The quiz uses SM-2 with three grades. A wrong answer is due tomorrow. A correct answer that needed retries is marked good. A first-try correct answer is easy and starts on a three-day interval.

Due reviews are picked before unseen questions, and only from the skills you selected. That selection can run against IndexedDB, so a downloaded pool still works if the network drops. Sync to MongoDB happens in the background when a connection is back.

I have no retention study to cite. The next question is either due, new, or locked behind a path step you have not reached yet.

Next up:
Sellphy.

A shop platform: a six-step editor, a dashboard, and storefronts served as static HTML.

Explore Sellphy