Hugo πŸ’“ Dendron

I use Hugo to render a static site. This includes the theme, markdown parser, and structure.

All of the content is separate from the site, and is built from Dendron notes. Quantified Self reports and assets are pushed to the notes from CI/CD.

DroneCI pulls the Hugo structure and my content together and publishes a docker image. I explain these build steps more here.


I love Dendron. I love Hugo. I wish they were mildly more interoperable, but I’m rarely afraid of some DIY.

Also, DroneCI happens to pair nicely with the gitea instance I already run in my Homelab.

Some negatives to this complex approach include:

  1. At the moment, only my public notes have a frontend. Private notes don’t show up anywhere beyond VSCode. For now.
  2. I lose quick preview functions like Dendron: Preview or hugo serve -D. I rely entirely on VSCode to render my notes properly and have to do theme changes in a different workspace.
  3. I must follow Dendron’s updates and keep my export pod compliant. (Otherwise I run into unexpected errors)

However, the pros heavily outweigh the cons.

Keep stellar tools

I get all the benefits of a static site generator, while continuing to use and incredible open source note taking app.


These measures let me write all my learning, thoughts, and projects in a single place. I can then strike my own balance on privacy and keep from oversharing with public flags in the frontmatter.

Quantified Self

Part of the appeal of a dynamic build system is the mixing of data sources, journals, and reports in the quest for Quantified Self.

This dynamic content is generated at build time or on a schedule.

Ultimately the price I pay for complexity is just more complexity.