Rolagzza 2026-10-05: Admitere Drept: real exam simulator screen from the product landing asset

Admitere Drept is an exam-prep app for exactly one test: the admission exam for the Faculty of Law at the West University of Timișoara (UVT). Not law school admissions in general, not Romanian university entrance broadly — one faculty, one exam. It's live on the App Store and Google Play, and the bet behind it is that going this narrow is a feature, not a limitation.

The problem it solves is the fear of the unknown. A high-schooler applying to Drept UVT knows the exam exists, knows it's a 45-question multiple-choice (grilă) test covering vocabulary, analogical reasoning, and inductive reasoning — and has almost no way to rehearse it under real conditions. Admitere Drept lets them sit the exam as many times as they want: real countdown timer, the same question structure, an admis/respins verdict at the end, and an automatic computation of the final admission average (50% from the Baccalaureate, 50% from the test). The tagline is honest about the whole value prop: Simulează examenul. Calculează-ți șansele. Simulate the exam. Calculate your odds.

Why one exam is the whole point

The total addressable market here is brutally small: one annual cohort of teenagers who chose one specific faculty in one city. That sounds like a reason not to build it. I think it's the opposite. Because the audience is so specific, every feature can be exact instead of generic. The timer matches the real exam. The question categories match the real syllabus. The average calculator uses the actual 50/50 weighting UVT publishes. There's no "configure your exam type" wizard, no abstraction layer to cover twelve universities I'd model badly. The narrowness is what makes the product feel like it was made for you, because it was. I've written more about this deliberate strategy in why I build for tiny, specific audiences — Admitere Drept is the cleanest example of it.

The flip side is that you can't grow this product by widening it without losing what makes it good. The honest answer is that it's one entry in a portfolio, not a company. It earns its keep by being the best tool for its one job.

What's actually in it

The core loop is the simulation: 45 questions, a real countdown, then a pass/fail status and your computed average. Around that loop sit the things that turn a quiz into a study tool:

  • Per-category progress stats, so you can see whether vocabulary or inductive reasoning is dragging you down.
  • Full test history with comparison and filters, so improvement is visible across attempts.
  • Detailed per-question explanations, plus a way to report an error in a question.

Monetization is freemium. The free tier is usable but ad-supported (AdMob). Pro is a one-time 19.99 Lei in-app purchase — roughly four euros — that unlocks unlimited tests, the full explanations, and removes ads. On a market this size, the pricing isn't really about revenue optimization; it's a low-friction way to let the students who are serious about the exam clear the ads and study without limits.

Three codebases, one backend

The interesting engineering decision is that "the app" is actually three separate codebases coordinated through a single Firebase project.

The mobile app is Flutter/Dart, with iOS and Android shipping and desktop/web scaffolds in the tree. State is handled with Provider. Auth is Google and Apple Sign-In. Ads are google_mobile_ads, purchases are in_app_purchase. This is the hand-built part — the piece students actually touch, where the timer behavior and exam feel have to be right. Flutter is doing the same job here that it does in my pet-care app; I've written up the realities of shipping one Flutter codebase across platforms separately.

The landing page is Astro 5 + Tailwind, deployed on Netlify with Netlify Forms handling contact, at admiteredreptuvt.ro. Astro because a marketing page should be static HTML that loads instantly and ranks well — there's no reason to ship a SPA to sell an app.

The admin console is a Vite + React 18 + TypeScript app with shadcn/ui and TanStack Query, talking to the same Firebase. This is where I do question CRUD and CSV import (the question bank is the actual product, so editing it has to be painless), user management, reports triage, the analytics dashboard, an audit log, and Pro management. I generated the first version of this console with Lovable and then iterated on it. That pairing — a tool-generated back office next to a hand-built mobile app — is a pattern I keep using: spend the careful hours on the surface the user sees, accept "good enough and fast" on the internal tooling.

Firebase ties them together: Auth, Firestore for the question bank and user data, Cloud Functions for the logic that shouldn't live on the client. One backend, three front-ends with very different priorities.

The stack

  • App: Flutter / Dart (iOS + Android live; desktop/web scaffolds), Provider, Google & Apple Sign-In, google_mobile_ads, in_app_purchase.
  • Landing: Astro 5 + Tailwind 3, Netlify + Netlify Forms.
  • Admin: Vite + React 18 + TypeScript + shadcn/ui + TanStack Query (initial build via Lovable).
  • Backend: Firebase — Auth, Firestore, Cloud Functions.
  • Distribution: App Store (ID 6761786104) and Google Play (com.rdmsolutions.admiteredrept), currently at v1.0.16.

Where it's at, and what's next

It's live. Both stores, IAP and ads wired, the landing page up at its own domain, the admin console running the question bank. That's the part I can state as fact.

What I deliberately won't state as fact: the landing page carries some adoption and admission-rate numbers, and those are marketing copy I haven't independently verified. I'd rather tell you the architecture is solid than quote a stat I can't stand behind. The thing I genuinely don't have yet is rigorous outcome data — whether students who drill on the simulator actually score better on the real exam. That's the metric that would tell me the product works, and it's the hardest one to get.

The realistic next steps are unglamorous and exactly what a niche product needs: keep the question bank fresh and accurate (the CSV import flow exists precisely so this stays cheap), tighten the explanations, and watch the one window each year when the cohort actually shows up. The admission calendar is the product's heartbeat.

If you're curious how this fits alongside everything else I'm shipping, it's one of 11 products I'm building as a solo founder. And if you want the short version of all of them, the projects page is the map.

flutterfirebaseastroreactfreemiumniche
Share this article