Configure GoatCounter with Caddy 2

A goat in a forest

Photo credit: Léonie Lejon (Unsplash license)

Edit 1: The article was updated. Thanks to the replies from Martin Tournoij and Kellen Scarlett.

Edit 2: This article was written for GoatCounter 1.x. In March 2021, GoatCounter 2.0 was released and the syntax for cli is changed. You can view the release note in GitHub.

Web analytics applications

I had been using Google Analytics for a while. It's easy to setup. Just add a script and is ready to go. Then I …

Read more ...

Integrating Webmention with my blog

People discussing in front of a laptop

Photo credit: John Schnobrich (Unsplash license)


I had tried to use IntenseDebate and Disqus with this blog. I found the layout of IntenseDebate is outdated. Automattic did not update this project for a long time. It is a maintained state without new development. For Disqus, it had two problems. Looks like it may display Ads for the free plan. Also the long loading time for a webpage could be a problem. Below is a table that displayed the amount of data …

Read more ...

Using MeiliSearch with Pelican

Library with hanging blubs

Photo credit: SI Janko Ferlic (Unsplash license)

In my previous post, I mentioned about MeiliSearch. Let's have a short article on how to integrate it with my theme.

Edit: This post was edited for MeiliSearch version 0.13.

Part I: MeiliSearch

Meilisearch is written in Rust. Possible solutions for hosting it are VPS, serverless hosting and docker. Here is the link for official installation guide.

Steps for setting up Rust

  1. Get a release binary from the official web site
  2. Start up the …
Read more ...

Quickstart with Pelican Static Site Generator

A flying Pelican

Introduction to Pelican

There are lots of static site generators (SSG) available in the market. When it comes to Python based SSG, Pelican is the most popular one.

Here is my thoughts on Pelican:

  • Pelican is written in Python and is easy to use.
  • Pelican uses Jinja2 as the template language or macro. Which is not bad because Ansible templates is also using Jinja2. Learning Jinja2 is beneficial beneficial on using both products.
  • If you are a data scientist, you could integrate …
Read more ...