Patterns as the primary structure
Problems are reached through the pattern they teach — the map stays navigable at 501 entries because the pattern index, not a flat list, is the front door.
THE CLOCKWORK CABINET
The Trail Marker · room 09 of 11
Time to get better at DSA. One pattern at a time.
CodeTrail is a structured DSA practice platform: 501 curated problems organised across 20 patterns, filter sets for the well-known lists, a server-graded quiz bank, multi-language cheat sheets and the analytics to keep a streak honest — installable as a PWA.
It turns 'get better at DSA' from a bookmark folder into a marked trail: pick a pattern, work its problems, and watch the map fill in.
the counters — repository v2.0.0 figures
the older profile-README counts (97 patterns / 580+ problems) are stale and are not shown
DSA practice fails by drift: hundreds of problems with no map between them, progress tracked in a text file, and interview lists (Blind 75, NeetCode) living in someone else's spreadsheet.
The platform problem is to make the path explicit — patterns as first-class structure, practice as measured progress, and the reference material (cheat sheets, quizzes) part of the same loop rather than a separate tab.
The problem collection is organised by pattern — 501 problems across 20 patterns — with one-click filter sets for Blind 75, NeetCode 150 and NeetCode 250 so standard interview lists are trails, not chores.
A 270-question quiz bank grades server-side, keeping answers and scoring out of the client; 18 cheat sheets cover Python, Java, C++ and JavaScript.
Analytics, achievements and streaks record the practice loop, and the whole platform installs as a PWA with offline support (Serwist) so practice survives a bad connection.
Problems are reached through the pattern they teach — the map stays navigable at 501 entries because the pattern index, not a flat list, is the front door.
Grading happens on the server (Supabase with row-level security, behind Clerk auth) — the client never holds the answer key.
Serwist powers the PWA shell so an unstable connection interrupts a session, not the platform.
Counts come from the repository's v2.0.0 README — the newer source — superseding the older GitHub profile figures.
every number here carries its source — my resume's figures and the synthetic-fixture results are marked for what they are