A forest outside of Oslo.

I've been thinking about gardens this week.

It started while reading the book Shopkeeping, which had a section entitled "Gardening":

A good shopkeeper will notice if a wall or section is in a slump or distress, as any gardener would. You will scan the displays and the cases with the wand of your mind, checking, in a way, for life and breath.

A gardener would look for ground that has become too hard, or soil that needs enriching or shading or watering. So too, a shop owner must sense if the book or product is in the wrong place, or with the wrong things, or being shown incorrectly to make its presence best felt.

Later, while showing me herbs he had grown, Chroma's CTO offhandedly mentioned, "When I don’t know what to do, I prune my garden."

There's a romantic idea of gardening - that you can walk in and find something to do. Water some plants, do some trimming, remove some weeds. Continuous improvement without a to-do list. Sure, gardeners can take on a project - but garden projects tend to come from a position of abundance or ambition, rather than obligation.

Gardening seems quite the opposite of professional software work, where we often have very rigid structure. Tickets, tasks, sprints, OKRs, and standups are designed to keep people on task. In some teams, people are not allowed to contribute code except in response to a work order.

When we use other people's products, we often contemplate what we would do to make them better - where a button might go, or what was unclear while using it -and think, "I wish I could fix this for them." Yet, we rarely do the same with our own products. We make time for maintenance, but it tends to be reactive to problems or known tech debt. We rarely approach our own projects with a present state of mind, unencumbered by past blemishes or future obligations, and see how they instinctively feel. Gardening our projects.

Search “digital gardens” and you’ll quickly run into the world of personal knowledge management - note-taking systems inspired by books like How to take smart notes. In it, Sönke Ahrens argues that notes become valuable through linking: you revisit them over time, connect them to other ideas, and slowly grow a dense graph.

When I experimented with using Obsidian to take notes in this Zettelkasten note-taking style years ago, I came away with an appreciation for perusing old notes. There's a beauty in the shadows - the writing and pieces I had forgotten about. Reviewing old notes would lead to new insights - such as, "I've highlighted three places I want to visit in Seattle across different books - perhaps I should plan a visit to that city." [1]

As I maintain projects like Postcard, Booklet, and this website, I find myself doing a form of digital gardening. Sometimes I'll open the site, read through old pages, make some layout tweaks, and update the footer. It's little things that are probably inconsequential. But little scratches accumulate over time - broken links, old dates, rough copy. In aggregate, this low-stakes work keeps the site polished and cohesive.

As we're entering the end of the year, many software teams are pausing non-essential deployments and slowing down. Consider taking this time to garden.

Sign up for your own product, explore the website, and read the code - but without a goal in mind. Then, wander and improve things as they capture your attention. Create new connections, fix copy that doesn't sound right, and smooth the rough edges.

Gardening is ultimately a fight against nature - an attempt to bring order to chaos. Disorder doesn't happen all at once; it happens progressively. Sure, a project can introduce some loose ends that need to be cleaned up. But often, the important work happens when you walk in with nothing to do and begin pruning.


  1. I no longer use Obsidian, but I apply some if its lessons to this website. ↩︎

Subscribe for free?

I write about crafting digital tools.