Migrated to Marmite
Oct 23, 2025 - ⧖ 2 minA few years ago I started using Hugo to build my static website. The idea has always been:
- I write posts using markdown, adding some metadata in the header (useful for categorizing the post)
- I store those files in a repository (in gitlab)
- Whenever I push a new change, a CI/CD job is started, running the static web generator
- The output is server using the Gitlab Pages service
Problems with Hugo
During these years using Hugo I've found some problems:
- new versions sometimes broke my pages: my previously working files, were no longer valid
- unnecessary complexity for my needs: archetypes, layouts, assets, resources.. lots of folders and includes when I only wanted to mange a few markdown files and a couple of images
So.. my conclusion was that this tool was way more heavy and complex than what I needed (again, bloatware?)
Looking for alternatives
I searched the web and tested som alternatives:
My goals what something simple/lean/fast (no bloat!) that was also good-looking enough (that's always subjective).
Finally I settle up for Marmite.
The first test was copying all my markdown posts to a folder, and executing:
marmite --serve .
..and, that was it. So easy and clean. That was a good start.
Of course, this program has many useful options, and advanced features, if you wanna dig a little deeper, but you can start using it without configuring almost nothing.
Adapting the CI/CD job
Gitlab has templates and docker images for Hugo and other wel know SSG, but not for Marmite (it's still a new project), so I had to build my own. That's what I ended up with:
pages: # specifies that this is a Pages job
image: debian:bookworm-slim
before_script:
- apt-get update -y && apt-get install -y curl tar
- curl -L https://github.com/rochacbruno/marmite/releases/download/0.2.6/marmite-0.2.6-x86_64-unknown-linux-gnu.tar.gz -o marmite.tar.gz
- tar -xzf marmite.tar.gz
- mv marmite /usr/local/bin/
script:
- marmite . public
- cp _redirects public/_redirects
publish: public
..easy peasy!