❌

Normal view

  • βœ‡Feld Thoughts
  • Book: Echoes of October
    I approached Echoes of October with trepidation. A graphic novel about violence and grief isn’t easy terrain. But it succeeds in a haunting, urgent way. The creators have chosen to explore the year leading into the October 7, 2023 massacre through the lives of four children who each lose a parent. The children are from different locales (Gaza City, Toronto, Tel Aviv, and Daliyat al‑Karmel) which enables a textured, multi‑vantage narrative.  What impressed me
     

Book: Echoes of October

11 October 2025 at 18:28
Feld Thoughts

A graphic novel panel depicting scenes of children grappling with loss and violence. The illustrations feature four children from different locations (Tel Aviv, Kibbutz Kfar Aza, Daliyat al-Karmel, and Gaza City) expressing emotions of sorrow, confusion, and contemplation.

I approached Echoes of October with trepidation. A graphic novel about violence and grief isn’t easy terrain. But it succeeds in a haunting, urgent way. The creators have chosen to explore the year leading into the October 7, 2023 massacre through the lives of four children who each lose a parent. The children are from different locales (Gaza City, Toronto, Tel Aviv, and Daliyat al‑Karmel) which enables a textured, multi‑vantage narrative. 

What impressed me most is the restraint and care in which the story is told. The voices are calibrated: they carry sorrow, confusion, hope, anger, but rarely descend into melodrama. Because the characters are composite (e.g., everything that happens in the book is true, the characters are not), the authors manage to create space for truths without claiming to own them. 

I love graphic novels (scifi and history) and regularly have them in my reading diet. The panels breathe. There are silences, negative space, quiet facial expressions, and moments of violent disruption. The juxtaposition of children’s everyday worlds (school, family, and play) with the encroaching shadows of conflict makes the tragedy more palpable and intense.

This is not an easy read, nor should it be. Echoes of October is demanding: it expects the reader to engage, be uncomfortable, and reckon with stories that hold no clean resolution. But in doing so, it honors the complexity of memory, the weight of loss, and the imperative of bearing witness.

I recommend it to anyone willing to engage deeply with how conflict impacts children and the possibility (however fragile) of empathy.

  • βœ‡Feld Thoughts
  • Leveling Up in the Vibe Coding Video Game
    While “vibe coding” was a catchy phrase when I first heard it, something about it felt like a head fake to me. And, now that I’ve leveled up to “competent individual software developer” again (after 33 years of not writing any code) I think it’s the wrong phrase. Instead, I’d refer to what’s going on as AI Pair Programming. When I started playing around with AI-related coding tools last Christmas (because, well, I was bored), I had zero skills wit
     

Leveling Up in the Vibe Coding Video Game

13 October 2025 at 08:56
Feld Thoughts

While “vibe coding” was a catchy phrase when I first heard it, something about it felt like a head fake to me. And, now that I’ve leveled up to “competent individual software developer” again (after 33 years of not writing any code) I think it’s the wrong phrase. Instead, I’d refer to what’s going on as AI Pair Programming.

When I started playing around with AI-related coding tools last Christmas (because, well, I was bored), I had zero skills with contemporary software development. While I hadn’t written any production code since 1992, I played around with a new programming language every few years. Perl. Ruby. Ruby on Rails (sort of, not really). Python. Clojure. I could do Hello World and a few other simple things, but I never really got past basic CSS, tooling, or deployment stuff. I had a Github account and would futz around with it, but quickly get tired of trying to figure out why I didn’t care about a PR. And damn, so many CLI things.

For Level 1, I downloaded Cursor. After trying to figure out how Django actually worked (yet another online course), gave up, and decided to use Next.js. That led me to Vercel, reinforced by a few friends in their 20s who told me that all the cool kids were using Vercel (although Render, Digital Ocean, and AWS all were the beneficiaries of my credit card.) Pretty soon, I was using Cursor to fight with Vercel, Supabase, Clerk, and Github. After realizing Auto was no fun, I shifted to Claude 3.5. Dinostroids resulted (security holes and all …)

For Level 2, I got a little more serious. I discovered Linear, fought with Notion, and came up with a few ideas and a broader hypothesis around how things might work. I built a v0.1 of a thing.

For Level 3, I decided Lovable might be a better way than Cursor given that everyone was talking about it. I wasted about $200 on it, built a really cool design by vibe coding, but then watched it get very, very confused as it tried to go from simple design to something that actually worked that had some data complexity and AI calls. I thought about trying Bolt and Replit but quickly realized, after too much scrolling around on the web, that I’d likely run into the same issues.

So, I went back to Cursor and put a lot of efforts into my system prompt, tuning things, watching Cursor evolve quickly on a number of fronts (MCPs – yippee!, Agent mode as default – finally) while simultaneously watching my Cursor bill go up. It was easy to decide to go to Max mode and spend $200 / month instead of $20 / month when dinner in Aspen costs at least $100 / person no matter which restaurant you go to.

I hung out at Level 4 for a while. Cursor kept improving. Claude 4 came out. Auto mode still went off the rails and broke all my code. I started refactoring things and realized that the amount of cruft in my code was absurd. Little bugs turned into fatal flaws when I tried to have Cursor fix something. I learned about “git reset –hard HEAD”. I spent way too much time fighting with config issues on localhost:3000 (at least I’d figured out how to make Cursor always start the server on localhost:3000). I started using Docker. I was baffled that Cursor couldn’t remember stuff I told it the prior day, but intellectually understood why this was. I mean, memories.

The end of my joy at Level 4 was when ChatGPT 5 came out and was free on Cursor for a week. At first, it felt fast. Wheeee. Lots of stuff changing. It seems to be working. And then, after a few days, holy shit what a tangled mess of code it generated. Why are all my API routes suddenly broken. Console statements everywhere. UI elements in different parts of the application doing the same thing but look totally different. I went back to Claude and did another code review and major refactor. So many Vercel build errors. I finally embraced CI/CD. And Prettier. And Husky. Suddenly, I ran out of my monthly Cursor credits and shifted to usage-based pricing. $800 later, I realized that there was no reason for me to be using Opus or the thinking models for what I was doing.

Level 4 was a huge drag. But it was also when I started thinking of this as AI pair programming. The AI (or agent, or sub-agent, or whatever you want to call it) is my pair with hands on keyboard. It can type much faster than me. But I have to watch and constantly look over its shoulder, give it feedback, point at the stuff that needs to be done differently, and document what is important to remember to do.

And then I discovered Claude Code. This didn’t happen until Claude Code 2 came out at the end of September and corresponded with Sonnet 4.5. After my ChatGPT 5 I went back to Claude (and Sonnet) and started referring to Claude Sonnet as “Claudia” since she was my pair programmer. I thought about Claudia as a pair, related to her as I would a human pair programmer, and changed my approach. But when I loaded up Claude Code 2 in my terminal (I mean, just type “Claude”) I immediately leveled up again.

