Oxdown - Static website generator that works for me
I recently wrote my own personal website generator. In the past I already used Chronicle (In Perl!) and Pelican (In python). I definitely wouldn’t have created another project of this kind if it wasn’t an opportunity to use coding LLM agents on a new project. I especially wanted to try Zed with Claude Code integration. So I bootstrapped Oxdown. Contraction of Oxidized (Rust-inside!) and Markdown. It’s fully opinionated. After all, I will be the only user. Anyway there isn’t anything hardcoded about me and a few configuration variables are allowed, so maybe you will like my design decisions and try it.
Three characteristics of this opinionated design:
- All articles sit in a root directory with a
YYYY-MM-DD-article-slug/directory for each article. Aindex.mdmarkdown file contains the article, aindex.jsoncontains optional article metadata, some static files can be stored along. - The
oxdowncommand only accepts one argument which is the path to a config file where every option is stored. No command line arguments or environment variables can overload the config file, although the config file can be omitted and read from aOXDOWN_CONFIGenv var. - JSON for main config file and metadata. Not always a good option for humans (especially the inability to add comments), but it’s clean and simple.
This program is now in charge of publishing my articles on tmartin.fr, alongside Medium.
By Thomas Martin
Follow me or comment