Some weeks back I inoculated the hugelkultur beds with wine cap spawn. I laid down chips on the branches, laid the sawdust spawn into the chips, more chips on top, hauled 35 gallons of water from the neighbor’s well in 5 gallon jugs to water it, hauled over compost, more chips, watered it again, stuck in a fair few plants I started this winter, covered it, walked away. Nothing to see. Nothing to photograph. Nothing that would make anybody stop scrolling.
What’s happening down there right now is called the spawn run. The mycelium is quietly threading its way through every wood chip and every rotting log I buried under those beds. It takes months. There is no visible progress the entire time. And then some morning this fall I’ll walk out with coffee, and there will be mushrooms, and I will have completely forgotten I did this, and I’ll stand there laughing at myself and take a picture and cook them for dinner.
Everyone on r/goblincore on reddit will want to see my shitty pictures of mushrooms on my garden beds but no one ever seems to write about the innoculation part so I just did.
The site was two and a half years old and had one post on it
I own this domain. I’ve owned it a while. WordPress says the install was born on November 25, 2023 at 7:32 PM, and two days later I wrote exactly one post, which said, in full, that I was hoping this blogging activity would help me collate and focus my thoughts and goals.
Then I didn’t touch it for two and a half years.
Not because nothing happened but because everything happened — I built a solar panel power plant, wired it to my tiny house on wheels, wrote the code that watches it, got cheated on and robbed by my junkie girlfriend more times than I can count, got evicted, found a new place to live with my house and cat and chickens and roosters at the zero hour, frantically tried to settle in before the winter totally fucked me, started my plants in the neighbor’s basement, shoveled so much fucking snow you can’t imagine, finally after the thaw I put in the beds, and kept the birds and my cat and myself alive through all of that. None of that ever felt like the thing you stop and write about. You just do it and go do the next one.
It rained today. So instead of doing the next one, I cleaned up the place where I’d write about them.
What was actually wrong
The site was running One Page Express, a business theme, and I had never removed its demo content. So for two and a half years, anybody who found carpenterfarmer.com was greeted by a page that claimed:
- 230 projects
- 75,340 worked hours
- 25 employees
I am one guy. I have one orange cat named George, a clingy bantam (tiny) rooster named Jonathan, and about 50 or so chickens of all makes and models. None of them are on payroll.
There was also a page of testimonials from clients who don’t exist, a team page of stock-photo strangers, a “Hello world!” post I never deleted, and a comment from “A WordPress Commenter” congratulating me on my new site.
Underneath that:
siteurlandhomewere still stored ashttp://, so every canonical link on the site pointed at the insecure version. TLS was working fine. WordPress just didn’t know.- 26 rows in the database still had
http://hardcoded into them, mostly image sources. - Permalinks were date stubs — no post name in the URL at all.
- The theme’s companion plugin was still active, still loading CSS and shortcode handlers for a theme I’d stopped using.
None of this is hard. All of it is boring. That combination is exactly why it sat there for thirty-two months.
What I did
Swapped to GeneratePress, which is about 30KB and seems pretty snappy served from a raspberry pi 5. Fixed the protocol in the options table, then ran a search-replace across the database for the stale URLs — skipping the guid column, because that field is a permanent post identifier and rewriting it makes every old post look brand new to anybody’s feed reader.
Set permalinks to post name. Trashed the demo pages, the stock post, the fake commenter.
Kept the 2023 post. It’s a bad post. It’s also the only honest record of the intention, and a work log that starts with I hope this helps me focus and picks up two and a half years later is a hilarious story that will make me chuckle when I see it if I ever bother to look.
Built five categories because that’s the actual shape of a day in the life of Sky: code, power, wood, farm, kitchen.
Aaaaaaaaaaaan then I lost forty-five minutes to the color scheme because I’m fucking picky and its raining.
The part that took the longest was the part that should have been instant
I wanted it dark. GeneratePress has a global color system — seven named slots, everything on the site referencing them as CSS variables. Set the slots, get a dark site. Should be thirty seconds.
Set them. Nothing happened.
Set them again a different way. Nothing happened. The search button went dark. Nothing else did.
The variables were defined. I could see them in the served HTML, exactly where they should be, spelled correctly. The page stayed beige.
So I stopped guessing and dumped the actual bytes the server was sending, and there it was, sitting in the theme’s own inline stylesheet a few thousand bytes above my overrides:
body{background-color:#efefef;color:#3a3a3a;}
a{color:#1e73be;}
Hardcoded hex. For the page background, the body text, and every link — the three things you actually look at. The theme’s own defaults file says those should be var(--base-2), var(--contrast), and var(--accent). The theme was not using its own variables for the only parts that matter.
That’s the whole bug. Every variable I set was correct and none of them were ever consulted.
There’s a related one I want to record because it nearly sent me chasing a ghost: right after I changed the site title, a page load took 10.6 seconds instead of the usual two. Looked like a real regression. It wasn’t — GeneratePress caches its generated CSS, changing an option invalidates that cache, and my request happened to be the one that paid to rebuild it. Next load: 1.5 seconds. If I’d panicked on the first number I’d have spent the evening optimizing a Pi that was fine.
Why write this down
Because this is 90% of the actual work, everywhere, in everything.
The mushrooms are a picture. The spawn run is months of nothing. The dashboard is a picture. Finding the one wrong octet is the week. The finished cabinet is a picture. Milling, sticker-stacking, and waiting for the wood to stop moving is the season.
Everybody documents the mushroom. Almost nobody documents the inoculation, and then everybody wonders why their beds are empty.
The habit I’m actually trying to build here isn’t writing. It’s noticing — that the thing I just did, which felt like nothing, which I was about to walk away from and forget entirely, was a real piece of work with a real cause and a real fix. I cannot stand half finished shit. So much of the time I see projects or jobs that are like 90% done and then people shrug and say “oh that’s good enough” and just put their tools down.
Fucking quitters.
Filed under: code. Next up: the About page, and then teaching a machine to draft these from my own notes — which, yes, will get its own post about exactly how much of it I still have to write myself.