Inspiration

I started with a simple frustration. I'd read something on Substack that genuinely shifted something in me, and then I'd lose it. Not just the article, but the feeling of it. Substack is built almost entirely around the writer. The tools, the metrics, the monetisation. All of it faces the person publishing. The reader is treated as an endpoint. They receive, they consume, they move on. And that felt wrong to me, because the best writing doesn't work that way. It lingers. It resurfaces in your head weeks later. It connects to something else you read months ago.

What it does

Brainforest is a redesign of the Substack reader experience essentially built for the person on the other side of the publish button. It does two things.

It finds your themes. Every article you finish gets quietly added to a pattern. Over time, Brainforest surfaces the themes running through your reading life, not genres you selected, not tags an author chose, but the real threads your reading has been pulling on. Solitude and the city. Time and memory. Making and unmaking. You didn't pick these. Your reading did.

It holds what you didn't finish. Most reading apps treat an abandoned article as a failure. Brainforest treats it as a pause. The Unfinished Pile collects everything you started but didn't complete, and when the moment feels right, it brings one back and not with a notification, but with a single pull quote. The line that made you stop the first time. One sentence is usually enough to remember why it mattered.

How I built it

I used Figma for the entire design, building out three core screens: the themes view, the unfinished pile, and the resurface flow. I kept the visual language close to Substack's existing UI so the redesign felt like an evolution, not a replacement. I used a free Figma plugin called Phosphor icons for the iconography.

For imagery and visual texture throughout the mockups, I sourced photography from Pexels choosing images that felt reflective and interior rather than bright and consumptive, to match the mood of the product.

Challenges I ran into

The hardest challenge was restraint. Once you start thinking about a reader's history as data, it's tempting to do a lot with it like scores, graphs, streaks, recommendations. But every one of those moves the product back toward optimising consumption rather than deepening it.

The design kept pulling toward metrics. I kept pulling it back toward reflection.

What I learned

The deeper I went, the more I realised that reading has patterns, and those patterns are meaningful. People don't read randomly. They orbit themes. They return to the same emotional territory again and again, sometimes without realising it. Someone who keeps reading about solitude, urban life, and late-night routines isn't just interested in those topics. They're working something out. That insight changed how I thought about the design. The goal wasn't to recommend more content. It was to reflect the reader's own patterns back to them. To make the invisible visible: here's what you've been thinking about for the past three months.

Built With

  • figma
  • pexels
Share this project:

Updates