Blog
Sep 29, 2026
Debugging race condition that was actually a lifetime bug
A random QThread crash looked like a race condition, but turned out to be an orphaned editor buffer and delayed garbage collection.
Sep 16, 2026
Next steps for navigation
Rethinking editor navigation around lightweight histories, on-demand search, and local structure.
Sep 11, 2026
Redesigning the title bar
Moving from a custom title bar to native AppKit, and figuring out what to do with tabs along the way.
Sep 8, 2026
Vim bindings for Koi Editor?
Why I'm reluctant to add Vim bindings to Koi Editor, and what I might build instead.
Sep 3, 2026
Using smaller models for fast code completion
I've been using the same 1.5B model for local code completion for about a year.
Jul 30, 2026
Lexer design in Koi
Koi uses small handwritten lexers instead of syntax definitions or syntax trees. This provides direct control over highlighting and folding, with very little work at runtime.