README

Last updated:

fluf.wtf

My lil yap/blog/personal-wiki thingy :3

I made this less for the typical "I wanna be famous" reasons, and more just to not have to repeat myself much.

Design

Intentionally a bit over-engineered for its use case. I am trying to use react-style jsx/tsx without ever being seen on the client to balance DX/UX cleanly, I want this to show a theoretical correct way to develop websites that doesn't prioritize DX over UX so much, but shows DX does not need to suffer for UX to thrive. (DX = Developer Experience, UX = User Experience).

I've combined Zola, Cloudflare Pages, Codeberg w/ workflows, and careful template creation to try and implement this. (Zola uses Tera under the hood for template engine, check it out it's neat :3) I'm considering an optional "privacy mode" check box that fully disables foreign API calls for things like search, sort, and other functionalities that cannot exist without JavaScript or backend. As well as mdformat to keep markdown files nice and pretty.

There is a third motive here too, and it is part of why I am trying Zola. I want to be considerate of Codeberg's free CI runners by keeping the build process as light as possible. That means using small tools, fast builds, and minimal images where practical.

Part of this turned into making my own little stack of CI images instead of making every workflow reinstall the same dependencies every time. The lower images absorb most of the slow setup work, like installing build tools, Zola, Rust tooling, and other shared dependencies. Then the actual project workflows mostly just compile the small changes and publish the result. The final blog CI image is intentionally boring: it has Zola, my git-lastmod tool, and the Cloudflare publishing pieces it needs.

I also made the image repos use caching where it actually helps, so most of them usually do not have to do much work unless something important changed. Some of the image-building repos need deeper Docker access, so those run on my own runner instead of Codeberg's shared ones. The normal project workflows can stay lighter because the heavier image-building work has already been handled elsewhere.

Even if Codeberg did not explicitly ask people to be considerate, it is still the right way to treat a community-backed free resource.

Resource usage must be reasonable for the intended use-case. CI requires substantial computing resources (cloning the repo and pulling the image, installing required tools, building and throwing everything away). Therefore, please consider twice how to create a good balance between ensuring code quality for your project and resource usage.

Usage

For now, it's very simple. There is no complex TSX implementation yet, you just run zola to test/build it.

Testing:

zola serve

Production build:

zola build