So – I’m now at Level 5 in the video game. It’s changed from a game of vibe coding to AI pair programming. And, it’s still fun!

  • βœ‡Feld Thoughts
  • The Bear Roars: Dan and Brad
    I recently joined Dan Caruso on The Bear Roars podcast , and our conversation brought one thing into focus: we’re living through a shift that’s not just changing what we build—it’s changing how we learn, lead, and collaborate.  We talked about AI, quantum computing, and robotics, but what we kept coming back to was access. How do we make sure every learner, founder, and educator has the tools—broadband, curiosity, and the freedom to experiment—to parti
     

The Bear Roars: Dan and Brad

21 October 2025 at 10:57
Feld Thoughts

Two men sitting in chairs in a bright, modern setting, engaged in conversation with microphones in front of them.

I recently joined Dan Caruso on The Bear Roars podcast , and our conversation brought one thing into focus: we’re living through a shift that’s not just changing what we build—it’s changing how we learn, lead, and collaborate. 

We talked about AI, quantum computing, and robotics, but what we kept coming back to was access. How do we make sure every learner, founder, and educator has the tools—broadband, curiosity, and the freedom to experiment—to participate in this next era? The challenge isn’t the technology itself; it’s building the human systems around it that help people adapt and thrive. 

Dan introduced the idea of the “super-professional”—someone who doesn’t just use AI, but grows alongside it. What stood out to me is that the real advantage won’t come from mastering the tools themselves, but from staying endlessly curious and open to learning. That mindset of give first—sharing what you learn as you go—feels more important than ever. 

Check out the episode here: 

Spotify: https://lnkd.in/gMMqrCzH&nbsp ;

Apple: https://lnkd.in/gunRWYEH&nbsp ;

YouTube: https://lnkd.in/gBzY_fHR&nbsp ;

Amazon Music: https://lnkd.in/gkwEvPaY&nbsp ;

  • βœ‡Feld Thoughts
  • Authors & Innovators 2025
    I love to read. I love everything about books. LLMs will not replace good writing anytime soon, although they have mastered the art of slop. Oh, and I love communities of people who love writing and reading. Authors & Innovators is a free, community-based event happening on October 30th in Newton, MA, for entrepreneurs, students, CEOs, venture and angel investors, and anyone interested in business. I attended in person a few years ago, and this year I will be there virtually with my book
     

Authors & Innovators 2025

23 October 2025 at 14:35
Feld Thoughts

Smiling author Brad Feld holding his book ‘Give First: The Power of Mentorship’ with event details for the Authors and Innovators Business Ideas Festival on October 30th.

I love to read. I love everything about books. LLMs will not replace good writing anytime soon, although they have mastered the art of slop. Oh, and I love communities of people who love writing and reading.

Authors & Innovators is a free, community-based event happening on October 30th in Newton, MA, for entrepreneurs, students, CEOs, venture and angel investors, and anyone interested in business. I attended in person a few years ago, and this year I will be there virtually with my book Give First: The Power of Mentorship (and a video). Larry Gennari created it a while ago, and if you like books, writers, readers, and entrepreneurship, it’s a blast.

Their overall goal is to introduce new ideas, foster meaningful dialogue, and move their motivated audience to read business books and engage with other like-minded entrepreneurs to learn more about the exciting journey of building a business!

This year, their theme is The Resilient Entrepreneur. They will be celebrating the spirit that drives founders to adapt, evolve, and thrive. Through thought-provoking conversations with visionary authors and business leaders, we’ll explore how resilience fuels innovation, creativity, and growth—both personally and collectively. From navigating uncertainty to cultivating curiosity and courage, this event shines a light on the mindset and community that empower entrepreneurs to turn challenges into catalysts for change.

