Dev.to WebDev 🛠 Dev 👁 0 📖 7 min read

I’m Moving My Developer Portfolio From WordPress to EmDash — Here’s Why

For years, WordPress has been the obvious answer to one question: “How do I get a website online?” But I started asking a different question: “What should a developer portfolio look like in an AI-native world?” That

For years, WordPress has been the obvious answer to one question:

“How do I get a website online?”

But I started asking a different question:

“What should a developer portfolio look like in an AI-native world?”

That question is why I’m moving MartinsAI from WordPress to EmDash by Cloudflare. And no, this isn't another “WordPress is dead” article. WordPress isn't dead. It remains one of the most successful publishing platforms ever created. The problem is that my requirements have changed. And I suspect the requirements of many developer portfolios are changing too.

I'm Martins Michael, a senior full-stack engineer and AI architect. My portfolio, MartinsAI, is where I document what I build, what I'm researching, what I'm learning, and the products I'm working on. It has gradually become more than a résumé. It's becoming a living engineering portfolio. I use it to showcase projects, publish technical writing, explain ideas around AI and software architecture, document experiments, and communicate what I can actually build. That means my website needs to behave less like a traditional publishing site and more like a developer-owned product. And that's where WordPress started feeling increasingly uncomfortable.

WordPress is incredibly good at getting you from zero to publishing. Install WordPress. Pick a theme. Install some plugins. Create pages. Start writing. Done.

But once you are a developer who wants complete control over the application architecture, the experience changes. You start accumulating decisions:

Which theme?

Which page builder?

Which SEO plugin?

Which cache plugin?

Which security plugin?

Which image optimization plugin?

Which analytics plugin?

Which form plugin?

Which backup plugin?

Which editor?

Which hosting provider?

Which CDN?

Which plugin conflicts with which other plugin?

Eventually, the website starts looking less like software you own and more like a collection of software you have assembled. That's fine for many websites. But I want something different for MartinsAI. I want a website I can engineer. That's an important distinction. I'm not interested in rebuilding WordPress from scratch just for the sake of it.

I'm interested in having a modern foundation where:
the frontend is code
the content is structured
the deployment is modern
the infrastructure is programmable
the content workflow is extensible
AI can interact with the CMS
performance is a first-class concern
and I don't need a plugin for every basic capability

This is where EmDash became interesting.

EmDash is an open-source CMS from Cloudflare built around Astro and modern TypeScript.

At first glance, it sounds like another headless CMS. It isn't quite that simple. The interesting part is the architecture. EmDash brings the CMS into the same application environment as the website rather than treating the CMS as an entirely separate system that exists somewhere else and feeds content through an API. It also provides the things you'd expect from a serious CMS:

  • Structured content.
  • Collections.
  • Media.
  • Drafts.
  • Revisions.
  • Scheduling.
  • Taxonomies.
  • Menus.
  • Search.
  • APIs.
  • CLI tooling.
  • And, increasingly interesting to me, MCP.

This is where the migration stops being a normal CMS migration. EmDash includes an MCP server that allows AI clients to interact with the CMS. Think about that for a moment.

Traditionally, my workflow looks something like:

Idea → Me → WordPress → Editor → Publish

An AI-assisted workflow can become:

Idea → Agent → CMS → Review → Publish

The distinction matters.

I'm not looking for an AI that autonomously publishes everything I write. I'm interested in an AI that can help me operate the system.

For example:

“Find my recent articles about AI agents and suggest three related topics I haven't covered.”

Or:

“Turn these project notes into a first draft.”

Or:

“Find relevant projects and suggest internal links for this article.”

Or:

“Review my existing content and identify outdated technical information.”

Or:

“Create a draft from this research and leave it unpublished for my review.”

That's much more interesting than simply asking ChatGPT to write a blog post. The AI isn't just generating text. It can interact with the content system. The traditional CMS was designed around one primary user: the human editor. Then came headless CMSs. Now developers could build custom frontends while the CMS provided structured content through APIs. The next step seems obvious to me:

CMSs that are designed for humans and agents.

