catbox: a new static site generator

It’s not terribly gamedev-related, but catbox is a side project that I’ve been so sufficiently consumed by that I feel like posting about it here. And who knows, since I imagine a number of us have static sites, maybe you’ll be interested in this too!

The GitHub repository for it is over here:

I’ll mostly be using this thread to casually share my progress on catbox, but first I want to explain why I am working on this in the first place.


One of the things I really enjoy about taking physical notes is that you’re allowed to create your own workflow suited to how you work and your taste. There aren’t really any strict rules about how you make and organize your notes; you can make them in any way you want and put them wherever you want.

However, when you start taking notes digitally and get into publishing your notes on a website in an effort to make a blog or digital garden, this aspect of freedom is lost. Just as a few examples:

  • Obsidian requires that you write all of your notes in the Obsidian Flavored Markdown format.
  • Hugo requires that your notes follow a specific organizational structure, along with special file names like index.md and _index.md that are handled in different ways.
  • Jekyll requires you to learn how to use a templating system called Liquid.

However, the simple fact remains that all static site generators and most note-taking apps just do one thing for the user: provide a UX suitable for editing notes and a way to convert your notes into another format that is more readable. The fact that all of these tools require you to use their workflow is a by-product of reducing choice so that it is easier to make a nice UX experience. Admittedly, lots of tools do a great job using this strategy. But, I think you could still have great UX while allowing the user to specify what they want to do with their notes and I am sad that I haven’t found a static site generator that does that.

Really, all I want is a nice and easy way to define how my notes are turned into .html files without having to write code, and catbox is a static site generator I’m building in an attempt to do that. The idea is to let the user define a document transformation using a visual node graph editor, and then use that definition to generate the static site.

1 Like

I’ve already implemented a CLI prototype (which is implemented in Haskell), and I’m working on the visual graph editor now (which is implemented in Godot).

Yesterday I finished implementing the ability to load nodes into a graph, and today I’ve gotten the connections between nodes loaded.

I still need to load constant values into the graph, and then I’ll need to do a lot of refactoring before I implement graph editing.

1 Like