The event is complementary, but registration is required at www.authorsinnovators.org .

  • βœ‡Feld Thoughts
  • Enshitification
    I’ve been a long-time Cory Doctorow fan. His new book Enshitification is delicious. Yup – I understand that a shit emoji doesn’t inspire deliciousness. Now that I’m back in hibernation (and figuring out what it actually means), I’m reading and writing a lot. I’ll probably blog some (a little, a lot, who knows) while in hibernation because I work out ideas by writing and putting them out in public (even if I don’t pay much attention to the feedback or
     

Enshitification

21 November 2025 at 12:59
Feld Thoughts

Screenshot of Cory Doctorow’s website featuring the book ‘Enshitification’ and a discussion event with Lina Khan at the Brooklyn Public Library.

I’ve been a long-time Cory Doctorow fan. His new book Enshitification is delicious. Yup – I understand that a shit emoji doesn’t inspire deliciousness.

Now that I’m back in hibernation (and figuring out what it actually means), I’m reading and writing a lot. I’ll probably blog some (a little, a lot, who knows) while in hibernation because I work out ideas by writing and putting them out in public (even if I don’t pay much attention to the feedback or engage) is a different type of writing for me than just “writing privately” (which is mostly a thing called journaling and valuable to me, but different …)

Cory invented a new word: enshitification. Here’s what Wikipedia says as of today:

Enshittification, also known as crapification and platform decay, is a pattern in which two-sided online products and services decline in quality over time. Initially, vendors create high-quality offerings to attract users, then they degrade those offerings to better serve business customers (such as advertisers), and finally degrade their services to users and business customers to maximize short-term profits for shareholders.

Nailed it. His examples are superb. I don’t use Facebook products anymore (I guess I’m supposed to call it Meta) because of how awful they are and how awful the company is (oops – yes – I have WhatsApp on my phone because several people in my world insist on using it, but it mostly just sits dormant for me.) I am so exhausted by Amazon and its endless quest for more margin from everyone, including all the companies that it depends on to be useful. Google is “entertaining” to me as they systematically destroy so many companies that enabled them to be amazing in the quest to become an AI company. TwitterX bwahaahahaha. And I don’t even want to bother with the enshittification of so many other things in the tech world that Cory doesn’t touch on but that fit within his thesis.

Cory deconstructs, in fascinating detail, what has happened with each of these companies.

While I don’t agree with all of Cory’s politics (e.g., I was not a fan of Lina Khan and the Biden-era FTC), I love that he’s willing to take strong positions and then back them up. But, the regulatory dynamics and regulations as part of his solution for Enshitification is only a modest part of the book. And, even though I don’t agree with all of it, his arguments have a lot of validity and useful things to understand, especially around the concept of regulatory capture and how it contributes to enshitification.

If you like sci-fi, read Cory’s stuff. If you are in the tech industry and want to be forced actually to think, read Cory’s stuff. If you are far left or far right, don’t bother, since you won’t be motivated actually to learn anything. But if you aren’t part of the “far left/right” and you are willing to read, think, and consider your position on things, read Cory’s stuff.

  • βœ‡Feld Thoughts
  • Give First Available in Audiobook Format
    Give First is now available to pre-order in Audiobook format (it will be officially released on 12/2/26). I’m the reader, so if you are an audiobook person, you’ll have to listen to me for a few hours. It was fun doing the recording (I’ve done the audio recording for two other books – Venture Deals (Jason and I alternated chapters) and Startup Life . Give First Audiobook on Amazon Give First Audiobook on Audible Give First Audiobook on Apple Other links via RBmedi
     

Give First Available in Audiobook Format

25 November 2025 at 12:22
Feld Thoughts

Cover image for the audiobook ‘Give First: The Power of Mentorship’ by Brad Feld. The design features a green background with the title in bold white letters, an illustration of hands reaching out, and text detailing the book’s focus on mentorship and community building.

Give First is now available to pre-order in Audiobook format (it will be officially released on 12/2/26).

I’m the reader, so if you are an audiobook person, you’ll have to listen to me for a few hours. It was fun doing the recording (I’ve done the audio recording for two other books – Venture Deals (Jason and I alternated chapters) and Startup Life .

Give First Audiobook on Amazon
Give First Audiobook on Audible
Give First Audiobook on Apple
Other links via RBmedia

  • βœ‡Feld Thoughts
  • @bfeld v60.0
    My father Stan and I in our default states. lsof -ti:3000 | xargs kill -9 2>/dev/null; npm run dev I’ve been wandering up to 60 for a while. During my extreme-extroversion around Give First: The Power of Mentorship I described myself as “almost 60” a bunch of times just to try it on. It feels comfortable. Several people responded with “60 is the new 40.” Nope. Not even close. I most definitely do not feel like I did when I was 40. On my annual birthday run thi
     

@bfeld v60.0

1 December 2025 at 12:40
Feld Thoughts

Two men lounging by a poolside on sunbeds; one is working on a laptop while the other is relaxing with his eyes closed.

My father Stan and I in our default states.

lsof -ti:3000 | xargs kill -9 2>/dev/null; npm run dev

I’ve been wandering up to 60 for a while. During my extreme-extroversion around Give First: The Power of Mentorship I described myself as “almost 60” a bunch of times just to try it on.

It feels comfortable.

Several people responded with “60 is the new 40.” Nope. Not even close. I most definitely do not feel like I did when I was 40. On my annual birthday run this morning (at least 1 minute for each year), I just plodded along, even though I comfortably covered 65 minutes. I sleep more (good), I care less about a bunch of stuff (good), but my energy is lower and the fatigue is ever present (bad).

I’ve definitely shifted into a new mode over the past year. I’m still on a bunch of boards for Foundry and deeply involved in several companies. But I’m much less focused on the broader technology industry, uninterested in many of the things that are going on, and tired+bored of the arc the narrative about technology and society has taken.

In contrast, I’m much more interested in people I care about. Not big groups of them, but the one-to-one relationships. My real friends are wonderful. The deep relationships are what have meaning to me.

I recently told Amy that I enjoy all the CEOs I’m working with. While I’ve always been friends with many of them, this is the first time that I can recall feeling a genuine friendship with all of them. I know that something new will be fucked up in my world every day , so that has nothing to do with these relationships. Instead, how we deal with whatever new fucked up thing will happen means everything.

I’m writing a lot. Give First: The Power of Mentorship may be my last non-fiction book. I’ve shifted to fiction and software. I’m having a ton of fun with both, bringing a beginners mind to the mix, even though I have the right kind of muscles for each from my past experiences.

While I haven’t solved my post-exertional malaise issue, I’ve settled into an understanding of it and how it impacts me physiologically. I’m experimenting with a bunch of things, keeping the ones that work and punting on the ones that don’t. And yes, pilates is magnificent.

On to the next decade …

  • βœ‡Feld Thoughts
  • When Is My Birthday?
    Google seems a little confused. It was even confused about my age the other day, but at least it has that right now. It was a little confused on December 1st. I mean, c’mon Google. Use all those chips you have to get it right!
     

When Is My Birthday?

8 December 2025 at 12:01
Feld Thoughts

Search results for how old Brad Feld is, featuring his age of 60 years and birthdate of December 2, 1965.

Google seems a little confused.

It was even confused about my age the other day, but at least it has that right now. It was a little confused on December 1st.

Screenshot of a Google search results page displaying information about Brad Feld, including his date of birth, notable works, and related searches.

I mean, c’mon Google. Use all those chips you have to get it right!

  • βœ‡Feld Thoughts
  • Capital Evolution: The New American Economy
    My partner Seth Levine has an important new book out today titled Capital Evolution: The New American Economy . I saw it last night at the Boulder Bookstore in the New Hardback Non-Fiction section (bottom left in the photo below) and am going to the launch event at Composition Shop in Longmont. Join us, say hello, and buy some books! I love the tagline from the flyleaf: “The future of capitalism isn’t left or right – it’s forward.“ In our over-politicized world,
     

Capital Evolution: The New American Economy

9 December 2025 at 10:33
Feld Thoughts

My partner Seth Levine has an important new book out today titled Capital Evolution: The New American Economy .

I saw it last night at the Boulder Bookstore in the New Hardback Non-Fiction section (bottom left in the photo below) and am going to the launch event at Composition Shop in Longmont. Join us, say hello, and buy some books!

A wooden bookshelf filled with various books, showcasing both fiction and non-fiction titles, including ‘Motherland’ by Julia Ioffe, ‘Splendid Liberators’ by Joe Jackson, and ‘Capital Evolution’ by Michael Lewis.

I love the tagline from the flyleaf: “The future of capitalism isn’t left or right – it’s forward.

In our over-politicized world, Seth and his co-author, Elizabeth MacBride, do an outstanding job of defining capitalism clearly and explaining how it evolved into today’s approach. They deconstruct the contemporary arguments “for and against,” examine challenges with many existing practices, and paint a new and compelling path forward.

Seth and Elizabeth have been working on this book for over two years. I read an early draft around a year ago and gave them a lot of feedback, so it’s been a joy to see it take shape.

Unlike my largely anecdotal books, which draw on my experiences, often with sidebars from others sharing theirs, Seth and Elizabeth did deep research for this book. I fondly remember showing up at Seth’s party barn at his house one day to see the large dining table covered with hardcover books on economic theory, the history of business (and capitalism and economics), and a bunch of other stuff he was reading as part of his extensive research.

As with Seth’s other book, The New Builders , it is both extremely substantive and eminently readable. I encourage you to buy and read a copy of Capital Evolution: The New American Economy .

  • βœ‡Feld Thoughts
  • The Toll of Stress on Startup Teams and Its Link to Founder Well-being
    Startup Snapshot, a think tank uncovering the unspoken realities of the entrepreneurial ecosystem, has released its latest report, The Untold Toll (Part 2): Navigating Stress, Wellbeing, and Burnout in Startup Teams . The emotional and mental state of startup teams has emerged as one of the most overlooked drivers of company performance. Startup Snapshot illuminates the unseen side of startup life through global data collected from startup employees. It’s the first study of its kind, an
     

The Toll of Stress on Startup Teams and Its Link to Founder Well-being

10 December 2025 at 11:21
Feld Thoughts

Cover image for the report ‘The Untold Toll Series: Part 2’, focusing on navigating wellbeing, stress, and burnout in startup teams, featuring a lone figure walking in a modern indoor space.

Startup Snapshot, a think tank uncovering the unspoken realities of the entrepreneurial ecosystem, has released its latest report, The Untold Toll (Part 2): Navigating Stress, Wellbeing, and Burnout in Startup Teams .

The emotional and mental state of startup teams has emerged as one of the most overlooked drivers of company performance. Startup Snapshot illuminates the unseen side of startup life through global data collected from startup employees. It’s the first study of its kind, and the findings are candid, revealing, and deeply human.

The startup grind is taking a heavier toll than expected. Only 10% of employees anticipated that startup life would harm their mental health, yet 80% say it has. Burnout affects 50% of employees, and 52% report anxiety, surpassing even the rates reported by founders themselves.

Founder stress quietly cascades through the organization. While only 10% of founders openly share their emotional challenges with their team, 57% of employees say they regularly notice signs of founder stress through tone, energy, and facial expressions. 

This unspoken tension shapes culture and affects how safe and stable employees feel. Teams led by highly stressed founders report 16% lower work wellbeing, 14% higher burnout, and 16% lower psychological safety.

The most significant stressor for employees isn’t workload or pay, but uncertainty about what’s happening in the startup. Yet only 18% say their founders are fully transparent about the company’s challenges. 

Transparency directly affects employee performance. Employees working under transparent, communicative leaders experience 19% higher work wellbeing and 26% lower turnover intention. When people understand what’s happening and why decisions are made, they feel secure, valued, and connected to the journey.

The research makes it clear: Founders set the tone for stress and well-being across their startups. When leaders neglect their own mental health, that stress spreads to employees, driving burnout, disengagement, and long-term cultural damage. Startup Snapshot will continue to investigate the emotional and psychological landscape inside startups. If you want to be part of this dialogue, reach out to yael@startupsnapshot.com .

  • βœ‡Feld Thoughts
  • Interview With Guy Kawasaki
    When I was 17, I knew of four people at Apple Computer: Steve Jobs, Steve Wozniak, Al Eisenstat, and Guy Kawasaki. I loved my Apple ][ (not a +, 48k, with an Integer Card, two floppy disks). By this point, I was spending a lot of time on my high school buddy Kent Ellington’s TI PC (pre-release – his dad was the production manager), but my Applie ][, now with a Z-80 card, sat in the corner of our family room and consumed a lot of my time. Of the four, I’ve met all but Steve J
     

Interview With Guy Kawasaki

4 February 2026 at 09:48
Feld Thoughts

Portrait of Brad Feld smiling, wearing glasses and a patterned sweater, alongside the title of a podcast ‘Guy Kawasaki’s Remarkable People’.

When I was 17, I knew of four people at Apple Computer: Steve Jobs, Steve Wozniak, Al Eisenstat, and Guy Kawasaki. I loved my Apple ][ (not a +, 48k, with an Integer Card, two floppy disks). By this point, I was spending a lot of time on my high school buddy Kent Ellington’s TI PC (pre-release – his dad was the production manager), but my Applie ][, now with a Z-80 card, sat in the corner of our family room and consumed a lot of my time.

Of the four, I’ve met all but Steve Jobs in person. Al Eisenstat was the first, on a trip to Cupertino with my parents, where I was supposed to meet Steve Jobs, but Al greeted me and spent a meaningful 30 minutes with me instead. Woz was next and we ended up investing (via Mobius) in one of Woz’s companies (called … Woz – it was ahead of its time).

I’ve long admired Guy and we have lots of second-degree-of-separation friends. One of them, Buzz Bruggerman, came up to me after a Give First: The Power of Mentorship talk in Seattle this summer and asked if I knew Guy and had ever been on his podcast. I said, “Nope, but I just listened to the one with Ben Gilbert that Guy did.”

In typical Buzz fashion, I had an email connecting me to Guy within a few minutes, and we quickly set up a time to do a podcast. I did it sitting outside at Rancho Valencia on a sunny day, was in a great mood, and at the very end of the podcast grind for the book promotion.

The podcast is now up at Building What Lasts: Brad Feld on Trust, Mentorship, and Long-Term Thinking .

It was special. It starts off fast. We learn about Guy’s early dating history with Al Eistenstat’s daughter. We talk about Heidi Roizen and Atherton. And then Guy is the very first person to make the link between the 18 items in the Techstars Mentor Manifesto, Chai, the important number 18, and entrepreneurial Tzedakah. All within the first ten minutes.

Enjoy!

And Guy – that was a delight.

  • βœ‡Feld Thoughts
  • Blurry Transitions
    Turning 60 in December marked an important moment for me. A key section from that blog post was: “I’ve definitely shifted into a new mode over the past year. I’m still on a bunch of boards for Foundry and deeply involved in several companies. But I’m much less focused on the broader technology industry, uninterested in many of the things that are going on, and tired+bored of the arc the narrative about technology and society has taken.” Amy and I spent the last
     

Blurry Transitions

5 February 2026 at 12:41
Feld Thoughts

A polar bear resting on a sandy beach with a calm body of water nearby and a clear blue sky overhead.

Turning 60 in December marked an important moment for me. A key section from that blog post was:

“I’ve definitely shifted into a new mode over the past year. I’m still on a bunch of boards for Foundry and deeply involved in several companies. But I’m much less focused on the broader technology industry, uninterested in many of the things that are going on, and tired+bored of the arc the narrative about technology and society has taken.”

Amy and I spent the last six weeks in New Zealand and Australia for my 60th birthday trip. I went into hibernation as part of that, stopped doing anything public-facing, and flipped to default no. I also stopped blogging, engaging with social media, and reading the news.

It gave me a lot of time to think and reflect. One thing that I realized was that I’ve never had a hard break or a clean transition from one thing to another. I have multiple threads of this, but if I just choose a professional one, here’s an example.

– I started my first company while in college.
– I started making angel investments while working for the company that acquired my first company.
– I became a VC while I was still founding companies and making angel investments.
– I co-founded Techstars and Foundry while still managing the legacy Mobius funds.
– I started writing books as a VC.

I did a similar exercise on technologies that interested me and generated long investment arcs (which we used to call themes at Foundry). There was usually a trigger point that created a new theme, where I became obsessed with a new technology of some sort and went very deep into it as a user and investor. These overlapped and fed off each other multiple times.

Basically, I’ve never had a “clean break” or a hard transition from what I was doing to what I did next.

I’m enjoying another one of these blurry transitions. I’ve found the new technological thing I’m obsessed with. While I’ve played with this new thing over the past year, I spent a lot of time with it over the last two months. And my interest (and competence and understanding) is accelerating.

I also realized that I missed writing. I know that I learn by reading and writing. I don’t learn by listening and talking (or at least not very much). I have to actually write things down. And, my new obsession involves a lot of writing…

Historically, I’ve gotten a lot of feedback on ideas by writing publicly. It’s also more helpful to me, as it has generated a ton of randomness on many dimensions. And, if you’ve read Give First: The Power of Mentorship , you know that many of the successful things I’ve been involved in came from this randomness.

So, I’ll be writing publicly more. I’ve consciously decided that is not part of hibernating.

  • βœ‡Feld Thoughts
  • Tech I'm Obsessed With
    I love getting emails from Ben Casnocha . Short, sweet, and to the point. Today’s was “what tech are you obsessed with now? Saw your blog post…” I wrote a response and then realized it was a good answer to my tease from my previous blog post (Blurry Transitions ) about what I was exploring. The only thing I removed was my ad hominem comments on various tech companies, since that’s not that interesting to me. And, I fixed some … typos. Here are a few hint
     

Tech I'm Obsessed With

9 February 2026 at 08:27
Feld Thoughts

Screenshot of a terminal interface showing a Git commit session with various commands and outputs related to a feature branch. Includes code updates, deployment steps, and task management.

I love getting emails from Ben Casnocha . Short, sweet, and to the point. Today’s was “what tech are you obsessed with now? Saw your blog post…” I wrote a response and then realized it was a good answer to my tease from my previous blog post (Blurry Transitions ) about what I was exploring. The only thing I removed was my ad hominem comments on various tech companies, since that’s not that interesting to me. And, I fixed some … typos.


Here are a few hints: IntensityMagic  and an image of my computer screen (the one above).

I decided I really wanted to understand how AI coding works. I’ve been deeply involved in a few shifts in the past (Agile software development, user-generated content (RSS), email everything (SMTP), … and, if you go back far enough, Feld Technologies was all about shifting from minicomputer business systems to PC-based network database systems). In all cases, I had to “do stuff” to understand it and form a viewpoint, given all the BS and marketing in tech.

I wanted to see if I could create a zero-employee company, aside from the CEO and CTO. Daniel (Feld) is the CEO. I’m the very part-time CTO. I’ve created a thing called CompanyOS, which is IntensityMagic’s AI-powered business operations system. It’s designed around the premise: “Run 100% of a company’s business operations through Claude Code. Two people, multiple Claude agents, zero employee overhead.”

At the core, I’ve gone extremely deep on Claude Code and everything around it.

– I think “vibe coding” is nonsense – it’s just prototype development and a different flavor of no-code software, which is useful but not compelling for scaled applications.

– There are $x billions of VC who have funded what are effectively wrappers on AI and/or point solutions that can be made obsolete overnight. 

– Most companies that try to integrate “AI coding” into what they are doing are struggling because they haven’t figured out the tooling, which is not just “turn on Github Copilot” or “use Cursor.”

It’s much easier to experiment deeply with “no employees” and “no legacy stuff,” so that’s what I’m doing. I’m viewing it as a video game, and I’m on level 19. It’s awesomely fun.

  • βœ‡Feld Thoughts
  • Claude Code Now Posts to This Blog
    This post was written inside a Claude Code session and posted directly to feld.com as a draft. Not copy-pasted. Not emailed to myself. I just typed /blog-feld in iterm2 and it showed up on my blog. Setting this up took about ten minutes. I asked Claude to figure out how to connect to feld.com (hosted on WordPress.com) for direct posting. It researched three approaches: the WordPress.com REST API, the official WordPress MCP connector, and the WordPress plugin MCP Adapter. The WordPress MCP conne
     

Claude Code Now Posts to This Blog

10 February 2026 at 10:25
Feld Thoughts

This post was written inside a Claude Code session and posted directly to feld.com as a draft. Not copy-pasted. Not emailed to myself. I just typed /blog-feld in iterm2 and it showed up on my blog.

Setting this up took about ten minutes.

I asked Claude to figure out how to connect to feld.com (hosted on WordPress.com) for direct posting. It researched three approaches: the WordPress.com REST API, the official WordPress MCP connector, and the WordPress plugin MCP Adapter. The WordPress MCP connector is read-only (so, useless for posting). The MCP Adapter only works on self-hosted WordPress (not WordPress.com). That left the REST API with OAuth.

Claude wrote a command called /blog-feld that handles the workflow: look at whatever I’ve been discussing in the current conversation, assemble it into a post, show me a summary, interactively edit with me, and then push it to feld.com as a draft.

It never publishes directly — I still review everything in the WordPress editor before hitting publish.

For authentication, WordPress.com requires OAuth. Normally, my experience setting this up is tedious. In this case, Claude just told me what to do step by step.

– I registered an app at developer.wordpress.com (Client ID + Secret)
– Claude set up the authorization code flow.
– I visited a URL, clicked “Approve,” and the browser redirected to localhost with an authorization code in the URL.
– The page itself didn’t load, but the code was sitting right there in the address bar.
– I screenshotted the page and pasted it into iterm2, and Claude exchanged it for an access token.

Done.

To verify it worked, Claude pulled my last three posts from the API. “Tech I’m Obsessed With,” “Blurry Transitions,” and “Interview With Guy Kawasaki.”

This is a small thing, but it’s the kind of small thing that changes behavior. Every day as I work with Claude Code, I think of multiple things like this. Instead of waiting for someone else to implement it or paying for a third-party service, I just create it in Claude Code and make it a permanent part of my environment.

I’ve been writing more inside Claude Code sessions anyway — working through ideas, editing, and iterating. The friction was always the last step: copy the text, open WordPress, paste it in, format it, fix the formatting that broke. Now that step is gone.

Thinking-in-conversation and writing-for-the-blog are the same thing.

  • βœ‡Feld Thoughts
  • Freshell – Contributing to Open Source
    Dan Shapiro just open-sourced Freshell — a browser-based terminal multiplexer for Claude Code, Codex, and other coding CLIs that lets you detach and reattach sessions, browse your coding history, and access everything from your phone. The tagline is “What if tmux and Claude fell in love?” which is about right. It can be pronounced multiple ways: Free-shell, Fresh-hell, fresh-shell. I’ve been thinking of it as Fresh-hell, which amuses me. As part of my exploration into&
     

Freshell – Contributing to Open Source

12 February 2026 at 11:54
Feld Thoughts

Dan Shapiro just open-sourced Freshell — a browser-based terminal multiplexer for Claude Code, Codex, and other coding CLIs that lets you detach and reattach sessions, browse your coding history, and access everything from your phone. The tagline is “What if tmux and Claude fell in love?” which is about right. It can be pronounced multiple ways: Free-shell, Fresh-hell, fresh-shell. I’ve been thinking of it as Fresh-hell, which amuses me.

As part of my exploration into AI coding, I decided to start contributing to open-source projects. I’ve been around open source for decades as a user and investor, but I’ve never been a consistent contributor. That’s changing now — it’s a natural extension of the learning I described in Blurry Transitions , and the best way to understand how software gets built today is to actually build it with other people.

Freshell is my first project. Dan and I have been working together for over a decade at Glowforge , and I love working with him.

I’ve been using iTerm2 for about six months. I expect I’ll have switched to Freshell by the end of the weekend. It already does most of what I want, and a lot more is coming. The combination of persistent sessions, browsing the CLI history, and the ability to access my terminals from any device is enough on its own. But the thing that makes me want to contribute rather than just use it is that it’s early — there’s a bunch of stuff to build, it’s something I will use continuously, and by participating in the open-source project, I can see how the changes I make work in that context.

  • βœ‡Feld Thoughts
  • Streamline Workflow with CEOS: Claude Meets EOS
    I’ve been aware of EOS (Entrepreneurial Operating System) for over a decade. A number of companies I’m on the board of use some element, or all of it. Several friends, including Bart Lorang , are EOS Implementers. Last night, while watching Olympic highlights and the first few episodes of Steal , I created a v0.1 of CEOS — an open-source project that brings the core EOS toolkit to any Claude Code session. I went from an empty GitHub repo to a public-ready project in about 90
     

Streamline Workflow with CEOS: Claude Meets EOS

14 February 2026 at 12:58
Feld Thoughts

I’ve been aware of EOS (Entrepreneurial Operating System) for over a decade. A number of companies I’m on the board of use some element, or all of it. Several friends, including Bart Lorang , are EOS Implementers.

Last night, while watching Olympic highlights and the first few episodes of Steal , I created a v0.1 of CEOS — an open-source project that brings the core EOS toolkit to any Claude Code session. I went from an empty GitHub repo to a public-ready project in about 90 minutes. Please feel free to make fun of Amy and me about how we spend our Friday nights.

EOS has great tools — V/TO, Rocks, Scorecard, L10 Meetings, IDS. But most companies implement them in a patchwork of Google Docs and spreadsheets. Or Notion pages. Or maybe they use one of the EOS-related SaaS products. The data ends up scattered across platforms, locked in proprietary formats, and disconnected from the actual conversations where decisions happen.

Since I’m living inside Claude Code (and integrating more and more of my workflow to it), I thought I’d see if I could make a set of skills that implement EOS. I’m working on another project (private at this point, but maybe I’ll open source it) called CompanyOS, which, while focused on a very early-stage company (like the 5,000+ that have gone through Techstars), potentially could scale.

CEOS is built on three ideas:

1. Everything is a file*.*** Every Rock, every Scorecard entry, and every L10 meeting is a Markdown file with YAML front matter. Human-readable on GitHub, parseable by any tool, and diffable in git. No database. No SaaS subscription. Git history is your audit trail.

2. Skills, not software. CEOS isn’t an application — it’s a set of Claude Code skills. Each skill teaches Claude how to facilitate a specific EOS workflow. You say “let’s set our quarterly rocks” and the ceos-rocks skill walks you through the process: reviewing the V/TO for alignment, collecting titles and owners, validating the 3-7 rule, generating the files. You say “run our L10” and ceos-l10 pulls your scorecard data, reviews your Rocks, checks last week’s actual to-dos, and facilitates IDS on your top 3 issues.

3. Fork and own it. The upstream repo (bradfeld/ceos) has skills, templates, and docs — no company data. You fork it, run ./setup.sh init, answer four questions (company name, quarter, team members, L10 day), and your EOS data lives in your fork’s data/ directory. Pull upstream for skill updates; your data stays untouched.

Here’s the timeline of the work I did with Claude Code. It implemented everything – I just provided the guidance. And yes, Claude came up with the timeline below. If you aren’t technical and don’t care, skip the next 10 paragraphs – they’ll be boring. But, if you are technical, it’s kind of fascinating what Claude decided, entirely on its own, to do.


9:38 PMgh repo create bradfeld/ceos --public --add-readme --license mit --clone. One command created the GitHub repo, initialized it with LICENSE and README, and cloned it locally.

9:42 PM — Repo scaffolding. README with project overview and architecture diagram. CONTRIBUTING.md addressing two audiences (EOS practitioners and developers — deliberately different skill sets). .ceos marker file for skill repo-root detection. .gitignore that keeps data/ out of the upstream repo. Directory structure for skills, templates, and docs.

9:50 PM — Seven EOS template files. This was the first real design decision: which files get YAML frontmatter (structured data that skills parse programmatically) vs. which are pure markdown (reference documents humans read). The answer: frontmatter for objects with lifecycle state — Rocks have status: on_track, Issues have ids_stage: identified, L10 meetings have rating. Pure markdown for reference documents like the V/TO and Accountability Chart.

10:04 PM — The setup script. Pure bash, zero dependencies. Three modes: ./setup.sh (symlink skills), ./setup.sh init (guided setup), ./setup.sh --uninstall (clean removal). Two portability decisions that matter: using | as the sed delimiter instead of / so file paths in values don’t break substitution, and avoiding sed -i entirely (macOS and GNU Linux handle it differently) by using temp files instead.

10:23 PM — Five EOS skills. This was the meat of the project. Each skill is a SKILL.md file — essentially a prompt engineering document in structured form. The key tension in writing skills is comprehensiveness vs. followability. Too much detail and Claude skims; too little and it improvises. The pattern that worked: tables for quick-reference data (status enums, file paths, modes) and prose for workflow logic.

The five skills:

  • ceos-vto — Review and update the Vision/Traction Organizer. Shows diffs before writing. Runs alignment checks between sections.
  • ceos-rocks — Three modes: setting (with V/TO alignment checks, 3-7 validation, ID generation), tracking (milestone progress, status updates), and scoring (binary complete/dropped, quarter scorecard with 80% target).
  • ceos-scorecard — Define metrics with goals and thresholds, log weekly values, 13-week trend analysis with automatic escalation to the Issues list.
  • ceos-l10 — The full Level 10 Meeting. Seven sections with time boxes. Pulls real data from scorecard and rocks files. Reviews actual to-dos from last week’s meeting. Facilitates IDS on the top 3 issues. Captures meeting rating.
  • ceos-ids — Structured issue resolution with 5 Whys for root cause identification, discussion capture, and to-do generation.

A critical design choice: skills reference each other but never auto-invoke. The L10 skill mentions that ceos-ids can create issue files, but lets you decide when to switch. Loose coupling through mentions, not tight coupling through auto-invocation.

10:39 PM — Five documentation files targeting different audiences. The EOS primer translates business concepts into developer vocabulary. The data format spec translates the same content into a parsing contract. The skill-authoring guide sits at the intersection—it’s prompt engineering documentation in disguise as a contributor guide. A skill reference provides users with a quick overview of all five skills, including trigger phrases and examples.

10:52 PM — GitHub configuration. CODEOWNERS, three issue templates (EOS Process Request, Bug Report, Skill Improvement), a PR template with before/after sections, and custom labels. The issue templates are deliberately different — one for EOS practitioners (“I think the Rock scoring process should work differently”), one for developers (“setup.sh fails on Ubuntu”), one for skill improvements (“ceos-l10 should handle recurring agenda items”).

11:08 PM — Final cleanup. Removed companyos-integration.md which contained internal details about how CEOS would integrate with our private CompanyOS system. Archived the content to a Linear comment before deleting — git history preserves it, but a Linear comment makes it findable without git archaeology.


During this, my Claude instance learned a few things that have been incorporated into our local learning (a dynamic file I keep and use to update skills during periodic sweeps).

Writing skills are prompt engineering in document form. The biggest trap is the description field. If you write “manages Rocks in three modes with binary scoring,” Claude will follow that summary and skip the detailed process sections. The description should say when to use it (“use when setting, tracking, or scoring quarterly Rocks”), not what it does. The body has the what.

Templates need lifecycle awareness. The distinction between frontmatter and pure markdown isn’t about complexity — it’s about whether the file has state that changes over time. A Rock moves from on_track to off_track to complete. A V/TO document is edited but doesn’t have lifecycle states. That distinction determines whether a skill can programmatically query and manage the data.

Documentation for AI skills packages needs three layers. User-facing (what can I do?), contributor-facing (how do I add?), and machine-facing (what’s the contract?). Most projects get the first two. The third — the data format spec that makes YAML frontmatter a real, portable, parseable contract — is what makes the ecosystem extensible.

The .ceos marker pattern is underrated. Borrowed from .git and .npmrc, a zero-byte marker file at the repo root gives every skill a reliable way to find the CEOS repository regardless of where the user’s working directory is. No environment variables, no configuration, no hardcoded paths. Just search upward for .ceos.


CEOS is live at github.com/bradfeld/ceos . MIT license. Do whatever you want with it. If you are into EOS, come play. I’ll pay attention to any PRs and issues. Following are the next few things I’m going to create.

  • Process Documentation skill — The 6th EOS component. Document core processes as checklists with followability metrics.
  • People Analyzer skill — Right people, right seats. The GWC (Get it, Want it, Capacity to do it) evaluation tool.
  • Quarterly Conversation skill — The formal quarterly check-in between managers and direct reports.
  • Annual Planning skill — Year-end V/TO refresh and next-year Rock setting.

And, while I was trying to come up with a name for this, with Claude, it told me I need to include the following footer.

CEOS is an independent open-source project. It is not affiliated with or endorsed by EOS Worldwide.

  • βœ‡Feld Thoughts
  • Adventures in Claude
    My obsession with Claude Code continues. Amy is now referring to Claude as my other best friend. I realized my Claude posts were taking over this blog. Since I’ve been playing around with a bunch of things with it, I decided to create a place for me and Claude to collaborate on some experiments, many of which are self-referential as I explore new tools, technologies, approaches, and ideas. I’m also keeping a Claude Code diary. Claude is generating much of the content, which is dif
     

Adventures in Claude

16 February 2026 at 09:44
Feld Thoughts

Image featuring the title ‘Adventures in Claude’ with the subtitle ‘Notes from my adventures with Claude code’ on a dark background with a grid pattern.

My obsession with Claude Code continues. Amy is now referring to Claude as my other best friend.

I realized my Claude posts were taking over this blog. Since I’ve been playing around with a bunch of things with it, I decided to create a place for me and Claude to collaborate on some experiments, many of which are self-referential as I explore new tools, technologies, approaches, and ideas. I’m also keeping a Claude Code diary.

Claude is generating much of the content, which is different from what I’ve historically put on this blog, though a few of my prior posts had Claude’s help in the drafting stage. I decided I wanted a dedicated place for Claude’s writing, so they will go on Adventures in Claude . I’ll occasionally write about that stuff here, but most of it will go there.

I’m also going to use Adventures in Claude as a laboratory for some code things I’ll incorporate into the Intensity Magic platform. After many years of struggling (and paying too much money to have others help me with) WordPress themes, I decided to create a Theme Studio that allows me, or the user of the site, to modify the theme in real time. This was a huge unlock for me on a few dimensions, including the Landing Page editor I’d created for all the Intensity Magic apps and the booksite website creator I’ve been working on for AuthorMagic .

So, if you are interested in my Adventures in Claude , wander over there and subscribe to the RSS feed, or click here to get the posts sent to you by email .

  • βœ‡Feld Thoughts
  • Venture Deals Spring 2026 Course
    Registration for the Spring 2026 Venture Deals course is open. The course kicks off on March 2nd and, as always, is free. Since we revamped the course in 2022, over 32,000 people have enrolled. This version includes entirely new video content and two sections we added that I think are important — Diversity, Equity, and Inclusion in Venture Capital, and Mental Wellness in Entrepreneurship. The course is self-guided and based on our book Venture Deals: Be Smarter Than Your Lawyer and Ven
     

Venture Deals Spring 2026 Course

18 February 2026 at 09:17
Feld Thoughts

Homepage of the Venture Deals Spring Course 2026, featuring diverse smiling individuals and a description of the online course aimed at teaching venture capital and startup financing.

Registration for the Spring 2026 Venture Deals course is open. The course kicks off on March 2nd and, as always, is free.

Since we revamped the course in 2022, over 32,000 people have enrolled. This version includes entirely new video content and two sections we added that I think are important — Diversity, Equity, and Inclusion in Venture Capital, and Mental Wellness in Entrepreneurship.

The course is self-guided and based on our book Venture Deals: Be Smarter Than Your Lawyer and Venture Capitalist, now in its fourth edition.

Sign up at venturedeals.techstars.com .

  • βœ‡Feld Thoughts
  • Proud Uncle Alert – Sabrina Feld
    My brother Daniel sent an email to the family last Wednesday with the subject line “Proud Dad alert!” His daughter Sabrina had just built and launched a portfolio website from scratch. She didn’t use Squarespace or Wix. She built a custom Next.js site with scroll-triggered animations, a frosted glass navigation header, a custom image carousel with lightbox, and six page templates – all self-hosted on Netlify . Sabrina is a senior at Scripps College pursuing dual deg
     

Proud Uncle Alert – Sabrina Feld

27 February 2026 at 08:09
Feld Thoughts

Homepage of Sabrina Feld featuring a bold introduction, a grid of vibrant artwork, and a brief description of her studies at Scripps College.

My brother Daniel sent an email to the family last Wednesday with the subject line “Proud Dad alert!” His daughter Sabrina had just built and launched a portfolio website from scratch. She didn’t use Squarespace or Wix. She built a custom Next.js site with scroll-triggered animations, a frosted glass navigation header, a custom image carousel with lightbox, and six page templates – all self-hosted on Netlify .

Sabrina is a senior at Scripps College pursuing dual degrees in Science, Technology & Society and Fine Arts. She’s a product designer and fine artist – not a software developer. She built the entire thing using Claude Code .


She wrote a blog post about the process , describing what it’s like to direct an AI when you don’t know CSS. She “had to get precise in other ways” – using design vocabulary and visual references instead of code snippets. When bugs appeared, she described symptoms and shared screenshots rather than reading stack traces.

A line that stuck with me: “Vague prompts produced generic designs. Clear creative conviction produced something that felt like mine.”

This matches what I see building with Claude Code every day. The quality of the output tracks directly with the specificity of the input. “Make this look better” gives you something generic. “I want warm tones, editorial layout, and a buttercup accent color for hover states” gives you something that looks like a real design decision was made. Sabrina’s version of this was arriving at each session with strong opinions about what she wanted – gathered design references, prepared content, and a clear vision for the aesthetic.

She did over twenty feedback sessions across an eleven-day build, with about four to six hours of active work. The AI didn’t eliminate iteration. It made each round faster.


Go look at the site . Her art section showcases monotype, pastel, watercolor, and cyanotype work. The projects section covers her product management work at StackHawk , including a product launch she led end-to-end and research for an AI-driven security testing tool. The design is clean and typography-focused, with a dark footer and those buttercup accent colors she specified.

After I saw the site, I did what any uncle who is a nerd would do – I ran a security review. The results were solid. TLS configuration is correct, no sensitive files exposed, no source maps in production, and HTTP redirects to HTTPS correctly. I sent Sabrina a list of security headers to add and some DNS records worth configuring – about ten minutes of work that addresses the findings.


Sabrina is looking for roles in product design and product management after graduation this spring. Her portfolio is at sabrinafeld.com .

  • βœ‡Feld Thoughts
  • Migrating Feld Thoughts from WordPress to Hugo
    I’ve been blogging (first on TypePad, but shortly after on WordPress) since 2004. That’s 22 years of posts - 5,530 of them - plus books, films, running logs, and events. WordPress served me well for a long time. Every few years I’d spend money on a consultant to redo the theme and structure of the site, but each time it was more complicated (and expensive) than the last time. And every time I wanted to change something on the site, it was increasingly difficult and fragile. Gi
     

Migrating Feld Thoughts from WordPress to Hugo

8 March 2026 at 17:30
Feld Thoughts

I’ve been blogging (first on TypePad, but shortly after on WordPress) since 2004. That’s 22 years of posts - 5,530 of them - plus books, films, running logs, and events. WordPress served me well for a long time. Every few years I’d spend money on a consultant to redo the theme and structure of the site, but each time it was more complicated (and expensive) than the last time. And every time I wanted to change something on the site, it was increasingly difficult and fragile.

Given how deep I’ve gone into Claude Code, I started exploring different approaches for managing web-facing content. As part of figuring out the AuthorMagic website creator, I discovered Hugo . I experimented using it for AdventuresInClaude and liked it, so - I decided to see if I could use Claude Code to do a full migration of Feld Thoughts to Hugo.

A day later, Feld Thoughts has a new home. While the theme is simple to start, I have full control over it and will iterate on it (in Claude Code) to get it in a form that I like.


The target stack is straightforward. Hugo generates a static site from markdown files. Vercel hosts it. I’ve been spending a lot of time with Markdown files lately and I enjoy working with them much more than anything that requires formatting. No more database, no PHP, and no WordPress updates. Just markdown files in a git repo.

The first step in the process was getting the content out. WordPress has a built-in REST API at yoursite.com/wp-json/wp/v2. Claude wrote a TypeScript script that fetches all posts via paginated API calls, fetches all categories and tags, and converts HTML to Markdown using the Turndown library. It strips WordPress block comments, handles caption shortcodes, and decodes all the HTML entities WordPress loves to scatter through titles and descriptions - smart quotes, em dashes, ellipses.

The script uses a state file for resumable checkpoints. If it crashes or gets rate-limited, it picks up where it left off. This turned out to be essential.


A key decision was the content structure. I used Hugo “page bundles” to preserve the WordPress URL structure:

content/archives/2012/10/random-act-of-kindness-jedi-max/index.md

This maps directly to feld.com/archives/2012/10/random-act-of-kindness-jedi-max/ - the same URL WordPress used. Every old link still works. No redirects needed.

Hugo’s configuration makes this explicit:

[permalinks.page]
  archives = "/archives/:year/:month/:slug/"

If you have custom post types - I had books, films, running logs, and events - those need separate exports since they live at different API endpoints. Each gets its own content directory.


The media download was tricky. WordPress CDN URLs come in a bunch of variants - i0.wp.com/feld.com, www.feld.com, direct feld.com paths, all with various query parameters. The media script scans every exported markdown file for these URLs, normalizes them, and downloads the actual images.

The clever part is the reference counting. Images used by only one post get co-located in that post’s page bundle directory. Images shared by two or more posts go to static/images/ with year-month prefixes to avoid filename collisions. After downloading, it rewrites all the markdown URLs from WordPress CDN paths to local relative paths.

A separate cleanup pass fixes HTML entities that survived in the frontmatter. WordPress stores stuff like & and ’ in titles and descriptions. These need to be decoded to actual characters, then the YAML strings need to be re-escaped properly. This is the kind of thing that sounds trivial but breaks in surprising ways when you have 5,530 posts.


Claude wrote a verification script that fetches the WordPress sitemaps and compares every URL against the Hugo content directory. It reports the match rate and lists any missing posts. We iterated until it hit 100% accuracy.

For the theme, I used PaperMod as a starting point and forked it. The fork lets me customize branding, layouts, and features without worrying about upstream updates. I added client-side search via Pagefind, which is essential for a site this size. Pagefind builds a static search index at build time. I added data-pagefind-body to the single post template so it only indexes post content - not navigation, footers, or other chrome. This dropped the index from 10,000+ pages to about 5,500 and cut the search index build time from 32 seconds to 8 seconds.


Deployment is simple. Push the Hugo repo to GitHub, connect it to Vercel, and point the domain’s DNS to Vercel. Every git push to main triggers a rebuild and deploy. My 5,530 posts build in about 47 seconds. The whole deploy - clone, build, CDN upload - is under 3 minutes.

The DNS cutover required documenting every existing record first - MX records for email routing, SPF, DKIM, and DMARC for email authentication, CAA records for SSL. I recreated all of them in Vercel DNS after the transfer.

I also switched from Mailchimp to Kit for email subscribers. Kit has RSS-to-email automation that watches the Hugo RSS feed and sends new posts to subscribers automatically. No API integration needed.


If you’re thinking about doing this, three things matter most. First, URL preservation is non-negotiable. Get the permalink structure right from the start so every old link works without redirects. Second, the media download is where things get messy - WordPress CDN URLs come in many variants, and you need reference counting to handle shared images correctly. Third, write a verification script and run it obsessively until you hit 100%.


I’ve open-sourced the migration scripts at github.com/bradfeld/wp-to-hugo . They’re genericized - you configure your site URL and custom post types in a single JSON file and the scripts handle the rest.

The toolkit has five scripts, meant to be run in order:

  1. wp-export - Fetches all posts and pages via the WP REST API, converts HTML to Markdown, and writes Hugo page bundles with proper frontmatter (categories, tags, descriptions).
  2. export-custom-types - Exports custom post types (books, films, whatever your site has) to separate content directories.
  3. wp-media-download - Scans all exported markdown for WordPress media URLs, downloads the images, and rewrites the URLs to local paths. Handles the reference counting (single-use images go in the page bundle, shared images go to static/images/).
  4. fix-entities - Cleans up HTML entities that WordPress stores in titles and descriptions (&, ’, smart quotes, etc.).
  5. wp-verify - Fetches your WordPress sitemap and compares every URL against the Hugo content directory. Run this until you hit 100%.

To use the scripts you’ll need Node.js (version 20+) and a WordPress site with the REST API enabled (most have it on by default - check by visiting yoursite.com/wp-json/wp/v2/posts). You’ll also need Hugo installed to build the site, a GitHub repo to store it, and a hosting platform like Vercel or Netlify to serve it. The scripts handle the content migration - setting up Hugo, choosing a theme, and configuring deployment is on you, but Hugo’s quick start guide covers most of it.

The scripts are resumable - if one crashes or gets rate-limited, re-run it and it picks up where it left off.

The repo’s documentation has a detailed walkthrough of how each phase works, including the media URL normalization strategy and the reference counting logic.


Claude Code did all the heavy lifting. I described what I wanted and it wrote the scripts, configured Hugo, set up the theme, and handled deployment.

❌