I Built a Second Brain on WordPress: Here’s What Actually Happened

,

It started with mymind.

A while back, someone on our design team at Automattic shared a tool called mymind.com. I shared it with my daughter, and she just thought it was amazing. She loved the visual design, the way you could just start grabbing stuff from the internet and it would intelligently organize itself into what are essentially personal mood boards. The only drawback was that it costs money and it’s not open source. So, in the spirit of everything open source and my passion for WordPress, I thought: is there a way I could create a similar experience with WordPress?

That idea sat in the back of my head for a while.

Then the Karpathy LLM wiki started going viral. It’s no secret by now that Andrej Karpathy’s concept of an LLM-maintained wiki has become a pretty interesting strategy for people looking to compound their AI learning and build a second brain. I was seeing it everywhere. YouTube creators breaking it down. Posts all over LinkedIn. The timing was perfect because it gave me a framework for something I’d already been wanting to build. Not just a place to save stuff, but a system where what you capture actually compounds over time.

So I decided to build it. That’s when things got messy.

The spiral

I went straight into the Claude desktop app and started a project. I started capturing links and ideas for everything: the possible tech stack, UI components, database options, all of it. Ironically, I was already doing the thing I wanted to build. I was capturing, saving, and cataloging ideas and resources. I just didn’t realize that yet.

Instead, I was talking with Claude saying, “Help me write a PRD. Here’s my tech stack: WordPress Studio for local development, GitHub, Vercel, Next.js, shadcn/ui for components.” I was going back and forth on whether this should be a headless REST API approach with WordPress because I wanted it to feel like a clean, modern app. Should I just use NotebookLM? Is that the tool that already exists? Should I use Obsidian? What I really wanted was what I was seeing people share. The Karpathy wiki with Obsidian. The markdown files. The linked notes. I just wanted to replicate that with WordPress.

I kept going in circles. It was really frustrating. I felt like I wasn’t going to be able to build this thing; or it already kind of existed and I was behind; or this was just stupid and why was I even doing it.

The breakthrough

Eventually, Claude kind of called me out. It was basically like: you just need to start capturing stuff and putting it into what’s going to be your system. Just the MVP. The concept is simple. You take a link, drop it into Claude, and say “capture this as a note” or “this is a potential project” or “this is a GitHub repo I want to come back to.” Just start capturing, because that’s the thing you’re actually trying to solve.

That was the moment everything clicked. I already had a WordPress.com site. WordPress.com had already released an official Claude Connector; that’s the integration that lets AI agents read and write to your site through the Model Context Protocol. I just needed to connect them and start.

So I did. I started working on getting items input into the site, and within no time I had 15 items. Then 30. Then 42. It compounded really quickly. The structure was lightweight but intentional from the start. With help from Claude, we created a capture skill that walks through a simple framework every time I drop something in. Is this deep research? A seed idea? A future project? Just a note? The system didn’t need to be fully fleshed out yet. I just needed the proof of concept: Claude reviews what I share and posts it cleanly to the site through the MCP.

I have a single project in the Claude app with one instruction file. That’s it. Simple and lean.

“I’m looking at a terrible frontend”

The capture system was working. Items were flowing onto the site. But the site itself? It looked like a blog. A default WordPress blog. That’s not what this is supposed to feel like. A second brain should feel like a wiki, a command center. Not a reverse-chronological list of posts.

So I typed this into Claude:

Maybe an issue I have right now with utilizing WordPress in the manner we are is that I’m looking at a terrible frontend. It doesn’t feel like a legit, modern wiki. What if I stopped here and created a clean block theme for our site? We have enough content now. What do you think?

Claude gave me a really solid breakdown of what a wiki theme concept could look like. I took that and turned it into a planning document; a block theme brief that described exactly what I wanted:

Dark. Sharp. Interactive wiki, not a blog. Think command center meets Wikipedia meets mymind.com. Dense, scannable, interconnected. A card grid on the homepage with filtering by tag. A two-column single post layout with a contextual sidebar showing related items. Tags as the primary navigation, not a menu. Near-black background, high-contrast text, monospace accents. And explicitly: this is NOT a blog with posts in reverse chronological order. NOT soft, rounded, pastel. NOT cluttered with generic widgets.

I fed that brief into Claude using the WordPress.com design skill MCP. This is a plugin that generates HTML design mockups based on your input. What I really like about the design skill is it gives you three concepts, three design directions. All three were strong, but I wanted to adjust the font combination, so it took maybe two rounds to nail the vibe1.

From there, I iterated on the mockups for the home page and the single post template. The design skill generates actual HTML files that you can open in your browser. I dropped them into a mockups folder in my WordPress Studio project so I could reference them side by side when building. If you’re building any sort of theme or website of substance with AI, this is the approach I’ll take every single time: fine-tune the HTML mockups to get as close as you can before handing off to Claude Code for the actual build.

Building the theme

I started in Claude Cowork2; that’s where the WordPress.com site building plugin works right now. I gave it the revised HTML mockup file along with the brief. The first shot of the theme scaffold was actually better than you’d think. It got the aesthetic, the colors, and nailed all the core parts of theme.json really well. The layout was there.

From there, I moved into VS Code with Claude Code for the rest of the build. This is where the real iteration happened. Refining block markup, fixing template issues, working through the QA process. Towards the end, something really awesome happened: VS Code released an integrated browser, so I could browse the local site running on WordPress Studio right inside VS Code. Everything in one spot. The code, the AI, and the live preview, all in a single window.

But you can immediately tell there’s nuance to how you build a proper block theme with proper block markup.

