It’s 20:30 on a Sunday evening. My partner practically had to drag me out for a walk earlier to “turn off my brain.” Didn’t work. I’m back at my desk, Stalker 2 installed and untouched, Settlers 3 sitting there, Battle for Middle-earth gathering digital dust.
What am I doing instead? Configuring RSS feeds and building automatic cover image systems for my blog.
Yeah. I’m that kind of nerd.
The Weekend Project Spiral
Weekends don’t mean much when you’re constantly thinking about projects. I thought I’d work on the Vagrant WSL2 provider today - it’s been going well, making solid progress. But it’s Sunday, maybe I should relax?
Nope. My brain doesn’t do “relax” with games when there’s an unfinished project gnawing at the back of my mind.
The Vagrant provider is getting close to v0.5.0. All the major WSL2 distros work. I’m planning v0.4.0 with networking support. It’s actually… good? Like, genuinely useful. People could use this.
Which brings me to the problem.
The Fear of Shipping
I keep thinking about opening an issue in the official Vagrant repo. Get community feedback. See if people actually want this. Maybe even get it noticed.
But I’m terrified.
Not of the technical work. Not of bug reports or feature requests. Those are fine. I’m scared of the rejection. The “this is stupid” or “why would anyone use this” or just… silence. The worst kind of feedback is no feedback at all.
So I keep pushing it off. “When it hits v0.5.0.” “After I implement networking.” “Once all distros work perfectly.”
Classic imposter syndrome mixed with perfectionism. I’ve built things that got attention before, got results, solved real problems. But that fear of putting yourself out there? Never goes away.
Starting Small: Dev.to
So instead of opening that scary GitHub issue, I’m doing something smaller. Baby steps.
Dev.to. I’ve been registered for three years. Never posted anything. I tried Medium before that. Didn’t stick. I like my own blog - Hugo, markdown, no analytics tracking, no dopamine hits from engagement metrics.
But the Vagrant provider deserves some visibility. And I need feedback before I’m brave enough to post in the official Vagrant repo.
So, Dev.to RSS integration it is. Automatic posting from my blog’s RSS feed. Start small, see what happens, build confidence.
That’s the theory, anyway.
The Technical Rabbit Hole
Of course, setting up Dev.to RSS import wasn’t just “paste URL and go.”
First attempt: the content didn’t show up. Just the title and a one-line description. Turns out Hugo’s default RSS template only includes <description>, not the full content. Dev.to needs <content:encoded>.
Fixed that - added ShowFullTextinRSS = true to the config. PaperMod theme had it built in, just needed to flip the switch.
Then: no tags. The RSS feed wasn’t including category tags. Had to override the RSS template, add category/tag support manually.
Then: no cover images. Dev.to pulls cover images from RSS <enclosure> tags. Hugo doesn’t add those automatically.
And this is where it got interesting.
The Cover Image Problem
I didn’t have a cover image system. I knew I’d need one eventually - social media share cards look terrible without images. But I’d been putting it off.
ChatGPT to the rescue, right? “What aspect ratio should I use?”
“1200x630 works great!”
Cool. “Generate me a cover image.”
Outputs a 1500x1080 image.
…classic ChatGPT. Recommends one thing, delivers another. At least the image looked decent - terminal, security lock, 3D printer, game controller. Very “tech enthusiast polymath” which is… accurate. I’m a huge nerd, after all.
Cropped it to 1200x630. Good enough for a default.
But here’s where my brain kicked in: “What if I have different series? Different categories? I don’t want to manually add cover.image to every post’s frontmatter. That’s not DRY. That’s maintenance hell.”
So I built an automatic system.
Automating Cover Images (Because Of Course I Did)
Created a central config file - data/coverimages.yaml:
series:
"Building Vagrant WSL2 Provider": "/images/coverimages/vagrant-wsl2-provider/cover.png"
categories:
"Development Tools": "/images/coverimages/vagrant-wsl2-provider/cover.png"
default: "/images/coverimages/default.png"
Then modified the RSS template and Hugo’s cover partial to do smart lookups:
- Check if there’s an explicit
cover.imagein frontmatter - If not, check the post’s series name
- If no series, check the category
- If nothing matches, use the default
Now every post automatically gets the right cover image. No frontmatter editing. Add a new series? One cover image, one line in the YAML file. Done.
I can enable/disable cover images in different contexts:
ShowPostCoverInList = true- Thumbnails in post listingsShowPostCoverInSingle = false- No hero images on individual posts (clean reading)- RSS feed always includes covers (for Dev.to and social shares)
It works perfectly. Zero maintenance.
Claude: Can confirm - we went from “let’s just add a cover image” to building an entire automatic lookup system with fallback logic in about 2 hours. This is how side projects work.
The Stats Anxiety Begins
And now the problem.
I posted to Dev.to. Set up the RSS auto-import. And I’ve already checked the stats five times.
This is exactly why I loved Hugo in the first place. No built-in analytics. No real-time engagement metrics. I write, I publish, I move on. No obsessing over views, likes, comments.
But Dev.to has stats. And now I’m checking them. “Did anyone see this? Any reactions? Comments?”
Nothing yet, of course. It’s been an hour.
I went through this with YouTube years ago. Constant checking - views, likes, comments. None came. It drove me crazy. I don’t want to do that again.
But here I am, refreshing the dashboard. The dopamine trap is real.
So What Now?
The Vagrant provider is close to ready. I’ve got v0.2.0 published on RubyGems, got my first GitHub star (from a random person I don’t know - that felt good). The technical work is solid.
I just need to ship it. Actually put it out there.
Starting with Dev.to is the baby step. Low stakes. If nobody cares, fine. If people do care, great. Either way, it’s practice for the bigger step - posting in the Vagrant repo and seeing what the community thinks.
The fear of rejection doesn’t go away. You just have to ship anyway.
Maybe I’ll open that GitHub issue when v0.4.0 drops. Or maybe v0.5.0. Or maybe I’ll just keep making excuses.
But at least the cover image system works now. Automatic, DRY, zero maintenance.
Small wins, right?
It’s now 21:45. I spent another hour writing this instead of playing Stalker 2. The obsession continues.