In my last post, I mentioned that I was “investigating the possibility to use Tailscale to simply block the access from the β€œoutside world” and make it more secure”. Well, it is now implemented and it works. Basically, my blog system can listen on two different ports: the regular one where you’re navigating, and the one inside a Tailscale network.

If I specify exclusiveDashboard: true on my Tailscale section of the configuration, the dashboard will only be added to the Tailscale router. This way, the dashboard won’t be available at hacdias.com, but only inside the Tailscale network. I’ve tried it and it works. However, it is not how it is not enabled on the live version yet!

I also mentioned that I was trying to “inject” and admin bar while logged in. I can say that it is working via some response writer wrapping magic. I have a few more plans to make Eagle more self-contained, but we’re not there yet!

Have a fantastic day!

Yesterday and today I worked a bit on the backend of my website: Eagle. I’m quite happy with the amount of bugs I managed to fix and some of the new features:

  • Edit data files (or any other files)
  • Integration with Miniflux to update the blogroll
  • Usage of afero for base path file systems, i.e., avoid being able to edit files outside of the source’s scope
  • Improved interface
  • Search posts on the backend
  • Added favicon
  • Many fixes

I’ve also been investigating the possibility to use Tailscale to simply block the access from the “outside world” and make it more secure? I’ve tried using the still in the works package tsnet - like @jlelse did - and it was quite nice.

Unfortunately, I’m not sure yet how I can simply block access to the dashboard interface yet. At least in the case that the interface is on the same domain as the website. Right now, they are separated so it’d be easy. However, I’m thinking of putting it all under the same domain again.

I’m also trying to understand how I can perhaps “inject” an admin bar - with buttons to perform some actions - while navigating the website in case I’m logged in. Perhaps a bit of JavaScript magic will do it. I personally don’t want to get rid of Hugo (yet) and this solution or working around Hugo has been working very well! Hugo is the “database” and generator.

Also considering to add a few other features, such as post location, uploads with compression and correct resizings to BunnyCDN, renaming of posts, etc.

I just wanted to redirect everything from /all* to /stream* - finally decided to do so -, but somehow I managed not to figure out how to do that with Caddy webserver. I ended up manually redirecting the 3 main URLs:

redir /all /stream permanent
redir /all/feed.xml /stream/feed.xml permanent
redir /all/feed.json /stream/feed.json permanent

I tried many redir combinations and none worked. I can make the wildcard matching work with /all* but then… what do I redirect it to? I tried different thing and none worked. If you use Caddy, and have some minutes to spare, how would you configure this redirection?

I’m thinking of changing how my “photos” section works, or maybe have two different sections. On one hand, I the possibility of being able to just share a random, single photo I liked, like on Instagram. On the other hand, I really enjoy the aspect of curating stories - like here and here.

I think it’s possible to do both, but is it worth it? Should I invest my time in doing so? I’m gonna work on some ideas and possibly update it on the near future. Who knows?

It seems my column layout didn’t last long. As I was writing the post I had an idea: what about a mixed grid with the latest micro, articles and photos? Bingo!

Now the latest section in my homepage contains my latest micro post with full width, then a 2 by 2 grid with the latest 4 articles and a 2 by 3 grid with the latest 6 picture series!

I just updated my home page to show my last 10 posts (articles, micro and photos). Before, I was displaying two columns: one with articles and one with pictures. But I felt it wasn’t dynamic enough as I don’t post as many of those.

Now I’m using CSS columns which doesn’t make me particularly happy because the order of the posts is from top to bottom and not from left to right. I see there’s a masonry grid layour in the works so it may be a nice option for the future.

For now, I’m not even sure if I’ll keep it like this or change it soon. Let’s see. What do you think?

In the past few days, I made a few updates on my website to improve both looks and performance. I started by updating my guestbook a few days ago.

Then, I looked at the CSS and I noticed there were huge chunks of CSS regarding cards and webmentions. Those and some other parts are now only added to the pages that require them.

I also decided to delete my GoodReads account and cleanup a bit my readings page. I still don’t have a fancy interface to edit them, but I’ll have soon enough. It’s not as if I’m reading tons of books every day.

It seems Amazon decided to “deprecate” their GoodReads API in a very silent way. I use the GoodReads API to maintain my readings page and there’s a bug on the script. Thus, I went to the API documentation just to read the following:

As of December 8th 2020, Goodreads no longer issues new developer keys for our public developer API and plans to retire the current version of these tools. You can find more information here.

I didn’t know! I’ve wanted to drop GoodReads for some time now and this seems the perfect timing! I will probably just try to find some other service with a nice API or build it into my little CMS.

I must say though, that Readng looks quite promising! I will keep a look on them!

Do you have any recommendation?

As you might have read on my meta page, I inteded to remove support for ActivityPub:

I am considering removing the ActivityPub support from my website. Right now, my website is able to provide posts formatted as ActivityPub entries; post to my followers when I write new content; and receive comments via ActivityPub.

What bothers me is that the logic is a bit flaky and it fails quite often. Besides, I only have 2 followers and one of them is a testing account of mine. Removing it would cleanup the code and possibly not hurt anyone.

I just did it for the reasons mentions above. It’s a bit sad, but it gives me some peace of mind nevertheless. Maybe in the future, there will be a more straightforward protocol that is more massively adopted that I can implement. For now, I don’t see the use for this website.

I just opened my website on Firefox and for my surprise, I discovered that the CSS image-rendering: pixelated works on almost all modern browsers, except… for Firefox. See for yourself:


I’m sorry if you visit my website on Firefox, but almost all my GIFs will be blurry 😭

Edit: just discovered FF supports crisp-edges instead. Should fix it for now!

Is It Time To Build My Own CMS?

Today I have been thinking about the possibility of writing my own CMS. A very simple CMS. I even hinted that on a small micro post today. This is not a new idea. I’m not going to look at the previous posts where I talked about this, but it’s definitely at least 2 or 3.

“But why?”, you ask. Well, the answer is more complicated than I would like it to be. There is a number of features that I want to implement that will just make my website inherently more dynamic. And as @jlelse once said “it’s almost questionable why I use a static page generator at all”.


Hey y’all! I know I’ve been quite silent recently and haven’t even send out my newsletter. I’ve honestly run out of ideas, but I hope I can get back on track with that again soon. Also, next two weeks are exam weeks so I will be busier than usual.

A few days ago, it snowed here in Eindhoven and I was quite happy. I come from a place where it doesn’t snow and even though I’ve seen snow before, it’s not something that is usually part of my life.

Eindhoven Snow 2021

Stay safe! πŸ€—