Mathua makes prerequisite mastery part of the product
Mathua withholds the next concept until the learner meets both accuracy and speed requirements for its prerequisites. That is a meaningful choice for someone rebuilding a shaky foundation in mathematics. You don't just choose an exercise and move on after getting it right once. The learning engine maintains progress through a dependency graph and uses that history to decide what should appear next.
The README describes a local-first Go service with a React and Next.js web interface. It includes spaced review, courses and progress sharing for parents or teachers. Those features make it a candidate for a supervised learning routine. They do not establish that its sequencing improves learning, or that every generated problem and accepted answer is correct. Our sandbox measured the repository workflow, which leaves those educational questions open.
What happened when we ran it
Our sandbox installed Mathua commit 04c848d in 36 seconds, recording 76 dependencies, and built it successfully in 68 seconds. The October 24, 2026 run used 3 CPUs and 8 GB RAM. The configured image was golang:1.24-bookworm. An image name is not a toolchain log, so it does not establish the compiler or operating-system version actually used by the commands.
The test step failed with exit 1 after 49 seconds. The lab summary reports 53 passed and 1 failed out of 54. The supplied tail shows successful package results followed by FAIL, but it does not name the failed case or include its diagnostic. There is no basis here for attributing the result to Python, a database or a particular generator. We reached a compiled application and an unresolved failure in the verification step.
The checkout occupied 41.4 MB, with 4,878 files and about 231,734 source lines recorded by the lab. Docker and Compose files were present. None of those observations demonstrates a correct symbolic grader or a complete learner session. Before a family or classroom relies on its progress records, someone should inspect the full failure log and exercise representative questions and answers on the intended deployment.
Speed thresholds can exclude the learner you want to help
The README requires both a consecutive-correct-answer streak and an acceptable average response time for mastery. A learner who solves a problem correctly but slowly can therefore remain below the threshold. That behavior is part of the stated learning design. If your purpose is untimed exploration, proof discussion or open access to advanced topics, the prerequisite and timing policy may be a reason to choose something else.
Accommodated timing and pauses are documented, so it would be unfair to describe the policy as entirely inflexible. Even so, I'd check those controls with the actual learner before adopting the engine. The practical question is whether its progression rules reflect the kind of competence you're trying to teach. Correctness, fluency and confidence need not develop at the same pace, and our source run did not assess that fit.
Some grading still requires Python and SymPy
The README says symbolic, polynomial, expression and complex answers need Python with SymPy. Running without Python limits grading to the pure-Go types. A successful Go build therefore cannot establish that every advertised subject has a working answer checker. Operators who want a Go-only service should treat the grading boundary as a deployment constraint and verify which concepts they intend to serve.
Production configuration also needs attention. The documentation calls for a persistent JWT secret, noting that a randomly generated secret otherwise invalidates tokens on restart. SQLite is the default storage path, with Postgres available for multi-user operation. These are documented options, rather than evidence that our run exercised either a production database or restart behavior. Persist the database and authentication configuration deliberately before collecting progress you want to retain.
Mathua also documents a grading-repair operation that rechecks persisted incorrect attempts and rebuilds affected progress, with a dry-run option. The description says undecidable attempts stay untouched and XP is not rewritten. That is useful operational detail for a learning system: a corrected grader may need to repair historical records as well as judge the next answer. It doesn't establish that such a repair is needed for our unidentified failure.
The MIT code license does not cover every lesson
The README separates the MIT software license from adapted lesson content carrying NonCommercial terms. It identifies OpenStax and Algebrica material under their respective Creative Commons licenses and explicitly says the code license does not extend to that adapted content. If you're considering Mathua as the basis of a paid learning service, that is a reason to resolve content permissions before committing to its curriculum.
For a private evaluator, the same distinction helps set expectations about reuse. Forking the engine and republishing its lessons are different decisions with different stated terms. I'd keep a record of the source and license for material retained in a deployment. This review has not assessed permissions for a particular commercial use, and a successful software build would not answer that question.
Anki suits review, while Kolibri targets offline teaching
Anki is a spaced repetition program. Choose it when reviewing material you select is the main job and you don't need Mathua's enforced mathematical prerequisite graph. That is a narrower alternative for remembering definitions or procedures, rather than evidence of equivalent automatic grading. Kolibri is an offline-first teaching and learning platform. Consider it when offline educational delivery is the primary requirement, instead of a math-specific mastery engine.
GitHub recorded a Mathua push on October 25, 2026. The recent issue and PR list contains work on mastery-check scheduling and learner reports, alongside an open localization proposal. The public release list was empty, but the push and issue activity give no basis for calling the project abandoned. Start with a disposable learner account, verify the grading path for the topics you need, and obtain the missing test diagnostic before entrusting it with a sustained learning record.

