Jan-Lukas Else

Jan-Lukas Else

Tech, life and everything else

Tags: GoBlog


Published on in 💬 Micro
Updated on

Couldn’t prevent myself from implementing support for socialspec.org as a plugin in GoBlog, given it already supports most of the pieces like automatic blogroll and feeds, and I must have just had to add redirects and some CORS handling. As I’m not an iOS user and can’t use the HyperTexting app, I don’t really have any use out of it, but initiatives supporting the open web are nice anyway. You can see my profile at sodir.org.

View

Published on in 💬 Micro

Inspired by Matthias Pfefferle, I also just implemented JS-based rendering for the sitemap.xml, which was using XLST until recently. XLST broke when I made the Content-Security-Policy in GoBlog more restrictive. Given XLST is deprecated anyway, I switched to CSS, but that’s more limited. JS-based rendering works great, though. I didn’t know using JavaScript on XML-based documents was even possible.

I also applied it to the blogroll.opml while I was at it. With the new DeepSeek V4.1 Flash 1017 and my critical questions, it was done fast and cheap, and probably better than I would have done it myself. 😄

View

Pocket ID and OIDC in GoBlog

Published on in 💬 Micro
Updated on

Tim Hårek really sent me down a rabbit hole with all the self-hosted services he lists on his latest blog post. There are some interesting links I put on my reading list. The first one I actually looked into, though, was Pocket ID. It’s a nice little OpenID Connect provider. A great homelab alternative to Keycloak, which I have to deal with at work sometimes.

It supports login with passkeys and can be configured with many other self-hosted services like Paperless-ngx, Forgejo, Nextcloud, KitchenOwl, and, since today, also GoBlog. Basically one passkey to rule them all. And it enables passkey support for the apps that don’t support them yet.

But it was also interesting implementing OIDC client support in GoBlog. It gave me the chance to fix a few bugs and recover my knowledge about OIDC in general.

View

Published on in 💬 Micro

The moment when you finally deploy a change on which you worked over some days, trying to think through every possible use case and scenario, and you just hope it’s working flawlessly. 🙏

Such a moment was just now for me!

I finally and drastically improved image optimization with GoBlog. Responsive images and AVIF support. Using imgproxy.

Part two of this major refactoring will be to find a way to map every image “optimized” using the old implementation to its original image. Just by comparing all files, as there was no database for it.

But until then, enjoy this image from Scotland last year!

AI generated caption: Sheep grazing on misty green hillside.

🖼️ View

Published on in 💬 Micro

Mastodon finally has an official share button. Or at least a page you can use that enables the sharer to select their Mastodon instance and then get redirected to the share page there. I directly used that to replace the share to “Mastodon.social” with share to “Mastodon” in GoBlog. 😊

View

MCP plugin for GoBlog

Published on in 💭 Thoughts
Updated on

Using AI, I just added a new (experimental) plugin to GoBlog, one that finally leverages app passwords, now that I’ve overhauled the authentication system some time ago. The plugin implements MCP, short for Model Context Protocol.

View

Integration-testing GoBlog’s ActivityPub implementation

Published on in 👨‍💻 Dev

Recently, I noticed in my blog database export that a couple of ActivityPub users unfollowed. All at the same time. It was strange. Until I noticed all were GoToSocial (GTS) users. In the logs I found the reason: GoBlog failed to deliver some updates to the users, and so the accounts were marked as dead and removed after twenty failed tries.

View

Published on in 💬 Micro

GoBlog not only has a new README file on the repository (replacing the old, cluttered, incomplete documentation) but also has a new share button implementation. No more relying on third-party services for that basic functionality!

View

Tackling a long overdue task

Published on in 💭 Thoughts

Given that AI agents and GitHub Copilot is an integral part of my work day nowadays, I decided to tackle a massive task I neclected for too long. AI should now help me with it: writing entirely new and better documentation for GoBlog.

View

GoBlog Telegram Bot plugin

Published on in 💬 Micro

If you’re reading this, it seems that my GoBlog Telegram Bot (just another embedded plugin) is working!

This new bot probably has no real use, but it was a good experimental project to try and get a bit more familiar with the current state of GitHub Copilot, especially as we can now use it at work.

Probably the biggest use is for uploading photos from my phone. I can just send them as files and get a link back. But I can also send text and it publishes it. Even with frontmatter to configure parameters for the post.

Regarding Copilot: For whatever reason (maybe my adblocking DNS?) the VSCode extension keeps asking me to log in again, but still works for the non-chat features.

However, I am still a little worried that AI will make my work obsolete.

View

Jan-Lukas Else