matthorn.io theme: pistachio

This homepage is a terminal

· Matt Horn

The homepage of this site is a terminal. You can ls the posts, cd around, and cat this one:

guest@matthorn.io:~$ cd posts
guest@matthorn.io:~/posts$ cat terminal

There is also a small asteroids game in wireframe 3D. Type play to find it.

It is about 1,550 lines of vanilla TypeScript over a Hugo static site. There is no framework. Every page is still an ordinary server-rendered page. If you turn JavaScript off, the site works the same. The terminal is decoration on top.

One constraint shaped the code: a strict Content Security Policy with script-src 'self' and no inline scripts. Page data reaches the terminal through a JSON block the browser will not execute. The pure parts (path resolution, the game math) run without a DOM, so Node’s built-in test runner covers them.

I am not sure a terminal is good navigation. It is slower than links for most visitors, and the fallback pages probably get more traffic than the shell. It stays because I like it. Type help and tell me which commands are missing.

All posts · Home