About the project

Sova Study

Sova is an AI-native learning platform for K-12 students. It helps a student who is stuck understand the problem and checks their work, but it never hands over the final answer.

I'm building it as an ongoing side project, in parallel with client work, designing and writing the product myself.

This case follows two turns: what parents actually needed from it, and where the AI should stop deciding.

Sova on a laptop and a phone. The web dashboard lists a student's lessons; the phone shows the same lessons in a mobile layout.

Rebuilt the product's AI architecture after testing showed a pure-LLM approach was convincing but educationally unreliable. Curriculum, exercises and mistake diagnosis now run on deterministic logic; AI only explains.

Role
Founder, design and code
Dates
October 2025 to present
Platforms
Web, mobile
Category
Education, AI
Status
Ongoing side build

Sova in action

Real kids, real homework, a voice in five languages

Kids’ real-time talks with the test character.
Sova — Emotional States: a 3 by 3 grid of the test character in nine states: Idle (resting), Happy (delight), Sad (empathy), Thinking (processing), Wink (playful), Sleep (inactive), Upset (frustrated), Mail (message) and Hello (greeting).
9 states that follow the chat’s context.
A child checking real homework: photograph the worksheet, upload, and Sova takes it from there.

Hear Sova

0:00 / 0:11

Sova’s voice in different languages: click a flag to hear Sova’s intro.
  • Sova in costume 1
  • Sova in costume 2
  • Sova in costume 3
  • Sova in costume 4
  • Sova in costume 5
  • Sova in costume 6
  • Sova in costume 7
  • Sova in costume 8
  • Sova in costume 9
  • Sova in costume 10
  • Sova in costume 11
  • Sova in costume 12
From concept to a working beta
5 months
Build awards
2 Antigravity Build Challenge (June 2026), Lovable Hackathon (2026)
Testing earlier prototypes with children
25+ hours
  • Who Students

    Stuck on homework at 7pm. They mostly don’t want to cheat, but an AI that gives the answer is the fastest way to be done.

  • Who Parents

    Want learning and honesty, but can’t re-learn ninth-grade maths. They end up policing, which strains the relationship.

  • What A tutor, not an answer engine

    Explains, practises and checks work. Never gives the final answer.

  • Owned Product, design and code

    Research, UX, visual identity and the front end, as a solo founder.

  • Built with React, Spline, KaTeX

    A voice-enabled 3D avatar, maths rendering and text-to-speech.

  • Tested With students and parents

    A closed alpha on real homework and test preparation, plus earlier prototypes with children.

Part 1 · What parents needed

Parents didn’t want to teach. They wanted to verify.

2–3 nights

a week, one beta-test parent spent just checking whether the homework was right.

I started with two modes: a Guide that explains concepts without giving answers, and a Trainer that turns study material into practice quizzes.

The bet was that help and practice were enough, and that students would move from onboarding into regular study.

Sova's web dashboard, Hello Reyyan, with a create-new-lesson tile and a grid of lessons showing subject, status and progress.
The lesson dashboard from the first version.

A closed alpha with students and parents, on real homework and test preparation, changed that:

  • Worked Exam preparation

    Practice from study material performed well.

  • Missed Daily engagement

    Lower than expected. Most students finished homework without needing help.

  • Saw Parents check, not teach

    They checked whether the work was correct, not where their child struggled.

“I spend 2–3 nights a week just checking if the homework is right. I don’t need a tutor, I need an answer key that explains itself.”
Beta-test parent

The product moved from helping to verifying. The linear flow became a hub with three jobs: Guide, Validator and Trainer.

Decision 1

Never hand over the final answer

Options
Give the answer with a good explanation, as general AI tools do, or explain the approach and stop short of the answer.
Chose
The Guide explains the concept, offers a similar worked example and can quiz the student. It never solves the problem in front of them, and the chat assistant follows the same rule.
Why
Answer engines were teaching students nothing, and parents were policing their use.
Gave up
A slower route to finished homework, and the risk that a frustrated student switches back to a tool that just answers.

Decision 2

Check the reasoning, not just the result

Options
Mark the final answer right or wrong, or read the full working and point to the step that went wrong.
Chose
The Validator: the student photographs handwritten work, Sova reads the steps, and feedback highlights the step where the logic broke down. Checked work is saved to My Work. A child doing this with real homework is shown at the top of the page.
Why
It automates the parent’s nightly check, which is what parents told us they needed.
Gave up
Simplicity. Reading the full working makes handwriting recognition much harder than reading one number.

