Post - March 29, 2026, 4:02 p.m.

Building a coding agent from scratch

Having an agent work while you do other things sounds like a neat idea. How well it works depends on a number of factors including the model you choose for the hallucination machine powering it, the prompts, tools and of course how patiently and you tell it exactly what to do. Having an agent write all the code has not worked for me, but I found some value in having one ready. So what better way to spend a Saturday watching LEC than writing one for LazerBunny?

Continue reading

Note - March 27, 2026, 5:22 p.m.

Caddy DNS verification

I have a relatively simple setup to host services locally: One Caddy container acting as reverse proxy for all services. DNS is set up, containers talk via Docker networking and I run an ACME server for SSL certificates. The disadvantage of this is that each client needs to trust the root certificate. Easy on most desktops. Okay to do on mobile devices. The most painful thing I ever did on an Apple TV. But it is a bit inconvenient when we have visitors over, and on top of that my wife is really good at ignoring my suggestions to set the certificates up and rather does not use the services. So we have to fix this.

Continue reading

Post - March 25, 2026, 7:43 p.m.

Ditching plaintext (mostly)

For a long time I tried to optimise my workflow around plaintext. It seemed to make a lot of sense to me. Works on every system, does not require any special libraries to parse, stood the test of time. As it turns out the advantages of an plaintext only workflow do not outweigh the disadvantages to me, but adopting the workflow for some time was a very useful exercise to understand the properties I value the most and want to replicate with whatever solution I choose.

Continue reading

Post - March 22, 2026, 7:45 p.m.

Less sophisticated, yet better

Do you know the feeling when you look at a system and how it behaves and think "this cannot be it"? This is how I felt when working on LazerBunny this week. Somehow, for some reason the MCP approach struck me as less favourable, and after some experimenting I completely dropped MCP from the existing timer service. I also had a bit more fun with voice cloning and slowly narrowing in on the final solution.

Continue reading

Note - March 21, 2026, 5 p.m.

Human.json

I have seen more and more people talk about human.json lately and I think it is a pretty neat idea. From what I can tell it checks all the boxes I would expect from a protocol like this.

Continue reading