VimAscend
PlannedAn interactive system for going from zero to real fluency in Vim, Neovim, LazyVim, and Kickstart.nvim.
The problem
Most Vim material is either a cheat sheet — fine for reference, useless for building muscle memory — or a wall of prose — fine for understanding, useless for practice. Getting genuinely fluent in Vim/Neovim, and the ecosystem around it (LazyVim, Kickstart.nvim), is a motor-skill problem as much as a knowledge problem. It needs something that watches what you actually type and tells you when you're fighting the editor instead of using it.
The plan
An interactive practice system: real keystroke capture inside a practice sandbox, a set of graduated exercises (motions → operators → text objects → macros → LSP/Treesitter-aware editing), and a visualizer that shows what tree-sitter is actually parsing your buffer into — so "why did that text object select that range" stops being a mystery.
Why Next.js + Supabase
This is a frontend-heavy problem — keystroke capture, a live practice sandbox, tree-sitter visualizations, progress animations — with comparatively light backend needs, so Next.js carrying most of the weight makes sense. Supabase over Firebase specifically because the curriculum data is relational by nature: modules → lessons → exercises → prerequisites → user progress is a graph of foreign keys and joins that a relational database expresses directly, and that Firebase's document model would fight.
Status
Scoped and reasoned through, not yet started. First milestone once picked up: the keystroke-capture practice sandbox for a single exercise type (motions), since grading, progress tracking, and the visualizer all depend on that loop working first.
Next up
Waqt →