Over the past 21 months I’ve written a code editor from the ground up
I use my own editor as my daily editor, both for code and most other text files. A few observations on the article:<p>&gt; Use it early<p>This was key to me. If you&#x27;re going to wait until you have a perfect editor to use it, you&#x27;re better off spending your time on something else, because it&#x27;ll take a really long time to get there if you ever do.<p>I started working on my editor because I was endlessly tinkering with my emacs config and realised I could write an editor in fewer lines than my config...<p>You need to have a reasonable clear picture of what an MVP looks like to you. But having as a goal to use it early can also drive design.<p>E.g. in my case the first thing I did to enable this was to have the editor serialise all open buffers to JSON and write a dump regularly. If I didn&#x27;t expect to use the editor until it was stable, I might not have. But I came to like being able to start the editor after a reboot and have all of my buffers as they were.<p>I later also moved the buffers into a separate process using DrB (the editor is in Ruby). Combined that made it near impossible to lose changes as DrB makes the backend near crash proof (exceptions are forwarded to the client), and the checkpoints&#x2F;dumps deals with the last little piece of risk.<p>The day that was finished, I switched 90%+ of my editing to my own editor even though it was still buggy and lacking in functionality.<p>As a result I as of writing have 2199 open buffers, some dating back a couple of years. I kill some now and again - e.g. if I open a particularly large file, or something sensitive - but by default I just stopped caring as the dump is only 66MB.<p>&gt; If you’re using the code editor to write itself, the most pressing bugs and missing features will make themselves apparent to you for free.<p>This is a big deal with using my own editor. I have a &quot;roadmap&quot; of things I like the idea of, but &quot;what is painful  right now&quot; trumps all of it, because I don&#x27;t have any users (nor do I want any - I&#x27;m slowly splitting functionality into gems that I&#x27;m happy to deal with issues with, but the github copy of the repo of the editor itself is wildly out of date and heavily dependent on my personal setup, so likely won&#x27;t even run for anyone else)<p>It also means I can follow the &quot;refactor when it seems like a good idea&quot; advice without caring if the editor is half broken for a while. I have bugs in there that are clear regressions that I&#x27;m ok with working around but that I&#x27;d never allow myself to commit code for if I was writing this with the expectation of other people using it.