Add two new blog posts and support preview frontmatter
- Add "I Thought I Had 15 Minutes" post about standup automation (draft) - Add "Why I Self-Host My Social Media" post about YunoHost setup - Update list.html to use preview param for homepage listings, falling back to description 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
74
content/posts/2025-12-20-i-thought-i-had-fifteen-minutes.md
Normal file
74
content/posts/2025-12-20-i-thought-i-had-fifteen-minutes.md
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
---
|
||||||
|
title: I Thought I Had 15 Minutes
|
||||||
|
date: 2025-12-30T12:00:00-05:00
|
||||||
|
draft: true
|
||||||
|
tags:
|
||||||
|
- Programming
|
||||||
|
- Neurodivergence
|
||||||
|
- Automation
|
||||||
|
- n8n
|
||||||
|
lastmod: 2025-12-21T01:54:55.065Z
|
||||||
|
description: I automated the five minutes before standup, and accidentally learned something about how my brain works.
|
||||||
|
---
|
||||||
|
|
||||||
|
*The five minutes before standup cost more than the meeting itself—and I didn't realize it until I stopped paying.*
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
I'm three lines away from fixing a bug that's been nagging me all morning. The solution finally clicked, I'm typing it out, and—
|
||||||
|
|
||||||
|
Slack ping. "You coming to standup?"
|
||||||
|
|
||||||
|
I thought I had fifteen minutes. I'm already a minute late.
|
||||||
|
|
||||||
|
So now I'm joining the call with my brain still wrapped around a database query while trying to remember what I even worked on yesterday. Or it's Monday and I'm scrolling through my commit history on mute, hoping someone else goes first so I can piece together where I was on Friday.
|
||||||
|
|
||||||
|
This isn't the meeting's fault. I actually find standups valuable. The rapid-fire "what I did, what I'm doing, my blockers" surfaces connections early, keeps work from drifting into isolation. On the kinds of projects I work on, touching multiple codebases and solving bits of different problems throughout the week, that situational awareness genuinely helps.
|
||||||
|
|
||||||
|
But there's a thing about standups nobody talks about: even when the meeting is on my calendar, the preparation costs more than it should.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Here's the thing about my brain: I thrive on deliberate context-switching. Rotating through multiple problems, solving bits of each in turn, building them up in parallel. A payment integration in the morning, a data pipeline after lunch, a frontend redesign the next day. That rhythm keeps me engaged in a way that single-project focus never has.
|
||||||
|
|
||||||
|
But there's a critical word in that sentence: *deliberate*.
|
||||||
|
|
||||||
|
An unexpected ping, a meeting I lost track of, someone pulling my attention while I'm holding a complex system in my head. That can be devastating. An hour's worth of thought, collapsed in an instant. The structure I was building just... gone. Sometimes I never fully reconstruct it.
|
||||||
|
|
||||||
|
The difference is control. Choosing to rotate through problems is energizing. Having context switches imposed on me is exhausting. And the cost isn't the interruption itself—it's the *reconstruction time* afterward.
|
||||||
|
|
||||||
|
Standup prep felt like a chosen context switch. It was on my calendar. I knew when it was coming. But it still carried that reconstruction cost. I had to stop holding whatever I was currently working on, shift into a different mental mode entirely, and piece together a narrative of my week from scattered artifacts. Commits in GitHub. Tickets in Jira. Memory of Friday half-erased by the weekend. Five minutes of clicking through systems trying to assemble a coherent answer to "what did you do?"
|
||||||
|
|
||||||
|
That's when I realized the meeting wasn't costing me. The preparation was.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
I'd had n8n installed on a server for a while, an automation tool I hadn't found the right use for yet.
|
||||||
|
|
||||||
|
Then I watched [Leon van Zyl's tutorial on automated standups](https://www.youtube.com/watch?v=CJMaqmYhKqU) and something clicked. Not just "I could build that" but a broader realization about where tools like n8n actually fit. They're not for the big obvious workflows that justify dedicated engineering time. They're for the quiet friction points you've learned to live with. The stuff that's annoying but not annoying *enough* to fix properly.
|
||||||
|
|
||||||
|
Standup prep was exactly that kind of problem.
|
||||||
|
|
||||||
|
So I built a workflow. Every morning at 8 AM it gathers my activity from the past 24 hours: commits from GitHub, tickets from Jira. It merges them together and sends them to Claude with a prompt asking for a conversational summary. Something I could read aloud without sounding like a robot.
|
||||||
|
|
||||||
|
The result lands in my inbox before I've finished my coffee. A few paragraphs telling me what I worked on, what's in progress, what's still open.
|
||||||
|
|
||||||
|
Natural and accurate, *no archaeology required*.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
I expected the time savings. I didn't expect how it would feel.
|
||||||
|
|
||||||
|
There's something quietly satisfying about getting that email every morning. A small summary of what I accomplished, delivered without any effort on my part. Even on days when it feels like I didn't get much done, seeing the actual commit history usually proves otherwise.
|
||||||
|
|
||||||
|
This matters more than it might seem. My brain thrives on rotating through problems, but that rotation makes it harder to maintain a coherent narrative of what I've actually *done*. When I'm deep in one problem, I'm not thinking about the three other problems I solved earlier in the week. The work feels fragmented because my attention is fragmented—by design, because that's how I work best.
|
||||||
|
|
||||||
|
Having a system that automatically reconstructs that narrative turned out to be surprisingly meaningful. Beyond saving time, it's a small daily reminder that *scattered doesn't mean unproductive*.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Since building this, I've noticed more of those quiet friction points. Minor annoyances I'd normalized because fixing them felt like overkill. Triaging support emails. Generating SQL queries from natural language. Even auto-inking my kids' pencil drawings. None of them big enough to justify a real engineering project, but real enough to be worth an hour of wiring things together.
|
||||||
|
|
||||||
|
The standup automation taught me to look for them. And it taught me something about my own brain in the process—about the hidden costs I was paying without realizing it, and the value of systems that do reconstruction work so I don't have to.
|
||||||
|
|
||||||
|
If you want the technical details (the workflow JSON, the setup, the quirks I discovered), I wrote that up for [Infinity Interactive's blog](https://www.iinteractive.com/notebook/2025/12/18/automating-standup-prep.html). This piece is the human context around it. Why a simple automation mattered more than it should have, and what it accidentally revealed about how I work.
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
---
|
||||||
|
title: Why I Self-Host My Social Media (and You Could Too)
|
||||||
|
description: I started with a $12 droplet and YunoHost. Four years later, I run my entire social media presence on it.
|
||||||
|
preview: In 2021, I gave myself ketamine treatments for my 50th birthday. One of the first signs they were working was that I wanted to build again. I started with a $12 droplet and YunoHost. Four years later, I run my entire social media presence on it.
|
||||||
|
date: 2025-12-20T12:00:00-05:00
|
||||||
|
draft: false
|
||||||
|
tags:
|
||||||
|
- Self-Hosting
|
||||||
|
- Fediverse
|
||||||
|
- YunoHost
|
||||||
|
- Social Media
|
||||||
|
lastmod: 2025-12-21T01:53:59.581Z
|
||||||
|
---
|
||||||
|
|
||||||
|
*I started with a $12 droplet and YunoHost. Four years later, I run my entire social media presence on it.*
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
In November 2021, I spun up a $12-a-month DigitalOcean droplet and installed YunoHost on it. I just wanted to play around, see what self-hosting felt like these days. Four years and two server upgrades later, that experiment runs my entire social media presence: Mastodon, Pixelfed, BookWyrm, Castopod, Gitea, and this blog. Soon it'll run Loops too, a brand new federated short-video platform that's just coming online.
|
||||||
|
|
||||||
|
I didn't plan any of this. Like most decisions that end up mattering, it started somewhere else entirely.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Two months before I set up that server, I turned fifty. To mark the occasion, I gave myself a gift: ketamine treatments for lifelong depression. The kind that doesn't respond to the usual interventions. The kind you learn to route around rather than actually fix. The kind that becomes so baseline you forget you're carrying it until something finally lifts it and you realize, *oh, this is what people feel like normally.*
|
||||||
|
|
||||||
|
The treatments worked. The fog lifted. Colors came back. And one of the first tangible signs that something had changed was that I wanted to *build* again.
|
||||||
|
|
||||||
|
Not code for clients. Not features for deadlines. I wanted to tinker and play and create a digital home that belonged to me. Something I could point to and say: this is mine, I made this, nobody can take it away.
|
||||||
|
|
||||||
|
So I installed [YunoHost](https://yunohost.org) on a small server and started adding apps.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
YunoHost makes self-hosting approachable. It's a Debian-based system with a friendly web interface for managing applications, users, domains, and backups. Install an app, point a subdomain at it, and YunoHost handles the certificates and reverse proxy. All the fiddly bits that usually make self-hosting a headache just... work.
|
||||||
|
|
||||||
|
Could I manage all this myself? Sure. I've been a full-stack developer for over forty years. I could wrangle nginx configs and Let's Encrypt renewals and database backups manually. But the combination of a semi-managed VPS at DigitalOcean and a maintained app management system like YunoHost hits a sweet spot. I get ownership and control without spending my weekends on sysadmin busywork. As my usage grew, I bumped up the server twice and added automated backups. The costs crept up a bit, but the ease stayed the same.
|
||||||
|
|
||||||
|
It's also open source and community-driven. People package apps, maintain integrations, help each other in the forums. I ended up contributing too—I wrote the BookWyrm integration that's now used by plenty of other YunoHost deployments. When Loops stabilizes enough, I'll probably package that one myself.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Twitter's long decline had already started my migration. I'd been on the platform since its earliest days, watching it gradually curdle. When ownership changed in late 2022, I already had somewhere to go.
|
||||||
|
|
||||||
|
My Mastodon instance at toots.kestrelsnest.social was running. My Pixelfed at pix.kestrelsnest.social was ready for photos. I could leave without losing connections entirely—the fediverse meant I could still follow and be followed by people scattered across other servers.
|
||||||
|
|
||||||
|
Then Facebook and Instagram started their own collapse, and I was glad I'd gotten ahead of it. My data lived on my server, in my database, in my storage. The platforms could implode and I'd still have everything.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
The sidebar on this blog lists where you can find me online. Almost every link points to a subdomain of kestrelsnest.social. Mastodon for microblogging, Pixelfed for photos, BookWyrm for tracking what I'm reading, Castopod for podcasting whenever I get around to it, Gitea for my code repositories.
|
||||||
|
|
||||||
|
I grew up on the old web, where you could have a home on the internet that actually belonged to you. I ran this blog on my own server through the first decade of the 2000s. Then I got lazy, let Twitter and Facebook become my default, and watched years of my words disappear into timelines I didn't control.
|
||||||
|
|
||||||
|
Self-hosting is just going back to what the web was supposed to be.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Could you do this yourself? Maybe. YunoHost really does lower the barrier. A basic VPS, a domain name, and a weekend can get you running. Their forums are helpful when you get stuck. And you can always find me at any of my socials if you want to ask questions. You don't need decades of experience, just patience and a willingness to learn.
|
||||||
|
|
||||||
|
The real question is whether you care enough about owning your data to invest the time. The corporate platforms will always be more convenient if all you want is to post and scroll. That convenience has costs, though. You just won't know the full price until it's too late.
|
||||||
|
|
||||||
|
I'm glad I started when I did. The infrastructure was already in place when the platforms started crumbling. Every time I add a new app—BookWyrm last year, Loops coming soon—I'm building out a space that can weather whatever collapse comes next.
|
||||||
|
|
||||||
|
The ketamine treatments were the gift I gave myself for turning fifty. The server might be the gift that lasts longest.
|
||||||
@@ -15,7 +15,9 @@
|
|||||||
{{ end }}
|
{{ end }}
|
||||||
<span class="posts-list-item-description">
|
<span class="posts-list-item-description">
|
||||||
<div>
|
<div>
|
||||||
{{ if .Description }}
|
{{ if .Params.preview }}
|
||||||
|
<br />{{ .Params.preview }}<br />(more inside)<br /><br />
|
||||||
|
{{ else if .Description }}
|
||||||
<br />{{ .Description }}<br />(more inside)<br /><br />
|
<br />{{ .Description }}<br />(more inside)<br /><br />
|
||||||
{{ else }}
|
{{ else }}
|
||||||
{{ .Content }}
|
{{ .Content }}
|
||||||
|
|||||||
Reference in New Issue
Block a user