I’ve been thinking about replacing Miniflux with Aperture + Monocle. I like the idea of using a Microsub client so that I can quickly reply, like or react to any post. The problem is that, unfortunately, aperture insists on not fetching posts for two of the websites I follow… I either write my own Microsub server, or go back to just Miniflux.

Has anyone else encountered this issue with Aperture?

On the past few days, I worked a bit on my IndieAuth implementation. Now, I am both a server and a client and you can log in on my website. There may be some posts that only logged in people can see. Besides, if I shared something with you, it will be visible under the private page.

With this, I also wrote a Go module (hacdias/indieauth) to help anyone that is using to to integrate IndieAuth on their system. πŸ˜„

I just secretly added a new section called itineraries with… well… itineraries! Some are private, as they are in the future. I quite like this functionality: I had to take some time to find some trains I took over the past two years. Fortunately, they were not that many and they were all in my e-mail. Older data I don’t have. I did not add any of the train trips I’ve done in the Netherlands, but maybe later of if I figure out NS API.

Farewell, Hugo! Hello, Eagle

In 2015, I posted an article with a very similar name to this one. At the time, I was saying goodbye to WordPress and welcoming Hugo. As with everything in life, there are cycles and things change. It’s time to turn a new page on this website’s life cycle.


Quickly added a form to my website’s dashboard to generate IndieAuth tokens on demand. This is going to be fun for some automation!

As I mentioned a few days ago, I have to decide between MeiliSearch and an SQL option. I will most likely go towards an SQL option because I need some sort of way to retrieve all the existing tags and I cannot do that with MeiliSearch unless I retrieve all posts and filter the tags.

I’m gonna be honest: I’m a bit scared of implementing this πŸ˜‚ I haven’t used SQL databases in some time and I feel like something will break at some point. However, I’m trying to avoid CGO at all costs. Maybe I’ll try the newer non-CGO SQLite options for Go, or maybe I’ll just go with Postgres.

In the series of “the new version of my CMS”: trying to decide how to save context (reply, like, repost context) and webmentions. One option, which is the one I’m using right now with Hugo, is to have a sidecar file that contains those informations. In the new non-static system, that will mean every time I need to render a post, I need to read two files at least.

The other option would be to have an “xray” folder organized in a fashion like domain.com/hashoftheurl.json and then still use the sidecar file (or even the post frontmatter) to link all the webmentions and context data. That’d require more I/O operations though.

I think I’m going with the sidecar for now. How are you storing your webmentions?

Micropub Update Parsing Uncertainties

I am creating a new Micropub endpoint for my website and I read the specification. However, while testing the update action, something unexpected happened. The specification is not quite clear to whether we should deeply-traverse the update and update field by field, or solely replace the top-level keys.


Why is Bunny Optimizer Engine 10$ per month? That’s a bit too much. I must say that I’m tempted of the capabilities to resize images on demand instead of having to upload the right sizes - and then if I wanna change them, I have to reupload all images with the new sizes again. But 10$ is too much for that! There’s other services with lower princings though.

I’ve been diving a bit into the Microformats and JF2 formats and I was quite confused today. On my new system, I’m storing some properties as a “flattened” version of Microformats. For some reason I assumed that was JF2, but it isn’t! Here’s a nice read!

In the process of building my new blogging system with IndieWeb whistles and bells, I was thinking today about the usage of shortcodes. Hugo provides this functionality called Shortcodes which lets you define some snippets with Go templating and then re-use them in your posts.

I’m using them to quite some extent, mainly with figures. If I do implement something similar, then the rendering process will be 3 pass: first pass the post content with Go templating, then Markdown, then Go templating again. Not sure if the two first steps should be swapped.

I don’t feel very happy about that 3-passing scheme as I think speed matters and I’m already afraid of adding too much! Any suggestions?

I have an exam next week, but I’ve also been working a bit on Eagle v2. I think I underestimated the amount of work I will have. I have many shortcodes in Hugo and I’m also relying on some custom Goldmark extensions that are being used by Hugo.

On the format, I’ve decided to do something very similar to p3k and organize the files by year, month and day. Don’t worry, I will set up all the redirects afterwards. And this time they’re actually redirects and not Hugo-generated-redirect-HTML-files.

I must say that using a statically typed language is not the most seamless for this, but it works! I see why - maybe - so many people on the IndieWeb community have used PHP.

I’m also blocked on how to index: so far I’ve been using MeiliSearch which works perfectly. It would still work perfectly. However, in the future I would like to have my own IndieAuth implementation and that would require to store tokens so it’d be a great time to move to an SQL database. Decisions… decisions… decisions…

About Moving Away From Hugo

Today I have been thinking about my website. Mainly about ditching Hugo and moving to a completely custom and dynamic website. There are a few reasons about why I would like more flexibility. However, I don’t know if it justifies the effort.


jlelse’s Blog 27 Oct 2021 10:30

Awesome! Do you still use Hugo as underlying static site builder? And how do you integrate the admin bar into your site? Some JS magic?

Do you still use Hugo as underlying static site builder?

Yes, I do. I still find it fast enough and it’s not introducing extra complexity right now.

And how do you integrate the admin bar into your site? Some JS magic?

No JS! I thought about that at first, but then I thought: well, I know when the user is logged in so it shouldn’t be that hard.

What I did was to wrap the http.ResponseWriter when the response file is HTML and the user is logged in, and inject a <div> with the admin bar before all the content. It’s technically not valid HTML - I think - because it goes outside of <html>, but no browser complains about it and works perfectly.

I’m not sure if it’s the most correct strategy, but it’s working for now! :D