~/adnan-ahmed
Adnan Ahmed
All projects

VimAscend

Planned

An interactive system for going from zero to real fluency in Vim, Neovim, LazyVim, and Kickstart.nvim.

Next.jsSupabaseTypeScript
Repository not public yet

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 →