I'd stopped reviewing the basics, so I built a small site to practice them

Hi Devs 👋 This is my first post here!
I use AI tools every day for coding (as the workplace keeps asking for faster and better results every day!), and somewhere along the way I stopped reviewing the basics 😅 The things they ask you in interviews, the ones you're supposed to just know.
So I made Repaso, a free site to practice for software interviews, in English and Spanish. "Repaso" means review in Spanish, which is all this is 📚 It has 897 questions across 17 topics. You don't need an account and there are no ads. You open it and the first question is already there 🚀
https://repaso.babylonace.dev/
📦 Five boxes
Progress uses five boxes, Leitner style. A right answer moves a question up one box. A miss sends it back to box 1. Wait times per box: same day, 1, 3, 7 and 16 days. Misses come back the same day for you to review.
"I don't know" is its own answer. You see the explanation and it doesn't count as a miss 🙌
There's also a random mode, a misses-only mode and a timed exam (30, 60 or 90 seconds per question) ⏱️
🔒 Local by default
Your progress is saved in your browser, and the site works offline after the first visit thanks to a service worker. You can sign in with Google or GitHub to use it on another device, but nothing depends on that, and nothing is sent anywhere unless you sign in. A test checks that ✅ There's also a strict Content-Security-Policy, and no third-party scripts, fonts or styles.
🛠️ How it's built
I built it with Claude Code, then ran a separate review pass. I still use Claude Code every day to look for things to improve. The questions and explanations are AI-assisted too.
It's plain HTML, CSS and JavaScript modules, no framework. package.json has no dependencies at all; the browser tests use Playwright, installed separately. One small Node script builds the site and writes a static page for every question and topic, plus a sitemap, so search engines can read it without running any script. Deploys go through GitHub Actions only after the unit and browser tests pass.
Each question has a stable id, and the Spanish version lives in a separate file matched by that id. Another test makes sure a translation keeps every code span and the same line structure, so code never gets translated by accident.
💡 The hardest part
Figuring out what people want the second they land. For me that meant opening straight on a question, with nothing to set up first. Without that, it's easy to build something much more complicated than it needs to be.
🙋 Want to help?
The content is plain JSON under CC BY 4.0 and the code is MIT. If you spot something to improve, every question has a "Suggest a question or fix" link. And if an interviewer asked you something that isn't there, I'd love to add it 🎉
Code and content: https://github.com/babylonace/repaso
