Aaron Crowder avatar

Aaron Crowder

Hi, I'm Aaron Crowder. Or—if you know me online—CrowderSoup.

Father of two, Software developer, and lover of the open web. I like to take things apart (and sometimes even put them back together). I can frequently be found tinkering with some bit of code in my spare time.

I Connected My Blog to Claude

Webstead, the CMS that runs this blog, now has an MCP server built in. As of this morning it also does OAuth, so I connected it to Claude like any other connector. No API keys pasted anywhere, just a normal "log in and approve" flow. The MCP server landed in #147 and the OAuth bits in #148. What it can do Claude can now: Search and read my posts Write drafts and hand me a preview link that works logged out Upload media Edit, publish, revert, and delete, with a confirm step for the destructiv...

Read more

Lil family run

Lil family run

  1. Elevation profile

    Gain -- Loss --

    Distance
    --
    Moving time
    --
    Stopped time
    --
    Total time
    --
    Avg moving speed
    --
    Max speed
    --
    Elevation gain
    --
    Elevation loss
    --

Did a run with these two while E was at softball practice!

My Home Server Talks Back Now

A while back I wrote about building a home server. That post was all Docker containers, DNS, and reverse proxies. The foundation. This post is about what I've started building on that foundation, and it's a little different: the box now does things for me every morning, and I can talk to it from my phone. The goal I gave myself was loose: an always-on box that smartly automates my life. My laptop isn't always on, so it can't be the thing that runs scheduled jobs. The server is, so that's wher...

Read more

Morning Run

Morning Run

  1. Elevation profile

    Gain -- Loss --

    Distance
    --
    Moving time
    --
    Stopped time
    --
    Total time
    --
    Avg moving speed
    --
    Max speed
    --
    Elevation gain
    --
    Elevation loss
    --

Ran 3.7 mi in 37:08 (9:59/mi pace), 108 ft elevation gain.

Race for the cure

Race for the cure

  1. Elevation profile

    Gain -- Loss --

    Distance
    --
    Moving time
    --
    Stopped time
    --
    Total time
    --
    Avg moving speed
    --
    Max speed
    --
    Elevation gain
    --
    Elevation loss
    --

Ran 3.1 mi in 27:51 (8:55/mi pace), 95 ft elevation gain.

Afternoon Run

Afternoon Run

  1. Elevation profile

    Gain -- Loss --

    Distance
    --
    Moving time
    --
    Stopped time
    --
    Total time
    --
    Avg moving speed
    --
    Max speed
    --
    Elevation gain
    --
    Elevation loss
    --

Ran 3.1 mi in 29:26 (9:25/mi pace), 72 ft elevation gain.

Afternoon Run

Afternoon Run

  1. Elevation profile

    Gain -- Loss --

    Distance
    --
    Moving time
    --
    Stopped time
    --
    Total time
    --
    Avg moving speed
    --
    Max speed
    --
    Elevation gain
    --
    Elevation loss
    --

Ran 3.4 mi in 34:23 (10:02/mi pace), 82 ft elevation gain.

Afternoon Walk

Afternoon Walk

  1. Elevation profile

    Gain -- Loss --

    Distance
    --
    Moving time
    --
    Stopped time
    --
    Total time
    --
    Avg moving speed
    --
    Max speed
    --
    Elevation gain
    --
    Elevation loss
    --

Walked 2.6 mi in 44:40 (17:02/mi pace), 69 ft elevation gain.

Brunch run!

Brunch run!

  1. Elevation profile

    Gain -- Loss --

    Distance
    --
    Moving time
    --
    Stopped time
    --
    Total time
    --
    Avg moving speed
    --
    Max speed
    --
    Elevation gain
    --
    Elevation loss
    --

Ran from home, around the park, and to Hopkins. Got bit by a Pomeranian in mile 3 lol.

Lunch Walk

Lunch Walk

  1. Elevation profile

    Gain -- Loss --

    Distance
    --
    Moving time
    --
    Stopped time
    --
    Total time
    --
    Avg moving speed
    --
    Max speed
    --
    Elevation gain
    --
    Elevation loss
    --

Walked 1.4 mi in 26:53 (19:08/mi pace), 20 ft elevation gain.