Migrated to Marmite

A 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!