"sam is typing..."

(A Blog by Sam Marshall)

Thoughts on GitHub's online text editor

2021 08 18

GitHub has started transporting you to a browser-based, online text-editor when you press the . key on a repo page. The experience of accidentally hitting a key and having a text editor open aside, I don't think this is a good move for the state of tooling.

I've been using either emacs or vim as my text editor for my whole career, aside from a brief stint with VS Code for "I can't configure TypeScript why won't this work" reasons. While vim and emacs are both pretty old codebases with continuous development, with development starting before I was born in emacs' case, they're both great choices for modern software development and leaps and bounds beyond any browser based editors for a few simple reasons, in my opinion.

Firstly, emacs is local-first. This means when the internet goes down I still have access to all my files. Further than that, I control whether any output my text editor has is uploaded to the internet. My editor can still access the internet when a connection is available, so I can push git commits and pull the titles of websites when pasting links into my notes - but if the internet breaks, I'm still good.

Emacs isn't a website. This is sort of covered by the first point, but I've worked for companies that make websites before. They track everything. They take that data and they figure out how they can adjust it so they can make more money. This is the now-classic "you're the product" idea. I want to own my own data wherever possible, and having google analytics and god knows what else both tracking me and slowing down my editing experience - this doesn't sound fun to me.

I don't need a whole browser running. I can just run emacs by itself. When I'm not working on a website, I do this quite a lot. It's nice to have all that extra memory and CPU overhead, because browsers gobble up an amazing amount of resources.

This doesn't even mention the level of control and configurability over the software itself, which is a whole other thing. You lose control over the ability to build your own software as well as losing control over the experience.

I think that if we really thought about how we use our computers and worked on making more software local-first instead of working on removing local-first software that already exists I think we'd probably end up in a much better place.

But maybe I'm just being grumpy about the whole thing?