Inspiration
High-quality education should not be reserved for students who happen to discover the right way to learn.
I took a course in cognitive psychology and became fascinated by the gap between what learning research tells us and what students actually experience. We know that retrieval, spacing, interleaving, meaningful relationships, feedback, and confidence calibration matter. Yet most students are never taught how to use them. They are told to study harder, reread their notes, complete more problems, and hope their intuition points them in the right direction.
When that works, we often call it talent. When it fails, we blame motivation. In both cases, the learning mechanism stays hidden.
Simple Spark exists to bridge that gap. Its promise is that every student should have access to a superbly managed, high-quality learning process without first becoming an expert in learning science.
What it does
Simple Spark makes high-quality study methods the default behavior of the product.
A learner tells us the exam they are preparing for, their target, and their date. From there, their job is simple: log in and do today's work. Simple Spark decides what should come next, when an idea should be retrieved again, when a prerequisite needs attention, when a gap needs repair, and when the learner needs a broader Diagnostic rather than more practice.
Every route is personal. The system uses the learner's own attempts, confidence, timing, assistance conditions, uncertainty, prerequisites, and exam priorities to target the most important current gap. A correct click is not automatically called mastery. Assisted work is not treated like independent retrieval. Immediate repair is not mistaken for long-term retention.
The learning flow brings these mechanisms together:
- Retrieve important ideas from memory when they are genuinely due.
- Learn with an appropriate source when new understanding is needed.
- Review and Repair a supported gap without inventing one from incomplete evidence.
- Check the repair with a new independent problem.
- Use a separate Diagnostic to measure broadly without turning the measurement into another lesson.
The learner never has to schedule this, calculate it, or understand the machinery. Simple Spark explains why the work was chosen, but manages the complexity for them.
How we built it
We built Simple Spark as a production-shaped learning system rather than a static quiz app. The frontend is React and TypeScript; the backend is Rust with Axum, SQLx, PostgreSQL/TimescaleDB, Supabase Auth, and private Storage.
The database preserves attempts and evidence over time. A deterministic routing policy converts that evidence into an explainable next step. Immutable uploads, resumable sessions, bounded assessment, evidence-aware readiness, retrieval timing, and separate Daily and Diagnostic contracts prevent convenient software states from becoming false learning claims.
For the local SAT demonstration, 3,711 questions are admitted and 260 are release-qualified across the full skill-by-difficulty map. The remaining questions stay coverage-pending instead of being silently treated as ready.
Challenges
The hardest challenge was turning learning principles into product rules without oversimplifying them.
A goal score is not current ability. Completing a session is not learning. A correct answer does not prove sound reasoning. Seeing a solution changes the conditions of later evidence. A failed attempt can reveal a gap, but ambiguous work should remain ambiguous. A system that ignores those distinctions may look intelligent while routing students badly.
We therefore designed Simple Spark around evidence, uncertainty, conditions, and time—not a persuasive mastery percentage. We also kept private content local, isolated every learner, protected original work, and made routing decisions reproducible and inspectable.
Accomplishments
We built the foundation of a personalized learning manager rather than another question bank.
Simple Spark now supports authenticated goals, a qualified SAT cohort, resumable question sessions, answer confidence, immutable photo/PDF work, atomic submission, recoverable processing, bounded assessment, temporal learner evidence, readiness and retrieval state, deterministic ics-v1 routing, a measurement-only Diagnostic, and an approved desktop experience with a clear “Why these questions” explanation.
The most important accomplishment is the loop underneath those capabilities: learner evidence can change readiness, retrieval needs, and the next explained selection while uncertainty remains visible.
What we learned
Personalization is not changing colors, difficulty labels, or question order. Real personalization requires remembering what the learner did, under what conditions, at what level, with what confidence, and how that evidence should affect the next decision.
We also learned that good learning management should feel simple to the learner precisely because the system is handling the difficult distinctions for them. The interface should say, “Here is today's work, and here is why,” while the evidence and scheduling machinery stays dependable in the background.
What's next
Our next step is to validate the complete integrated journey with real learners and study whether the routing improves retention, transfer, calibration, and total study time. We also want to expand the reviewed content graph and qualified question bank without lowering the evidence, privacy, and content-quality standards that make the system trustworthy.
The long-term goal is larger than SAT preparation: make research-informed, personalized learning infrastructure available to every student, regardless of whether they already know how to study.
Built With
- axum
- docker
- openapi
- postgresql
- python
- react
- rust
- sqlx
- supabase
- timescaledb
- tokio
- typescript
- vite
- vitetest
Log in or sign up for Devpost to join the conversation.