Case study · Web app · EdTech
Estudiantino
A spaced repetition study app, from idea to launch, as technology partners.
Visit the site ↗
- 931
- questions in Legal Theory, the first subject enabled
- 34
- Law subjects (FCJS-UNL) in the curriculum
- 3
- apps on a single backend: students, team and landing
- −80%
- in fixed infrastructure costs
- Model
- Joint product, with Pipa Code as technology partner
- Location
- Santa Fe, Argentina
- Start
- September 2026
- Services
- Product development · Installable web app (PWA) · Admin panel · Online payments · Cloud infrastructure · AI content
- Technologies
- Expo
- React Native Web
- React 19
- TypeScript
- Next.js 16
- Astro 7
- Tailwind CSS 4
- Supabase (PostgreSQL)
- ts-fsrs
- TanStack Query
- SQLite
- Mercado Pago
- Resend
- Cloudflare Pages
- Cloudflare Workers
- OpenNext
- Python
- Claude
- GitHub Actions
The project
Tino (estudiantino.com.ar) is a spaced repetition study app for degrees with a lot to memorize. It starts with Law at the Faculty of Legal and Social Sciences of the Universidad Nacional del Litoral: every day it puts together a review with questions from the subject and shows them again right before the student would forget them.
It is a joint product. Pipa Code is the technology partner and handles it end to end: design, development, infrastructure and operations.
The challenge
- Reliable content
- In Law, a badly written question does more harm than none. Every question had to cite its source, with the article or page, and go through human review before being published.
- Reaching every phone
- Many students use iPhones. Publishing on the app stores meant a yearly account, reviews and 15 to 30% fees on every sale.
- Charging in Argentina
- No subscription: each subject is unlocked with a single, permanent payment, using the payment method students already use.
- Costs before revenue
- Launching without a fixed cost that would grow with usage before the first sale.
What we built
- Student app
- A mobile-first web app installed from the browser, without going through the stores. It is built with Expo and react-native-web, so the same code can power a native app later. Progress is stored on the device with SQLite and synced with the account.
- Spaced repetition
- The daily review is scheduled with FSRS, a modern memory algorithm. The app shows the streak, mastery by unit, exam readiness and topics to reinforce.
- Team panel
- Next.js with reviewer and admin roles: content upload and review, students, revenue and retention reports, and prices and promotions editable without touching code.
- Landing and blog
- A static Astro site, with a page for each enabled subject and structured data so every subject and degree shows up on Google.
Fast and offline
- Only what's needed
- Opening the app downloads no questions: today's review, mastery and readiness are computed on the phone from saved progress. When studying, a Postgres function returns only the due questions and the day's new ones, in curriculum order and respecting each account's permissions. A session went from downloading the whole subject, over 3,000 questions in Argentine Institutional History, to between 20 and 120.
- Server-side search
- The question list is filtered and paginated in the database, 50 at a time, with accent- and case-insensitive search. Each question's status lives on the device and is sent as a list of ids.
- Instant loading
- While data arrives, each screen shows its shape in gray instead of a spinner. The last thing seen stays stored on the device: reopening the app shows it instantly and refreshes it in the background.
- Offline mode
- When online, the app saves the questions for the next 3 days of each subject in advance. Students can study on the bus or without data: answers stay on the device and upload on their own when the connection comes back.
AI content and human review
Questions come out of a process with clear steps. First, the text is extracted from the material, with OCR on scanned pages, and split by article or by page. Then Claude generates multiple choice, true or false and open-ended questions, each with the sentence that backs it. An automatic check confirms the quote appears verbatim in the source and, finally, a person approves, edits or rejects each question from the panel.
AI is used only once, when the material is loaded. While students study there is no AI: they self-assess open-ended questions against the reference answer. That way costs don't grow with usage.
Payments and security
- Mercado Pago Checkout Pro
- A single payment per subject, with packs that give credits to use on any subject of the degree.
- Server-side validation
- The webhook runs in an Edge Function: it verifies the signature, checks the payment with the Mercado Pago API and only then grants the subject. A repeated notification doesn't grant it twice and a refunded payment revokes it.
- One price everywhere
- The app and the landing read prices from the database, so they show exactly what Mercado Pago charges.
- Permissions in the database
- Access is defined with row-level security (RLS) policies and roles in Postgres, not on the client.
Infrastructure
The product started on Vercel. For the launch we were going to need the Pro plan, billed per member and with uncapped usage charges, and the free plan doesn't allow commercial use. Before launch we moved everything to Cloudflare: the app and the landing on Pages and the panel on Workers with OpenNext, with a preview for every change against a test database. Fixed costs dropped by 80% right at the stage where every dollar counts.
How we work
We are a small team working with branches and pull requests. Every change gets its own preview and CI runs type checks, lint and tests: Vitest for the shared logic, pgTAP for the database and Python tests for the content pipeline. Migrations go to the test database first and only then to production.
Conclusion
Tino shows how we work when we partner on a product: architecture decisions made for the business (web instead of app stores, one-time payments instead of subscriptions, AI at load time rather than study time) and infrastructure that starts with almost no fixed cost and is ready to grow.
Have a product idea and looking for a technology partner? Let's talk →