Not AI-generated content factories. Not websites where an agent has unrestricted access. But systems where agents have controlled capabilities and can participate in legitimate workflows. That's a much more interesting future.

Why Astro?

The other major reason I'm interested in EmDash is Astro. A developer portfolio doesn't need to behave like Gmail. A blog post doesn't need a huge JavaScript application running in the browser. A project page doesn't need to hydrate half the application just to display text and images. I want MartinsAI to be fast by default. Astro's architecture makes a lot of sense for that kind of website. It allows the site to ship mostly HTML while still giving me the ability to introduce interactive components where they actually provide value. That's exactly the balance I want.

There's another part of the stack that makes this migration particularly interesting. EmDash is designed to work with Cloudflare's platform, including Workers, D1 and R2. That means I can experiment with an architecture where the application, database, storage and edge infrastructure fit together much more naturally. For a global developer portfolio, that's a compelling proposition. I'm not running an airline. I'm not processing millions of financial transactions through my personal website. But that's precisely why a portfolio is such a good place to experiment. If something breaks, I haven't taken down someone's payment infrastructure. I'm experimenting on my own.

Why migrate now?

Because the MartinsAI website is becoming more important. I'm building products. I'm researching AI-native architectures. I'm writing about engineering. I'm exploring agentic systems. I'm building things like BluuPay and other AI-powered products. The portfolio needs to evolve with me. A static résumé can't do that. And a CMS shouldn't become the thing that slows the evolution down. I want to be able to wake up, have an idea, build something, document it, and publish it without fighting my publishing stack. I'm not simply going to copy every WordPress page into EmDash. I'm using the migration to rethink how MartinsAI represents my work. The new architecture will revolve around things like:

Projects

What I've actually built. Not just screenshots and buzzwords. The architecture, technologies, challenges and lessons.

Writing

Technical articles covering AI, software architecture, developer tooling, automation, infrastructure and product engineering.

Experiments

Things I'm building specifically to learn something. Because not everything needs to become a startup.

Ideas

Products and technologies I think should exist.

Services

How I can help companies build AI-native products and modern software systems.

Now

What I'm currently building, learning and researching. That last one is important. A developer's portfolio should not be frozen in time. It should evolve as the developer evolves.

I'm not leaving WordPress because it's bad

This distinction matters. WordPress solved the problem it was designed to solve extremely well. If I needed to launch a marketing site for a non-technical business tomorrow, WordPress would still be on my shortlist. If someone loves WordPress, they don't need to migrate because I did. This isn't a technology religion. It's architecture matching requirements. My requirements have changed. I want:

  • less plugin dependency.
  • more control.
  • better performance.
  • modern TypeScript tooling.
  • structured content.
  • developer-first workflows.
  • AI-native content operations.
  • edge-native infrastructure.

And that's why EmDash makes sense for MartinsAI. There is a bigger reason I'm doing this. I think we're moving from websites that are merely published to websites that are increasingly operated. And the people operating them won't always be humans clicking buttons in an admin dashboard. Agents will eventually help manage content, SEO, internal linking, research, media, analytics, localization, documentation, experiments, publishing workflows. But humans should remain in control of consequential decisions. That's the model I'm interested in:

AI does the heavy lifting. Humans keep the approval boundary.

And I want MartinsAI to become a small, real-world experiment in that philosophy.

So, I'm moving MartinsAI from WordPress to EmDash.

Not because WordPress failed, but because I changed. My work changed, the web changed, and the tools available to developers changed. I'm interested in seeing what happens when a personal portfolio is built with the same principles I'm applying to the products I build:

modern infrastructure, structured data, fast interfaces, programmable systems, AI-native workflows, and humans in control.

The portfolio shouldn't just tell people that I build modern software. It should be evidence. So this migration is more than a CMS migration. It's another project. And, like everything else I build, I'm going to ship it and see what happens.

MartinsAI → EmDash.

Let's see what the next version looks like.

Martins Michael
Senior Full-Stack Engineer · AI Architect · Product Builder
I build what's next.
martinsai.name.ng

📰 Read the original article on Dev.to WebDev

Originally published by Dev.to WebDev. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.