Fine, I'll build my own text editor

A software developer shares their technical journey and challenges in building a custom text editor from scratch using web technologies. The post explores the trade-offs between using HTML5 Canvas for rendering and native DOM elements for accessibility and performance.
Why it matters
It highlights the ongoing debate in web development regarding the limitations of browser-based rendering versus the need for accessible, high-performance user interfaces.
Tuesday 1 Sept 2026 Play Synthesised Audio
“They don’t make ’em like Sublime Text anymore” resonated with a lot of folk. Software these days is garbage. That got me thinking; I’m good at building garbage!
VS Code is built upon Monaco Editor which is a <div> soup hellscape. I was late to the VS Code train because for years my Intel inside™ Mac was too slow. That issue was resolved when I bought Apple silicon. If that’s the standard I have a lot of room to make mistakes.
My first experiment renders everything on a <canvas> element.
You can’t tell, but your CPU is doing a lot of work to render that picture at 60–120 frames per second. Lack of interactivity is an obvious problem for a text editor.
I made a list of the “minimum viable” features and implemented them.
This next demo is interactive, click around and type.
Get smarter about the news
Sign up free for a feed built around what you actually care about, Dive Deeper research on any story, and the full text of every article.
Create free accountAlready have an account? Sign in