Hexmap: Week 0x16
The dashboard isn’t amazing, but it’s good enough to start sending weekly emails. Designing HTML for email clients sucks, but I decided to handle this myself rather than depend on Mailgun templating. This is the only third-party service I’m operationally dependant on, and I’d like to avoid lock-in. (Nothing against Mailgun, I remain convinced they are the best option.) So, I’ve copied my approach to template rendering for web pages into email handling, and have a nice Weekly Status Report to send to each user on the first day of the week.
“First day of the week” for a given user, in their timezone and with their preference for what day the week starts, is not trivial to do in a manner that scales nicely. My platoon of copilots was useless at helping with this, so I had to spend some quality time focused on SQL and am still not super confident it’s perfect. We’ll see.
Despite it being 2025, SVG isn’t really adopted for email. I have to render maps and charts to PNG, which let to my closest-to-vibe-coding experience so far. I was struggling to get consistent scaling of my “dot map” between the SVG and PNG, and found myself just trying things without clear intention. So I stepped back and asked Claude Sonnet 4 to fix it. Claude over-simplified against my intentions, but after 3 rounds of back-and-fourth, landed on some more elegant geometry than I had written.
I don’t think this qualified as “vibe coding” because I was still reading the resulting code and disagreeing with decisions the model had made, but it was much more like pair-programming than my normal usage of code completions and occasional solution queries. I enjoyed the experience and may try to give the keyboard to Claude more often.
In the interest of privacy-first, I’ve decided not to keep copies of these emails. (Otherwise, if data is to be removed I would need to also find and destroy those.) This means that those PNGs need to be attached to the emails but embedded in HTML, which took some learning. But it feels elegant.
For now, there is no tracking. But I think I’ll load the logo remotely and use that to track email opens, and set up a redirector to track clicks. All within the scope of my own domain and database; I don’t want to optimize for an ad network or whatever, I only want to learn what people find valuable.
I posted this in June 2025 during week 2674.
For more, you should follow me on Bluesky.