Decision 3

Ask “Is this what you wrote?” before solving

Options
Trust the recognised text silently and wait for better models, or show what Sova read and let the student confirm.
Chose
Students photograph half a page at a time. Before checking anything, Sova shows what it read and asks “Is this what you wrote?”: confirm, edit or skip.
Why
Models misread messy handwriting (a 5 can look like an S), and solving the wrong problem would destroy trust. I couldn’t fix the model, so I fixed it in the interface.
Gave up
An extra step between the photo and the result on every unclear scan.

Part 2 · Where AI shouldn’t decide

Convincing, but not reliable enough to teach

25+ hours

of testing earlier prototypes with children: Dreamweaver, an AI storyteller, and an emotion-reactive avatar companion.

Testing showed that a pure-LLM approach gave answers that sounded right but were educationally unreliable. For a learning product, convincing is not the same as correct.

Deterministic logic decides

  1. Curriculum alignment
  2. Exercise selection
  3. Mistake diagnosis

AI delivers

  1. Natural-language explanation
Architecture. Who decides what in Sova after the rebuild.

Decision 4

Deterministic logic decides; AI only explains

Options
Let one LLM pick the curriculum, the exercises and the diagnosis, or move those decisions into rules and keep the model for language.
Chose
Curriculum alignment, exercise selection and mistake diagnosis moved into deterministic logic. The AI is limited to natural-language delivery: explaining, in words a student understands.
Why
The pure-LLM version was convincing but educationally unreliable. The decisions that shape learning need to be predictable and checkable.
Gave up
Flexibility. Every subject and exercise type now needs explicit logic instead of a prompt.
My Subjects in Sova for grade 9: Mathematics, Biology, Chemistry, Physics, Geography, History, Music and Latin, each with its number of topics.
Subjects and topics follow the curriculum for the student’s grade.
A biology lesson in Sova with explanations in a chat-style layout and suggested follow-up questions.
The AI explains in plain language; what to practise next is decided by logic.
Sova admin panel, AI Prompt Management: prompts grouped by feature (Global, Workspace Chat, Lesson Generation, Assistant, Translation). A Workspace Chat prompt for the German multiplication curriculum is injected only for Mathematics / Multiplication and runs on its own model, with its cost per million tokens.
Every feature has its own prompt and model; topic prompts apply only where they belong.
Sova admin panel, Avatar Management: categories such as Classic, Occupation, Country and Video Games, with subcategories holding five avatars each and an Add tile.
New costumes are added from the admin panel: categories, subcategories and avatars.

Decision 5

Make the AI’s rules editable, one feature at a time

Options
One global prompt in the code, or a prompt and model per feature, managed from an admin panel.
Chose
An admin panel where every Sova surface (workspace chat, lesson generation, the assistant, translation) has its own prompt and model. Topic-specific instructions are injected only for the topic they belong to, such as the German multiplication curriculum for Mathematics / Multiplication. I can change a prompt or model live and test the result, without a deploy.
Why
Changing how one feature behaves, its tone, model or curriculum, shouldn’t risk the others. Code decides which instructions apply to which topic; the model only follows them.
Gave up
More prompts to maintain and keep consistent with each other.
The experimental character used for testing, before the Sova avatar existed: voice in, spoken answers out.

Decision 6

A companion with a voice, not a chatbot

Options
A plain chat interface, or a character students can talk to and personalise.
Chose
Test the voice use case before building the avatar. The Sova 3D avatar didn’t exist yet, so I tested with an experimental character: kids speak, it answers out loud, and its emotional state follows what the AI is doing: thinking while it processes, happy, sad or upset depending on the reply. The nine states are shown at the top of the page. Sova’s avatar is a voice-enabled 3D character (Spline in React), with text-to-speech and maths rendered with KaTeX.
Why
Earlier prototypes with children, including an emotion-reactive avatar companion, pointed to a friendly, low-pressure character.
Gave up
Illustration and 3D work for every state, which competes with the core product for a team of one.

What I’d do next

Next, I’m building the parent side: a weekly view of what each child checked and where their reasoning keeps breaking, so the 2–3 nights of checking become five minutes of reading.