For a while I wanted to learn more about Kubernetes, but I don’t always have the time to read documentation or watch YouTube videos. In the past, I really liked the way I studied for my AWS certification — using a simple flashcard app that served me relevant questions and answers, which helped me learn a lot about AWS, even topics I hadn’t encountered before. I was looking for something similar for Kubernetes, but couldn’t find it. And in today’s AI era, why not build something of your own?
Gnoseed
That’s how Gnoseed was born — the name comes from the Greek gnósis (γνῶσις — knowledge) + seed — a seed of knowledge that grows through repetition. A fitting name for self-learning, right?
Gnoseed is a flashcard quiz app with spaced repetition that runs entirely in your browser. No backend, no accounts, no subscriptions.
Why build another flashcard app?
The existing tools I tried had a common pattern — they rely on self-assessment. After seeing the answer, you click “Easy”, “Hard”, or “Again”. The problem is that humans are terrible at rating themselves objectively. Some days you’re generous, other days you’re too critical, and the spaced repetition schedule drifts from reality.
I wanted an app that:
- evaluates answers automatically — no subjective self-rating
- works offline without any backend or cloud dependency
- keeps all progress locally in the browser
- makes it dead simple to add new quiz content

How Gnoseed works
The core flow is straightforward. You pick a topic, answer multiple-choice questions, and the app schedules the next review automatically based on how well you did.
Automatic quality scoring
This is the key differentiator. Instead of asking “how hard was that?”, Gnoseed measures two things — correctness and response time:
- Wrong answer → quality 1 (show again soon)
- Correct but slow (>10s) → quality 3 (you know it, but it’s not solid)
- Correct in 4–10s → quality 4 (good recall)
- Correct and fast (<4s) → quality 5 (you’ve nailed it)
This maps to the spaced repetition algorithm, which calculates when to show the card again. Cards you struggle with come back sooner, cards you know well get pushed further out.

Gnoseed ships with two algorithms you can switch between in settings — SM-2 (the classic SuperMemo algorithm, simple and battle-tested) and FSRS (Free Spaced Repetition Scheduler, a modern algorithm with optimized parameters for better retention). Both use the same auto-quality scoring, so switching is seamless.
Local-first with IndexedDB
All your progress — review history, scheduling data, streaks — is stored in IndexedDB via Dexie.js. There’s no server to talk to, no data to sync, no latency. Open the app, and your progress is right there.
The quizzes themselves are currently bundled as static JSON files, but I’m planning to move them into a SQL database for better persistence and content management.
Tech stack
| Layer | Technology |
|---|---|
| Framework | Nuxt 4 (SPA mode, SSR disabled) |
| UI | Tailwind CSS 4 + DaisyUI 5 |
| Local storage | IndexedDB via Dexie.js |
| Algorithm | SM-2 / FSRS with auto-quality scoring |
| Tests | Vitest + happy-dom |
| Hosting | AWS S3 + CloudFront |
Going with Nuxt 4 in SPA mode was a deliberate choice — there’s no content to index by search engines (it’s a personal learning tool), so server-side rendering would just add complexity. The entire app builds to static assets deployed on AWS S3 with CloudFront as CDN.
DaisyUI 5 on top of Tailwind CSS 4 gave me a solid component library with built-in dark mode support. The app ships with light and dark themes that you can toggle.
What I learned along the way
Nuxt 4 in SPA mode works surprisingly well. The developer experience is great — file-based routing, auto-imports, and the composables pattern keep the codebase clean. The only gotcha is making sure IndexedDB operations don’t run during any SSR phase, but with ssr: false that’s a non-issue.
DaisyUI 5 was a significant upgrade from v4. The component API is cleaner, and the new color system integrates better with Tailwind CSS 4’s design token approach.
Spaced repetition algorithms are elegant in their simplicity. SM-2 is just a few lines of code, and even FSRS — while more sophisticated — is surprisingly compact. The real challenge is building a good UX around them. Showing the right number of cards per session, mixing new and review cards, and making the feedback loop feel natural took more iteration than the algorithms themselves.
What’s next
Gnoseed is already usable for my own learning — it works as a PWA for a native-like experience on mobile, and each session ends with a summary showing accuracy, correct count, and average response time. A few things I still want to add:
- More quiz topics and content
- Learning trends and long-term progress tracking

