Attempt tracking
Outcome, language, time taken, and what went wrong — recorded for every attempt, not just the one that passed.
About
Leetly is a study tracker for interview preparation. It exists because a solved-problem count says almost nothing about whether you could solve it again next week.
Most trackers answer one question: how many problems have you done. That number goes up whether or not you understood anything, and it keeps going up long after the understanding has faded.
The useful questions are harder. Which problems did you struggle with? What kind of mistake do you keep making? Which of the things you solved two months ago could you still solve today? Leetly records enough detail to answer those.
Outcome, language, time taken, and what went wrong — recorded for every attempt, not just the one that passed.
Solved problems get a review schedule based on the FSRS algorithm, so revision is timed rather than guessed.
Streaks, solve rates by difficulty, and an activity heatmap covering the last year of practice.
Categorised failures — off-by-one, wrong pattern, missed edge case — aggregated so the recurring ones surface.
Group problems by topic, company, or study goal, and see how much of each list is genuinely finished.
Markdown notes with syntax highlighting, attached to the problem they belong to.
A Spring Boot API backed by PostgreSQL with schema managed by Flyway, and a Next.js frontend using the App Router. Authentication is token-based: short-lived access tokens held in memory, with rotating refresh tokens. Both applications are containerised and deployed to a VPS behind Caddy.
Every resource is scoped to its owner at the query level rather than checked after loading, so there is no unscoped query available to call by mistake.
Built by Atin Roy. The source is on GitHub.