Why I Built Slim Minima: A CMS for Vibe Coders and Marketers

The honest story of why I stopped fighting WordPress, Payload, and Tina, and built a minimal CMS for vibe coders and the marketers who have to run the site.

A laptop, coffee, pencils, and crumpled paper on a plain wooden desk, representing the drafting before building a CMS

I have been building for close to half a year now, mostly with Claude Code, Codex, and a handful of other CLI agents.

The capabilities of these agents are genuinely good. Claude Code, Codex, Kimi, Grok, and the rest can put together a fully built website in minutes. Real layouts, real copy, decent visuals. Pair a coding agent with a design tool like Google Stitch or Claude Design and it feels like working with a small web team, a designer and a developer, sitting in your terminal.

The build was never the hard part. The hard part is handing the result to someone who has to live with it.

That is the question that kept nagging at me. What happens when I ship this to a client who needs to maintain it? Most clients do not write React, and they do not know how to point a CLI agent at their own site to make a change. They just want to do simple things: tweak a headline, swap a hero image before a campaign, update a few tags, and push out a blog post. A vibe-coded Next.js site looks finished, but the person running it cannot touch the code. So the idea of building on a CMS, instead of raw components, stayed on my mind for months.

What I tried first

The obvious starting point was WordPress. It runs a large share of the web for good reasons, so I gave it a fair go.

It did not fit. Two things in particular.

First, it is more complex than the job needs. A simple marketing site ends up carrying a page builder, a forms plugin, a caching plugin, an SEO plugin, and a security scanner before you have written a word. I wrote more about that in why WordPress does not work well in the AI age, so I will not repeat the whole argument here.

Second, it runs on PHP. Most coding agents can write PHP, and plenty of SEO people can read it, but it is not where the agents are most comfortable. When I am working in Next.js and React all day, dropping into a PHP plugin chain to change something small breaks the rhythm. The tooling, the examples, and the agent's instincts all point the other way.

So I looked at the open source alternatives. I tried Payload and Tina. Both are real projects built by capable people, and for some teams they are the right call.

For me, they did not work. The setup instructions in the repos were vague in places, at least to me. When I pointed a CLI agent at them, it made a lot of mistakes on the first pass, and I spent more time untangling the configuration than building anything. Some of that is my own gap in understanding those platforms, and I will own that. But if you are vibe coding, the whole point is that the path should be smooth and clean. It was not.

The other thing I kept running into was bloat. A lot of these systems carry features I will never use, layered on top of features I do not understand yet, and the part I actually needed was buried somewhere underneath.

What a marketer actually needs from a CMS

I came at this as a marketer first, so I stripped the requirement down to what the work really demands.

  • A place for clients to edit their own content, in plain language, without code.
  • Small layout adjustments, moving a block, adding a table, dropping in a new section. Not a full page-builder, just minor shifts.
  • Control over the things that affect search: meta titles, meta descriptions, and schema markup they can customize.
  • Revision history, so a bad edit is one click from being undone.
  • A contact form that is just there, not a plugin you hunt down and install.

That last one is a small jab at WordPress, but I mean it. A contact form is table stakes for a marketing site. It should not require a separate package with its own update schedule and its own security surface.

That is roughly the whole list. The basics a marketer needs to run a site, and not much else.

Growth should not tax the fundamentals

Here is the part I cared about most. As a site grows, that growth should not come out of the things that matter.

On a typical plugin-driven stack, every new feature has a cost. Page speed drops. The SEO setup gets more fragile. The user experience gets heavier. You add one capability and quietly pay for it somewhere else.

I do not think that tradeoff is necessary anymore. In the vibe coding age, most of those features can be built natively, into the codebase, when the client actually needs them. An agent writes the block, you review it, you ship it. No extra dependency sitting in the request chain, no someone-else's-plugin slowing the page down. The site stays fast and clean as it grows, because nothing was bolted on that did not belong there.

So I built it

After a few months of going back and forth, I decided to stop shopping and build my own. A CMS made specifically for vibe coders and the marketers they build for. Something that gives a Claude Code or Codex user exactly what they need and nothing they do not.

The name is the idea. Slim Minima is an anagram of minimalism. Slim, as in the right fit: not too much, not too little. The experience should be clean and pain-free. Adding a CMS to your vibe-coded project should not raise your stress level. It should lower it, because the part you dreaded, the handoff, is now handled.

Under the hood it is Next.js, TypeScript, and Postgres, with Cloudinary for media. Pages are built from typed blocks. The blog stores posts in the database and serves them as fast static pages. When you need a feature, you write TypeScript and register a block, and it appears in the admin editor your client uses. There is no plugin directory, because there is no need for one. If you want the longer walkthrough, I wrote how to build a client-ready website with Slim Minima.

The marketing basics are built in too. A client can edit the meta title and meta description, and customize the schema markup, for every page and post directly from the CMS, without opening the code.

The honest limitations

Slim Minima is not a drag-and-drop builder. Clients can edit content block by block, adjust small parts of a layout, and publish posts without touching code, but they cannot rebuild a page from scratch on their own the way they could in a mature page builder. For deeper changes, you point an agent at the codebase and describe what you want.

It also assumes you are comfortable working with an AI agent and a Next.js repo. If you have never deployed a Next.js app or wired up a database, there is a learning curve before the smooth part starts.

If your client needs a full visual builder they can drive themselves, or a large ecosystem of ready-made features, WordPress is still the better answer. That is a real tradeoff and worth saying plainly.

Who this is for

  • Vibe coders who build sites with Claude Code, Codex, or similar agents and want to hand clients something they can run.
  • Marketers who want to edit pages, write posts, and manage media without waiting on a developer.
  • Anyone who wants a fast, search-ready site that does not slow down every time it gains a feature.

Who should skip it

  • Clients who need full drag-and-drop layout control on their own.
  • Teams already running WooCommerce or a deep plugin ecosystem they depend on.
  • People who would rather not work with an AI agent or a code repo at all.

Frequently asked questions

What is Slim Minima?
It is a free, open source CMS built for vibe coders and the marketers they build for. You vibe code the site and the custom blocks, and the client gets an admin panel to edit pages, write posts, manage media, and read contact form submissions without code.

Why not just use WordPress?
WordPress works, but for a new marketing site it carries complexity and a plugin model that slows pages down, and it runs on PHP rather than the TypeScript stack most coding agents handle best. Slim Minima keeps the site on Next.js and builds features natively instead of through plugins.

Why not use Payload or Tina?
They are solid projects and a good fit for some teams. In my own experience the setup was harder than I wanted when working with a coding agent, and they carried more than I needed. Slim Minima is a narrower tool aimed specifically at the vibe-code-then-hand-off workflow.

Can a non-technical client really run it?
Yes, for content. They edit pages block by block, publish posts, and manage images from the admin panel. What they cannot do alone is restructure a layout from scratch, which is where you or an agent steps back in.

Is Slim Minima free?
Yes. It is open source and self-hosted, with no license fee and no paid tier.

Related reading

My verdict

I did not set out to build a CMS. I set out to stop dreading the handoff. After WordPress, Payload, and Tina, building my own was the path that actually fit how I work now: a coding agent, a typed codebase, and a client who needs to run the site after I move on. If that sounds like your situation, Slim Minima was built for it.