the treehouse is a statement of artistic expression
as you can tell the structure is quite different
always evolving and shaping and shifting
I can just sit down, type something out
isn’t that… in the spirit of Agile
the treehouse is a mostly statically generated website
treehouse is built in the programming language that gives me the most pleasure coding.
personally… the language you build a personal project with almost never matters. it’s rather how you execute your ideas.
therefore I find boasting that my project is powered by a
$LANGUAGE
or a$FRAMEWORK
unnecessary.but if you really care that much, it’s built with Rust, plain HTML5, plain CSS, and Vanilla JS.
as I alluded to here, treehouse is built to decay gracefully as you take away the fancy parts.
myself, I’m writing this content in a bespoke format called
.tree
.other than that,
.tree
assumes nothing about what format the branch attributes or content are encoded in.I chose TOML and Djot for their ease of use and flexibility, but the parser couldn’t care less.
every branch in the treehouse has a globally unique ID.
but manually coming up with ids for branches would be quite the nuisance.
that’s why with the power of Tools Programming™, I built a tool that fills out all the ids for me.
I chose ulids for generated ids, for a few reasons:
they’re much more compact than uuids
ulids on the other hand are 26 digits encoded with Crockford’s base32
noticed how fast the treehouse restores your state? there’s basically no delay.
this is because it restores your state as it’s loading in, by using a
MutationObserver
.
while not strictly a technical topic, I’d like to shout out Recursive for being an awesome font
being a variable font, I can tweak the text’s look and feel on many different axes.
the one that I wanted to shout out in particular is
CASL
, which lets me make it look a lot more happy and playful.almost like Comic Sans, but without all the stigma.
I actually considered using Comic Neue as the font on this website, but ultimately chose Recursive.