Projects

Ride-a-Vim - Interactive Neovim Learning Platform

image
February 1, 2026
Tech stack
Next.js
Bun
Socket.io
Linux
Ride-a-Vim is a personal project I built to make learning Neovim more practical, repeatable, and feedback-driven. Vim has been part of my workflow for a long time because of my close connection to Linux systems, both professionally and personally. I enjoy working in Linux because it gives me direct control over my environment, but I also know that mastering modal editing requires consistent practice. I believe learning is easiest when you can do the thing repeatedly, see your mistakes corrected, and track your progress over time. Ride-a-Vim was built around that belief. Instead of reading about motions, operators, and editing patterns, the app gives you a way to practice them directly and keep improving through repetition. The frontend is built with Next.js. The backend uses Bun and creates a temporary file that is watched for changes, allowing the app to keep up with edits as they happen. Sockets are used to keep the connection active in both directions, so the browser and backend can stay synchronized while the user works through exercises. Because the project is designed as a personal learning tool, all progress data is stored in localStorage. No database is needed.
  • Interactive Neovim learning workflow
  • Repeated practice for building muscle memory
  • Mistake correction and progress tracking
  • Temporary file creation and file watching through the Bun backend
  • Bidirectional socket communication
  • Local-first persistence with localStorage
  • Next.js for the frontend
  • Bun for the backend runtime
  • File watching against temporary exercise files
  • Sockets for live two-way synchronization
  • localStorage for progress persistence
Ride-a-Vim turns learning Neovim into an active feedback loop: practice, correct mistakes, repeat, and improve. It reflects the way I prefer to learn technical skills: by doing the work directly in an environment that rewards consistency.