Manoj Venkatesun
← All work

Knowt · 2024

Knowt: Designing a streak system that makes students come back every day

Knowt turns notes into quizzes, but users weren't building a daily habit. I designed a streak and rewards system in 4 days, tied into Kai, Knowt's AI assistant, to give students a reason to open the app every morning.

Role
Product Designer, Solo
Timeline
4 Days
Team
Solo. Just me.
Year
2024
8
Screens designed
4 days
Sprint length
Kai
Existing product integrated

The Problem

Knowt does one thing well. You paste in your notes, it spits out flashcards and quizzes, and that part just works.

The problem was everything after. A student finishes a session and there's nothing bringing them back tomorrow. No streak, no sense that they're building toward something. Every session lived on its own, which doesn't make sense for a study app, since studying only works if you keep coming back.

Duolingo cracked this years ago. Their streak is a big reason people open the app daily. Knowt had nothing close to that.

What I set out to do

I had 4 days. The goal: design a streak and rewards system that gives students a reason to open Knowt daily, without turning studying into a game. I also needed to tie it to Kai, Knowt's assistant, so the encouragement felt like it came from the app, not just a number going up.

Duolingo's streak works, but it leans on guilt. Miss a day and you feel punished. I wanted the opposite, something that rewards showing up instead of punishing you for missing it.

Competitor Research

What Duolingo gets right (and what I'd change)

I spent the first half-day pulling apart Duolingo's streak mechanics. Here's what I found:

- A day counter that tracks consecutive days - Milestone celebrations at 7, 30, 100, and 365 days - Streak freezes you can buy to protect a streak when you miss a day

The visual feedback is what makes it work. Finish a lesson, the counter updates with animation. Hit a milestone, you get a celebration screen. The app keeps telling you to keep going.

What I didn't want to copy was the guilt. Duolingo sends aggressive notifications when your streak is about to break. "These reminders seem passive aggressive" is a real user review. The streak freeze exists because people feel bad enough about breaking a streak that Duolingo can charge them to fix it. Effective, but not the relationship I wanted Knowt to have with students.

So the plan was simple: keep the mechanics, counter, milestones, visual progress, but build them around encouragement instead of guilt.

Design Decisions

Dashboard

First question I asked myself: when a student opens Knowt, what should they actually see? The old dashboard just showed your courses. That's it.

So I added three things.

Continue Learning went at the top. Starting is the hardest part of keeping a streak going, so the fastest way back into a course, one tap, needed to be the first thing on screen.

The profile strength ring is a straight lift from LinkedIn's profile bar. Fills up as you study, keep your streak, earn rewards. Seeing it not full yet is the whole trick.

Then there's the search bar, which on its own has nothing to do with streaks. But students who added more than one course tended to stick around longer. Easier search means more courses added, which quietly does the same job as the streak, just from a different door.

Course Detail

Once a student taps into a course, this screen had two jobs. Show progress toward something worth having, and keep the streak visible without making it annoying.

The Knowt Balance bar sits at the top of every course screen. It fills as you finish quizzes and keep your streak alive. Hit a threshold, unlock something, avatar pieces, new themes, streak freezes.

Below that, each quiz card has a fire icon for streak days and a star for finished quizzes. Small stuff, but the page looks different today than it did yesterday because you studied.

Tapping into a subject opens its own page with two tabs, Activity and Category. Activity shows completion, accuracy, and average time. Category is where you browse everything else under that subject without leaving the page.

Taking the Quiz

Progress shows at the top as you go, 0% to 100%, filling in with each answer. One flashcard question at a time, pulled from whatever deck you picked. Answer right and the option turns green, get it wrong and it turns red.

Earning Reward

The reward flow has three steps. Earn, see it grow, claim it.

Finish a quiz or keep your streak alive, and the Knowt Balance bar updates with a small animation. You watch the number go up in real time.

At 50, 100, 250, and 500 points, a reward unlocks. The rewards are cosmetic. Profile badges, streak shields, custom themes.

Personalized Encouragement

I mentioned earlier that I didn't want to copy Duolingo's guilt-driven approach. This is where that decision actually shows up, across two places: push notifications and Kai.

The streak booster notification fires once per day, in the morning. It says something like "You're on a 5-day streak. Keep it going today?" If a student misses a day, the notification doesn't guilt them. It says "Welcome back. Pick up where you left off." No loss framing, no countdown, just an invitation. I designed three notification states: streak active, streak paused, and milestone reached, each with its own tone so students learn to associate the notification with support, not pressure.

Kai carries the same idea into the app itself. When a student opens a chat with Kai, it greets them by name and picks up on where they left off, offering a couple of relevant topics to jump into next. Once a student picks one and makes progress, Kai responds with something that acknowledges the streak directly, without turning it into a scoreboard. I only designed three screens for this, it's a small piece of the overall project, but it mattered because it meant the encouraging tone wasn't limited to a notification banner. It followed the student into the app.

Final Screens

Dashboard screen

The balance sits at the top, next to the notification bell, with the Kai icon and your current number. Below that, Continue Learning shows your last course with a progress bar. The profile avatar in the corner has the strength ring.

Course detail screen

This screen shows the Knowt Balance bar at the top, your streak status, and a list of quizzes with completion marks. Each quiz card shows how many questions it has, your last score, and whether it counts toward today's streak.

Component Library

I built this during the sprint so I wasn't redrawing the same button or card five times.

Quiz answers have four states: default, selected, correct, incorrect. Same component, style changes based on what the user picked. The streak tracker comes in two lengths, 1-day and 7-day, both built off the same base. The weekly goal picker moves through five states, day, time, confirmation, each one reusing the same card shell. Cards, badges, and reward tiles sit on a 4px grid, same corner radius, same spacing.

Results and Impact

8 screens, a component library, a notification framework, and a reward system, all built solo in 4 days.

I didn't run usability testing on this, the timeline didn't allow for it, and as a 4-day design challenge rather than a live product, that wasn't the point of the exercise. Duolingo's own data shows streak features like this drive around half of their daily active usage. If Knowt saw even a fraction of that effect, a streak system would meaningfully move the needle on daily return rate, though that's a hypothesis based on a comparable product, not something I measured myself.

The hiring team responded well to the design during my interview.

What I learned

The biggest trap in a short sprint is trying to design everything. So I kept some things shallow on purpose. Kai's chat is three screens, not a full assistant. The leaderboard tab exists, but I never designed what's inside it. Learn with friends is one banner, not a real social feature.

If I had more time

Learn with friends already has a Connect button on the dashboard, but nothing happens after you tap it. Building out what's behind that, seeing a friend's progress, comparing streaks, is the real version of that feature.

An adaptive difficulty system that adjusts quiz length based on streak length, so longer streaks bring harder questions automatically.

A proper 2-week retention study, to check if the streak actually changes behavior or just adds visual noise.

What I'd do differently

Four days isn't much. I focused on streaks and rewards because that was the brief, but two things kept nagging at me.

First, a tutor booking flow. When a student hits a wall, they shouldn't have to leave the app to find help. Booking a call with a subject expert from inside the course detail page would close that gap.

Second, Kai. Right now it's three screens and one response after you pick a topic. The real version would read what you're actually stuck on, not just point you toward a subject.

Also, the course detail page. It works, but looking at it now it feels packed. I'd want to loosen it up.