How it feels to write with AI

Before we get into this, I need you to understand: I identify as a writer first above all else.

Writing was the only thing I was good at as a kid. Some kids win trophies for their leadership in Little League. I failed the spelling bee (damn you, Wed-nes-day!) but I won the essay contests.

My life has been burned onto thirty thousand sheets of paper in marbled composition notebooks, Mead Five Star spiral bounds and colorful Moleskines. I’ve even indulged those artsy-fartsy journals they sell near the checkout counter at Barnes & Noble.

Opening a blank page in a Google Doc on my MacBook is the closest thing I know to the feeling of coming home.

So when I admit to you that I’m incorporating AI into my writing workflow, it’s a confession of desecration. Dragging a muddy hog into a stained-glass sanctuary. Squeezing a glob of ketchup onto a perfectly seared strip.

Writing isn’t just how I think, it’s how I define being alive. And now I’ve got this new tool that’s very much not alive added to the middle of my most vital human function.

How does AI change the experience of writing?

Writing for fun

When I’m writing for fun (like I’m doing right now) I hardly use AI. I almost always work freestyle in a stream of consciousness without any outlining first. As I’m moving down the page, I stop to accept or reject spelling and grammatical corrections. But it’s less deciding where we’re headed and more discovering where we’re going.

As I’m writing, the words on the screen are more Me than the vague impressions of concepts flashing orange and purple in my head. I am the keyboard. The world outside disappears. Time does not exist.

After I’m done, I read and re-read. I edit. I tinker. I’ll swap out a word if it got used too many times.

Only when I’m satisfied do I pop open my terminal, hit code . to open the IDE and reshape it all into markdown.

I add links where I need links and art where I want art. I go back and manually add underscores and asterisks for emphasis where it gets lost in the journey from Google Docs to CopyClip to VS Code.

I run the post at localhost and keep editing based on how the words look in my viewport. I clean up the widows and orphans. I add line breaks if a chunk feels too long.

It’s finicky manual work and always blocked by a final step: creating a header image for the blog post. If there’s something suitable on my camera roll, I’ll Airdrop it to my computer. Otherwise, I snag something from Google or Unsplash. Whatever I choose, I dump it in Figma, drop it onto a frame so it gets clipped to the right dimensions. Then I export the header image and carefully drag it into an images folder in my IDE.

git add .
git commit -m “New blog post”
git push

I let Warp autocomplete the rest --set upstream something something whatever I can’t remember it doesn’t matter.

I open GitHub to merge a PR that I won’t even review and Netlify takes it from there.

For years and years I’ve been writing this way.

Writing for work

Writing for work is a different beast. It always starts with a brief.

The brief is a meta-doc that explains why you’re even writing the thing.

What is the strategy? Who gets the byline? Where will the document get distributed? What will be the final CTA? Who needs to review this doc before it’s published? Does it need to be optimized for SEO? When will it be published? All of this is detailed, considered and approved.

If we need research, we do research. If we need art, we tag in a designer to produce the art.

As I write, I leave big placeholder frames in garish pink text with instructions for product shots to fill in.

Add a screenshot of the new feature here

Animated gif showing the workflow here

Writing for work isn’t connecting to myself. There’s a flow state but it’s less immersive. Bits and blobs of text come together like patchwork. It’s filling in a giant mad lib.

When it’s close enough, you compare the finished draft to the company style guide and resolve any differences.

Then you share the draft with collaborators and wait for the comments to come in.

If you’re lucky, you’re playing whackamole with a few nit-picks and suggestions. On a bad day, the whole thing gets questioned bottom to top. You have to go back to square one and rewrite the brief.

Once everybody agrees it’s thumbs up good enough you copy all the content into a content management system (CMS). Depending on the CMS, this experience runs the gamut from “tolerable rich-text editor” to “total shitshow garbage aerator.”

(Whatever you do, just don’t ask me to use Webflow. Last time I checked, their CMS won’t let you display a code snippet unless you add a code block and write custom HTML that won’t display in the article preview. Intolerable for technical writing. Please let me know if they’ve fixed this.)

