Can pbmate.ro be vibe coded?
Curriculum-mapped maths practice for Romanian pupils, with the national exams as the deadline.
The trainer is not the product. An agent will hand you a clean multiple-choice runner with LaTeX, hints and a mastery chart in one evening, and then you will be staring at an empty database. What is actually being sold here is roughly 5.000 published problems mapped chapter by chapter to the Romanian programa, the official Bacalaureat and Evaluare Națională papers rebuilt as interactive tests with every marking scheme re-derived rather than trusted, and four role surfaces (pupil, parent, teacher, plus an iOS app) grown over more than 2.300 commits. A language model will cheerfully generate a thousand Romanian maths problems for you, and a worrying share will carry a wrong answer key, a hint that leaks the answer, or a chapter label that does not match the programa. You will not find out which until a child gets one wrong for the wrong reason. Check a hundred by hand and the price stops looking mysterious. Build the trainer if you enjoy building; the honest free move is the ministry's own paper archive, not a rebuild.
Jump to the build brief ↓Legacy-calibrated assessment
Checked Aug 2026
What you pay today, before any DIY hosting
high editorial confidence
Tracked separately from the pricing check
Buildability by layer
Screens, forms, and focused interactions
The repeatable job the product performs
Availability and legality of required data
Uptime, queues, support, and maintenance
Security, compliance, and user confidence
The achievable core
- A local trainer for maths problems you author yourself: pick a chapter, work through five problems, reveal graded hints, then the full solution, and watch a per chapter mastery bar move.
- Sequence lessons, check understanding, and track progress for one learner.
- A responsive interface with real empty, loading, success, and error states.
The parts a prompt cannot buy
- roughly 5.000 vetted problems, each tied to a chapter of the Romanian programa and a difficulty tier
- official exam papers rebuilt as interactive tests, with each marking scheme re-derived point by point
- three progressive hints and a written solution on every problem, not just the correct letter
- the parent and teacher surfaces, assigned homework, and the iOS app
- Licensed content and distribution rights are not reproducible with an LLM.
- The last 20 percent is sync, migration fidelity, speed, and edge cases.
Build, switch, or keep paying
Narrower, with trade-offs
A local trainer for maths problems you author yourself: pick a chapter, work through five problems, reveal graded hints, then the full solution, and watch a per chapter mastery bar move.
Use the build brief ↓3 checked options
- Khan Academy România ↗Full maths courses, exercises and hints in Romanian, free forever. It teaches the subject well and ignores the exam calendar entirely.
- Subiecte și bareme oficiale ↗Every exam paper and marking scheme the ministry publishes, free, and the single best reason not to pay anyone for PDFs. It serves the current session only, so the archive is whatever you saved or the Wayback Machine kept.
- Manuale digitale ↗The state's digital textbooks with their built-in exercises, free for every grade. Coverage is the textbook rather than exam drilling, and the interactive parts have aged the way state web projects age.
Recommended
People pay because the maths is the easy part. A Romanian parent is buying problems that are correct, at the right difficulty, in the right chapter of the right programa, with a solution that reads like a teacher wrote it, and papers that behave like the real exam. That is an editorial job with no shortcut: every item has to be solved by a human before it can be trusted with a child's grade. The subscription buys somebody else doing that work, and continuing to do it when the exam format moves.
Visit pbmate.ro ↗Why people still pay
People pay because the maths is the easy part. A Romanian parent is buying problems that are correct, at the right difficulty, in the right chapter of the right programa, with a solution that reads like a teacher wrote it, and papers that behave like the real exam. That is an editorial job with no shortcut: every item has to be solved by a human before it can be trusted with a child's grade. The subscription buys somebody else doing that work, and continuing to do it when the exam format moves.
Licensed content and distribution rights are not reproducible with an LLM.
The last 20 percent is sync, migration fidelity, speed, and edge cases.
The brief
Context, requirements, acceptance criteria, non-goals, and the full production standard — as Markdown, ready for any coding agent.
Build brief — a focused alternative to pbmate.ro
Context
pbmate.ro — Curriculum-mapped maths practice for Romanian pupils, with the national exams as the deadline. It currently costs $17.57/mo.
The trainer is not the product. An agent will hand you a clean multiple-choice runner with LaTeX, hints and a mastery chart in one evening, and then you will be staring at an empty database. What is actually being sold here is roughly 5.000 published problems mapped chapter by chapter to the Romanian programa, the official Bacalaureat and Evaluare Națională papers rebuilt as interactive tests with every marking scheme re-derived rather than trusted, and four role surfaces (pupil, parent, teacher, plus an iOS app) grown over more than 2.300 commits. A language model will cheerfully generate a thousand Romanian maths problems for you, and a worrying share will carry a wrong answer key, a hint that leaks the answer, or a chapter label that does not match the programa. You will not find out which until a child gets one wrong for the wrong reason. Check a hundred by hand and the price stops looking mysterious. Build the trainer if you enjoy building; the honest free move is the ministry's own paper archive, not a rebuild.
This brief describes a focused, single-operator replacement for the part of pbmate.ro that is genuinely reproducible. It is deliberately narrower than the product it replaces, and it says so in writing. Build the useful core; do not pretend to have rebuilt the rest.
What you are building
A local trainer for maths problems you author yourself: pick a chapter, work through five problems, reveal graded hints, then the full solution, and watch a per chapter mastery bar move.
Sequence lessons, check understanding, and track progress for one learner.
A responsive interface with real empty, loading, success, and error states.
Requirements
Functional
Node 22.
Your own problem set, or the public Bacalaureat and Evaluare Națională PDFs.
Data and integrations
Optional Anthropic or OpenAI API key for draft extraction from those PDFs.
Somebody willing to solve every problem before trusting its answer key.
Each of these needs a real account, credential, or quota. Set them up before writing feature code.
Non-functional
Accessibility: semantic markup, labelled controls, visible focus, and reduced-motion support.
Security: server-side secrets, validated input, and no credentials in the client bundle.
Reliability: retries with backoff on external calls, and a clear failure state when a provider is down.
Portability: the operator can export their data and leave without losing it.
Implementation brief
Build a personal Romanian maths practice trainer in an empty folder.
Stack: Next.js 15 (App Router), TypeScript, SQLite via better-sqlite3, Tailwind, KaTeX. Do not offer alternatives.
Problems live as Markdown files in content/problems, one per file, with frontmatter: id, chapter, grade, difficulty 1 to 5, statement, four options, correctIndex, hints (up to three, ordered nudge -> method -> setup), solution.
Write npm run import to validate every file into SQLite, failing loudly on a missing correctIndex, an out-of-range difficulty, an unknown chapter, or a hint containing the final answer as a substring.
Ship exactly three seed problems as format examples plus a chapters.json for one grade, taken from the official programa. Generate no problems yourself.
Practice loop: pick a chapter, get five problems ordered easy to hard, answer, then reveal hints one at a time before the solution.
Record every attempt (problem id, chosen option, correct, seconds, hints used) in SQLite.
Show a per-chapter mastery bar from the last twenty attempts on that chapter and a weak-chapters list. No streaks, no badges, no daily guilt.
Add npm run drill that serves only problems previously answered wrong.
Render maths with KaTeX inline and display, and verify the seed problems render before you finish.
Handle Romanian diacritics correctly in the files and the UI.
Add npm run export writing all attempts to CSV, and keep every byte on the local disk.
If ANTHROPIC_API_KEY is set in .env, add an optional npm run draft -- paper.pdf that turns an exam PDF into draft Markdown in content/drafts, never imported until a human moves the file, and print a warning that the answer key is unverified.
Secrets in .env, ship .env.example, commit neither.
Test the importer validation rules and one end-to-end five-problem session.
Write a README covering setup, the problem file format, and how to add a chapter.
Leave out: accounts, payments, hosting, telemetry, parent and teacher views, a mobile app, and anything claiming to grade a real exam.
Finish by running the import and the tests, then print the exact commands used.
Delivery standard
Inspect the repository first, then write a short implementation plan before writing code.
Deliver the smallest complete end-to-end workflow first; every primary control must work against persisted data.
Use real validation and storage; never substitute fake dashboards, decorative controls, hard-coded success states, or mock integrations.
Include responsive layouts plus genuine empty, loading, success, validation, and failure states.
Keep secrets server-side in environment variables, provide .env.example, and never commit credentials or user data.
Add structured logs around every external call and return actionable errors without leaking sensitive details.
Write unit tests for the core logic and one automated test of the main user journey.
Finish with a README covering setup, architecture, data location, backups, tests, deployment, and known limitations.
Acceptance criteria
A clean install starts the app using only the README and .env.example.
The primary journey works from first visit through saved result, reload, edit, export, and deletion where applicable.
Invalid input, missing configuration, provider failure, and an empty database each have a usable state.
The interface works at 390px and 1440px, is keyboard navigable, and shows visible focus on every control.
Tests, type checking, linting, and a production build all pass with no ignored failures.
No part of the interface implies a live integration, security guarantee, or scale capability that was not actually built and verified.
Non-goals
Do not build these, and do not claim to have replaced them:
Roughly 5.000 vetted problems, each tied to a chapter of the Romanian programa and a difficulty tier.
Official exam papers rebuilt as interactive tests, with each marking scheme re-derived point by point.
Three progressive hints and a written solution on every problem, not just the correct letter.
The parent and teacher surfaces, assigned homework, and the iOS app.
Somebody maintaining all of it when the programa or the exam format shifts.
What you still own after launch
Secure credentials, rotate secrets, and handle provider rate limits.
Run migrations, backups, restores, and dependency updates.
Test the critical journey after every model, API, or hosting change.
Monitor failures and fix the edge cases a first prompt will miss.
Risk
Manageable. A personal version is realistic if you test the critical journey and keep reliable backups.
Editorial confidence in this assessment: high. No reviewed project implementation is linked yet.
Existing alternatives
Before building, compare these checked options:
Khan Academy România — Full maths courses, exercises and hints in Romanian, free forever. It teaches the subject well and ignores the exam calendar entirely
Subiecte și bareme oficiale — Every exam paper and marking scheme the ministry publishes, free, and the single best reason not to pay anyone for PDFs. It serves the current session only, so the archive is whatever you saved or the Wayback Machine kept
Manuale digitale — The state's digital textbooks with their built-in exercises, free for every grade. Coverage is the textbook rather than exam drilling, and the interactive parts have aged the way state web projects age
Prior art
Working open-source software you can read, fork, or borrow from before starting:
KaTeX — Renders the maths in every statement fast enough that a practice loop does not feel like a PDF
FSRS — The scheduler to borrow if you want spaced review instead of a random shuffle
Moodle question bank — A schema for questions, answers and per attempt grading that has survived twenty years of schools, if you would rather not invent one
Generated by Can It Be Vibe Coded? · Full report: https://www.canitbevibecoded.com/pbmate
You still own the product
- Secure credentials, rotate secrets, and handle provider rate limits.
- Run migrations, backups, restores, and dependency updates.
- Test the critical journey after every model, API, or hosting change.
- Monitor failures and fix the edge cases a first prompt will miss.
Projects built from this idea
No reviewed implementation has been linked for pbmate.ro yet. A submission is evidence for review, not automatic proof that the whole product was replaced.
Built a version of pbmate.ro?Submit the project as evidence for this report.
Open-source prior art
Renders the maths in every statement fast enough that a practice loop does not feel like a PDF.
View project ↗FSRSThe scheduler to borrow if you want spaced review instead of a random shuffle.
View project ↗Moodle question bankA schema for questions, answers and per attempt grading that has survived twenty years of schools, if you would rather not invent one.
View project ↗Before you start
Can pbmate.ro be vibe coded?
Not faithfully. The trainer is not the product. An agent will hand you a clean multiple-choice runner with LaTeX, hints and a mastery chart in one evening, and then you will be staring at an empty database. What is actually being sold here is roughly 5.000 published problems mapped chapter by chapter to the Romanian programa, the official Bacalaureat and Evaluare Națională papers rebuilt as interactive tests with every marking scheme re-derived rather than trusted, and four role surfaces (pupil, parent, teacher, plus an iOS app) grown over more than 2.300 commits. A language model will cheerfully generate a thousand Romanian maths problems for you, and a worrying share will carry a wrong answer key, a hint that leaks the answer, or a chapter label that does not match the programa. You will not find out which until a child gets one wrong for the wrong reason. Check a hundred by hand and the price stops looking mysterious. Build the trainer if you enjoy building; the honest free move is the ministry's own paper archive, not a rebuild.
What can an AI coding agent reproduce from pbmate.ro?
A local trainer for maths problems you author yourself: pick a chapter, work through five problems, reveal graded hints, then the full solution, and watch a per chapter mastery bar move. Sequence lessons, check understanding, and track progress for one learner. A responsive interface with real empty, loading, success, and error states.
What will a DIY pbmate.ro replacement still be missing?
roughly 5.000 vetted problems, each tied to a chapter of the Romanian programa and a difficulty tier; official exam papers rebuilt as interactive tests, with each marking scheme re-derived point by point; three progressive hints and a written solution on every problem, not just the correct letter; the parent and teacher surfaces, assigned homework, and the iOS app; Licensed content and distribution rights are not reproducible with an LLM.; The last 20 percent is sync, migration fidelity, speed, and edge cases.
What do I still own after building a pbmate.ro alternative?
Secure credentials, rotate secrets, and handle provider rate limits. Run migrations, backups, restores, and dependency updates. Test the critical journey after every model, API, or hosting change. Monitor failures and fix the edge cases a first prompt will miss.