From the get-go, I leveraged Claude Code plugins like GStack for QA and planning mode, Superpowers for structured development discipline, and the Block Markup Code Parser MCP, which has been by far the best MCP connector for building WordPress sites as block themes. I also used Rich Tabor’s Dark Mode Toggle Block plugin to add light and dark mode support to the site. The dark mode implementation uses CSS custom properties; all the colors are defined as variables and get swapped under a class toggle. The plugin handles the toggle, and the theme handles the styles. It’s a clean, simple pattern.

Very quickly I was happy with the direction, but you’re immediately hit with things that are really dumb. For instance, the left sidebar navigation was custom HTML blocks. Just raw HTML. That’s the type of thing you see throughout an initial AI build with WordPress.

If you know WordPress enough, you can start fixing these right away. “This custom HTML block should be a navigation block. This row block should actually be a group block. You should be using a column block here.” You can get on track quickly.

But this is where I want to be honest, because this is where people will lie to you.

The lie

When you’re watching the AI hype people on YouTube or scrolling LinkedIn, you see “I built this amazing, beautiful website in one shot.” Maybe you can, when you’re using Next.js and Astro and Tailwind. Maybe. But it’s going to be a flashy landing page. It’s not going to be something real that you can actually launch and maintain.

WordPress comes with everything you need. The CMS, the architecture, the backend, the SEO, everything. But you’re not going to get it in one shot.

You need to have knowledge and understanding and experience with WordPress and block themes. You’re still going to go extremely fast; faster than you’ve ever thought you could develop a theme. I am not a developer. I was literally building a theme that I could never have built previously. But it took the better part of a weekend, chipping away at it here and there while doing other things around the house. Not one prompt. A weekend.

The build went through a structured QA process that scored 52 out of 100 on the first pass and documented 18 specific issues. We created a four-phase polish plan and worked through fixes systematically. Things like: sticky positioning doesn’t work on template parts the way you’d expect. Block markup is unforgiving; one missing class in a block comment and the whole layout breaks silently. Designs that were trivial in HTML required creative block compositions. None of these were blockers, but they were real work.

What I learned

I keep getting into the trap, and I hope I can help others avoid it: stop trying to over-architect something before you just start building.

I was hoping for the perfect app. I had this vision of a fully realized personal LLM with vector search and a custom React frontend and a browser extension. That vision is valid. But I needed to take it down to the base principle. The base principle is: just start capturing stuff. Get it into WordPress. Figure out the flow. Don’t worry about how quickly you can build the Karpathy LLM wiki and look like some brilliant person. I’m not brilliant, and you’re not going to get there that fast. It’s not real. It’s not possible.

The second thing I want people to hear: you can build things with WordPress. You may think it’s time to abandon WordPress and go use markdown files, or you can only vibe code with Lovable or Bolt, or everything needs to move to Astro. WordPress is still the foundation of a massive portion of the internet. You can’t change that overnight. What we need to do is start embracing again what WordPress is special for. It can be anything you want it to be. That’s what I’ve been trying to do with this.

The last thing: just start tinkering. Start playing with ways to use WordPress that you’ve never thought of before. In the end, this actually comes down to a first principle, and it’s simple. I’m just publishing posts. They’re just getting categorized. But instead of me doing it manually, it’s happening through an agent. I’m seeing things, I’m thinking about stuff, and it captures it for me. It is literally my mind. It is going to be my second brain.

Start doing that yourself with WordPress.

What’s next

This is part one. Part two is about how the system starts to compound. Here’s what’s coming:

I’m going to release the theme as open source so anybody can build their own version of this and have a starting point.

I need to figure out how the system can start learning. Not just capturing items, but updating, cross-referencing, and building into an actual knowledge base that gets smarter over time.

I’m starting to explore what Pinecone is and that idea of higher-level semantic search across all of your data. I want to take that concept and bring it into WordPress. The Abilities API is coming into its own, and there’s the WordPress AI plugin already available. Whether it’s that plugin or WordPress 7.0, whichever comes first, I want to build a plugin that creates an integrated chatbot directly inside my site. The whole thing living in a single ecosystem.

And the thing I loved about mymind and Obsidian? The browser extension. The Obsidian Clipper. People might forget that WordPress used to have this thing called Press This3. It was a browser extension where, if you were on a website, you could hit Press This and it would generate a post on your site. It worked once. It’s going to work again. Right now I’m copying a link and pasting it into Claude and saying “add this to my site,” which is fine. But the next evolution is a new browser extension. Maybe it’s still called Press This; why not revive it. Have it work the way the Obsidian Clipper and the mymind extension work. Capture images, videos, quotes, all of it, in a better format, directly to your site.

It worked once. It’ll work again. That’s the whole point of WordPress.


Note: The personal LLM site is private right now. I’m still thinking through how to make parts of it public while keeping internal and work-related captures redacted; whether that’s private post statuses, a separate visibility layer, or something else entirely. More on that in part two.

  1. I found it really valuable to bounce between LibreChat for internal references and brainstorming, Claude chat, and Claude Code — leveraging multiple AI conversations as different workspaces. ↩︎
  2. You can also use the WordPress.com MCP site building skills in Claude Code and in Terminal, but the plugin I used works directly within Cowork, which is a really nice visual environment. ↩︎
  3. The Press This plugin was actually updated about 3 weeks ago at the time of this writing. Maybe it’s time for a fork or a new contribution. ↩︎

Discover more from Derek Hanson

Subscribe now to keep reading and get access to the full archive.

Continue reading