The real magic of publishing content at work is the moment it gets distributed as part of a campaign. Nothing beats that feeling of watching the spike of hits to the URL, pointy triangles go up! in the analytics for the day.

For years and years I’ve been writing this way.

Writing for work with AI

As they say, “Something big is happening.” And that big thing is changing the way I write at work in a big way.

The brief? Ha! There is no brief. May I introduce you to: the prompt.

Writing style guide? That’s cute. We used to have one of those but now it’s a GitHub repo called claude-workflows. It has skills.md

There is no blank page experience in my new work writing workflow. Everything happens in the terminal. The closest I get is a new session in a new tab.

cd claude-workflows
claude
write an AEO/SEO optimized blog post and reference these sources

I open up the IDE (on the work machine, that’s Cursor). I copy/paste in the goofy formatted markdown that Claude spit into my terminal session, complete with key takeaways and a whole section of FAQs.

I run npm start to check out the blog post in my browser and it’s almost ready to ship as-is.

Now, there are some critical pieces AI can’t automate yet. AI still can’t generate true product shots for me. I have to log into the demo environment, use Cleanshot or Gifox and produce those files manually.

The blog post header image is still a blocker—but one of my colleagues has Midjourney finely tuned and they’ll create a thumbnail file I can use.

And hallucinations still happen. I have to carefully read the blog post content to make sure it’s accurately describing what’s possible with the product. Sections get rewritten.

Time to put my editor hat on.

How many em dashes are we willing to tolerate in a single blog post? Can I bring the total number down from 16 to 6?

“Here’s the thing.” “Let’s be honest.” “It’s not this, it’s that.”

How many of these phrases are intentional to match the company voice vs. generic AI bot lingo? Keep a few, rewrite a few.

The whole time I’m editing, I’m making mental notes of things I should add to the workflows repo so I don’t have to correct the same nuanced issues next time around.

As I share the blog post for feedback, I do not brace for comments or suggestions. No emotions can be bristled because I have no ownership over this material. Does this blog post suck? Damn straight it does. Let’s try to make it a little bit better before we ship it.

Tighten up the CTA. Add a deep link to the product where it makes sense.

I try not to do the math on whether the work of editing the blog post is taking more time than it would have taken to write the whole thing from scratch.

In this workflow, my role has changed. I’m not the writer. I’ve hired a writer.

And your role has changed, too. You’re not a reader. I don’t expect you to read this blog post. At best, I’m hoping you’ll skim the summarized bullet points when Sam Altman’s ChatGPT surfaces this article in response to a question you want answered.

If I truly wanted your attention, I would have filmed a short-form video. Vertical format. Talking head. Leading with a good hook. But that’s not what we’re doing today.

Because the blog post only takes 5 minutes to prompt and an hour to edit, the next question is: how quickly can we autogenerate the next 10 or 20 or 30 of these things?

I try to imagine where I’ll fit in the loop. Should I block off an afternoon to edit the articles en masse? Will I slowly lose my mind reading 30 of these slopful posts in a row? Is this how 5th grade teachers feel when they have to grade 30 students’ themes before class in the morning?

Oh, it’s too much! This is very hard work and I deserve a break.

I need something quick to lift my spirits.

I know—I’ll gift myself time to write! A bit of light journaling. 30 minutes, timeboxed. Just a page or two…

For a flicker of a second I let myself wonder, “Where do the bots go when they need respite? To wash out their brains before returning to the toil?”

But you know as well as I do: the LLMs are not alive. They don’t need time to fall back in love with the world. They can’t feel the heat of the sunshine switching places with the shadows on the floor.

If AI could hear the birds outside, it couldn’t say how the chirping reminds them of crepe myrtles and Bradford Pears and testing the limits of how long they could run away from home without being found.

If AI could hear the birdsong and match it with the right species, this is only because a hundred living humans did the listening first, labeling and agreeing and training patterns into the machines.

Which is to say:

There is no writing with AI. Not really. There is prompting. There is training. There is editing. But text generation is not writing any more than the A/C is breathing into this room.

The ancient mechanics between the mind and the body and the tools we use to express what we think and what we perceive are always holding up some corner of the system.

This bird kicked from the nest can only fly so far before coming back to our hands, starving.