Introducing Tattoy

Posted on June 13, 2025 by Tom Buckley-Houston

Today I release Tattoy to the world. Formally, it's a text-based terminal compositor, but I'll let the homepage go into more details about what that actually entails. Here I'd like to talk a little about what inspired me to make it and what the experience of developing was like.

Inspiration #

I've long loved the simplicity of terminals. I'd spend all my time in them if I could. Indeed some of you may know that I even tried to bring modern web browsing to the TTY with Browsh. There I learned about the power of the UTF8 half-block trick that renders rudimentary graphics with 2 pixels per cell using nothing but ▀ and ▄. And ever since I've wanted to see how creative I could get with it. Within the constraints of pure text how far can we take the humble CLI user interface?

I do certainly have some grand plans for Tattoy, like incubating protocols that can deprecate ANSI code and maybe even supporting multiplexing a la tmux. But at its heart Tattoy is more like an art project. It's something I wanted to just enjoy working on, without the pressures of it being useful. I'm lucky enough to have some savings so looking for work isn't a priority at the moment. It's important to remember that I do actually like the process of doing hard things with computers. Money and deadlines tend to suck the life out of that passion if we're not careful.

Twitch Streaming #

I wrote the first tentative commits back in April 2024, but didn't seriously start work on it until after Christmas the same year. At that point I was also interested in committing myself to streaming all my development live on Twitch. It's turned out that I have streamed almost everyday since then, and I plan to continue to do so.

There is a huge amount that I want to share about the advantages of streaming programming. But I'll save that for another post probably on my own website tombh.co.uk. In short though I would argue that you are most likely handicapped by not streaming. I've come to find it a superpower. If nothing else it stops me scrolling on Reddit, Hacker News, Youtube, etc. I sit up straight, I write my journal morning and evening. I stop for breaks and keep my concentration to within sane, work-like hours. Those things are both literally good and also metaphors for the goodness that I bring to the lines of code themselves. Even if nobody is watching (which is not infrequent!), I could watch myself in the video archives. It's my own standards that I want to live up to and by "going live" I'm predisposing myself more to remember my goals and values.

Here's a clip of me in the moments just after I first got automatic text contrast working.

Thanks #

So I would like to thank all the people that have stopped by and even stuck around for the highs and lows of the deep work involved in Tattoy. The website may look exciting today, but there were weeks and months when I wasn't sure it would all be even possible. Programming is mostly a slog of failed attempts and endless bug hunts. But having fellow geeks around to chat about all things consequential and inconsequential has been a joy.

Fair travels to Tattoy and all who sail in her.