Inside · Writing

Inside · Writing

8 min read#Miscellaneous#Behindthescenes

Early on in the life of this blog, I didn’t have a writing process. Each post took a different path from idea to completion. Over time, I picked up tools and habits that gradually materialized into the following workflow.


Before I start writing anything, I need an idea. My ideation process has no structure. I wouldn’t even call it a process.

Here’s my secret to coming up with ideas. Having a creative outlet makes ideas come out of thin air. This blog gives me the latitude to express myself. As I go about my day, observing the world and absorbing content, ideas pop up. I don’t know where they come from.

When these tiny sparks of inspiration appear, I immediately add them to a list in Notion. I don’t judge the idea. I merely document. Then, I go on with my day. Before this blog, ideas would appear but then be lost as I forget.

notion Capturing ideas in Notion

Some ideas continue to bounce around in my head or reemerge days or weeks later. I’ll keep going back to my list and adding these new details as they arise.

I have over two hundred items on that list now. I’d guess that most will never see the light of day. Other ideas benefit from living on the list. They continue to develop as I return with new connections, examples, quotes, etc.

Every once in a while, an idea feels so fresh that I know it’ll quickly rot. These ideas in the zeitgeist have a narrow window of success. In those cases, like with 10 Year Challenge: How Popular Websites Have Changed or The Design of Apple’s Credit Card, I put whatever else I’m writing on pause and begin writing furiously.

Otherwise, when I sit down to write, I choose an idea that jumps out at me. It should feel exciting at that moment. I could probably improve my logic for selecting the next topic. At the same time, my current way avoids analysis paralysis.


Some posts are very research-heavy, like The iconic watches that inspired Apple Watch faces.

For these, I start with a list of questions or sources. I then collect notes as Kindle and Instapaper highlights. I avoid thinking about how the ideas could fit together. Instead, I focus on finding many fascinating excerpts as possible.

instapaper Highlighting in Instapaper

Trusting that I will eventually weave the notes into a post gives me the space to soak in information and consider facets I may not have noticed before.

The outline

Very rarely do the words for a blog post flow out. The vast majority of the time, writing takes a lot of work.

For simple posts, I draft an outline in Notion. I chose Notion because I can quickly jot down thoughts and then drag and reorder them into a nested list.

In cases where I’m handling a lot of research material, I import my highlights and notes into Figjam. One day, I hope to create a tool to automate this step. Until then, I copy them manually or use the Google Sheets Sync plugin as an intermediary.

figjam Outlining in Figjam

Dragging cards around, grouping them, and stacking them, provide spatial means to craft a flowing story.

The first draft

“I don’t give a hoot what the writing’s like; I write any sort of rubbish which will cover the main outlines of the story, then I can begin to see it,”

― Frank O’Connor


When writing my first draft, my foremost goal is speed. I don’t care about spelling, grammar, or any other problem. If a particular passage feels wrong, I hold back from fixing it. I remind myself that I’ll have time later for editing. So, I continue writing.

By focusing on quantity, not quality, with rough drafts, I avoid the most significant obstacle of all, getting started. We creators know that it is easier to criticize than create. That reality can often hurt us so easily comment about work that is difficult for us to create. This fact can also make the act of creation difficult since, as we create, our inner critic is constantly commenting on every detail.

If the inner critic is so good at criticism, then why not put it to work as our editor?

Drafting occurs in the Grammarly editor (I don’t use the extension since they record keystrokes) with the assistant hidden.

grammarly Writing in Grammarly

Once a rough draft is complete, I’ll turn on the assistant. I tend to ignore many of its complicated suggestions but appreciate the quick spelling and punctuation fixes. I also use Grammarly to replace straight quotes with smart quotes.

![](grammarly_assistant.jpg “Editing in Grammarly"")

Editing in Grammarly

I take a few passes in Grammarly, reading from top to bottom until I iron out the most glaring issues.

Sometimes a word doesn’t come to me immediately, so I’ll write down a synonym and continue. When editing in Grammarly, I can double click the word to bring up the inline thesaurus. Nine times out of the ten, my intended word is in the list.

Occasionally I sit in front of Grammarly, and even with an outline, no words come out. If that’s the case, I open up It’s a fantastic speech-to-text tool. I take a walk or lay down in a comfortable position, and then the words start to flow out. I’ll then copy the output into Grammarly and continue with the editing process I just mentioned.

Editing in situ

Since my posts are as much photography, illustration, and video as they are text, I can’t get a true sense of them until I insert them into the blog.

I create a new branch in git and run a script to scaffold a new post. This script creates a new MDX file with default frontmatter (metadata like title, date, etc.), that I can modify later. It uses the template below. Items like ${title} get replaced with answers to qustions asked in the command line.

title: ${title}
date: "${date}"
type: ${type}
tags: []
no_toc: true

cover: cover.jpg
cover_social: social.jpg

path: /blog/${path}/
description: write description here

write content here


Thanks to Q for reading drafts of this.

I’ll add graphics at this point. For photos, I made a small tool to generate markdown. It extract EXIF data into the caption and create the markup for me to copy. I craft graphics and slideshows using a combination of Figma and Keynote.

With the draft done, I’ll read through it again to make edits and catch mistakes. I then open a pull request, which triggers Render to create a deploy preview. I send that preview link to my wife, who reads the post and writes comments.

She has been a fantastic editor over the years. She’s interested in the topics I cover but isn’t as immersed as me. So, she’s quick to point out parts that assume knowledge readers may not have or tangents that don’t contribute to the story.

We sit down together with the post open while she runs down her list of feedback. I jot notes down as a checklist in my Notion doc as we go. Back at my desk, I’ll go revise the post based on her feedback.


Once the post is ready for publishing, I run through a quick checklist to verify the frontmatter, title, images, etc. I then merge the pull request, which triggers a rebuild of my main branch, pushing the new blog post public.

Thus starts the most crucial step of all, distribution. No one will read my work unless they know it exists.

There are a few channels that I update with new posts. First, my RSS feed automatically updates when I add a new blog post. I also mention new posts on my newsletter.

On Twitter, I’ll write up a small message linked to the post. On Instagram, I create a story using a template with a link. On Dribbble, I share a copy of the cover image for that post. I generate social images using my Figma templates.

I’ve also been fortunate that Sacha Greif often includes my posts in Sidebar is a curated selection of links targeted at designers, with five new ones arriving each day. I’ve been a follower for quite a long time now.

Lastly, if I think that a Reddit community may like one of my posts, I’ll post there. I tend to focus on smaller, more specific communities. I also generally avoid linking directly to my post. Instead, I’ll post an image or a message with a link to my blog post in the comments. That way, others in the community won’t assume that I’m there to spam self-promotional content.

Going forward

As I mentioned earlier, my process has gradually come together over years. I’m sure that it will continue to evolve.

Furthermore, I have some plans for the future. First, I want to explore interactive and dynamic content within posts. Second, I’d also like to improve my distribution strategy to find more people that could enjoy my work. I care not about pageviews or other metrics but the new relationships I’ve formed with all of you.

  1. Frank O’Connor, The Art of Fiction No. 19 · Paris Review ↩︎

Thanks to Q for reading drafts of this.

Subscribe to the newsletter