About Services Consulting Workshop Events Work Blog Links Contact 🇵🇦 Español Book 10 free minutes →
← All resources Skill

How to add a blog to your website without WordPress

A blog with drafts, homepage text you edit from a panel and a secure login, with no WordPress and no plugins. It is the same architecture chiragx.com runs on.

How to add a blog to your website without WordPress

Free, in exchange for knowing who you are

Download it free

You get the whole thing at no cost. I only ask for your email so I can write later and ask how it went: if something did not work for you, I want to know. No spam.

One confirmation email and that is it. You can leave whenever you want.

Neither WordPress nor waiting on a developer

There are two common ways to run a business website, and both get tiring. The first is WordPress with twenty plugins nobody updates, hosting you pay for separately and a site that is slow on a phone. The second is a static site where every text change goes through the developer, and the blog never takes off.

There is a middle path: a lightweight CMS of your own, built for your site, with no server to maintain and no plugins. It is the same architecture chiragx.com runs on, and this skill guides you to build it with Claude Code on Cloudflare, where the free plan is enough to start.

What the skill builds

Four pieces, explained the way the skill explains them to someone who does not code:

  • The Worker is the receptionist. It hands over the files that already exist (CSS, images) and builds on the spot the pages that change: the blog, the panel and the editable homepage.
  • D1 is the filing cabinet: a database with your articles, the editable text, the form messages and the panel sessions.
  • R2 is the storeroom for the images you upload from the panel.
  • Secrets are the safe: the panel password and the email service key.

With that you get:

  • A blog or news section with drafts, private preview, clean URLs, a cover image, SEO fields and, if you need it, two languages linked to each other.
  • Editable sections: text, images and links on the homepage and other pages, plus blocks you hide or show without republishing the site.
  • An /admin panel with a secure login, a rich text editor and image uploads.
  • Technical SEO: canonical, Open Graph, structured data, a sitemap that updates itself, robots and real 404 pages.
  • A contact form that stores every message and emails you.

How you change the homepage without republishing

The design lives in a template with markers; what you change in the panel gets saved in the database, and on every visit the Worker puts the two together. The result: design changes with a deploy, and content changes from the panel, instantly.

And a golden rule: if the database fails or is empty, the page renders exactly as the template. Nothing breaks. Adding an editable field means adding a marker to the template; the panel builds the form on its own.

From blog to full site, all through MCP

A blog is the start. The skill also includes the guide to add the modules of a full site with the same pattern: downloadable resources, events with galleries, a podcast and an About page with press. That is how this site is built: blog, resources, events and About, all on a single Worker.

The best part comes after: running all of it from Claude through MCP. On chiragx.com, from a conversation with Claude I can save an article as a draft, upload its cover, change a line on the homepage, check the form messages and the emails people left on a resource, and confirm the site is responding well. To connect it, I sign in with my panel access: no tokens to copy. How to build a server like that is in how to build an MCP server.

Step 1. Install the skill

You need Node.js 22 or later (node -v), a Cloudflare account (the free one is enough to start) and your site's folder, even if it is just loose HTML files. Your domain gets connected at the end, taking care of your email records.

Download the file, unzip it and copy the folder into your skills:

~/.claude/skills/cms-en-cloudflare/

On Windows it is C:\Users\YOUR-USERNAME\.claude\skills\, with SKILL.md directly inside the folder. It ships with a starter kit (the Worker split into modules, the database schema, the panel and a verification script) that Claude adapts to your site phase by phase, explaining each part. It does not paste it all in at once.

Heads-up: the skill is written in Spanish. Claude reads it without trouble and works with you in English.

Step 2. Paste this first prompt

Open Claude Code in your site's folder, adjust the details and paste it:

I want to add a blog with an admin panel to my site, using the cms-en-cloudflare skill.
My site is in this folder (plain HTML files). My domain is mydomain.com and it is already
on Cloudflare; I have email on that domain and I do not want to lose it. English only.
I want to: publish articles with drafts, change the homepage title, subtitle and main
photo from the panel, and have the contact form notify me at contact@mydomain.com.

Work with me in phases: first review the folder and propose a short plan. Explain each
step in plain language, show me how to check that it worked and ask my permission before
creating anything in my Cloudflare account, deploying or touching the DNS. Never ask me
for passwords or keys in the chat: tell me which command to run in my own terminal.

How it moves forward

Ten phases, and none moves on without something you can see: a URL to open or a piece of text that changes.

  1. Diagnosis without touching anything, and a short plan you approve.
  2. Structure: public files in public/, the code kept apart.
  3. Database and images: D1 and R2, created with your permission.
  4. The Worker on your computer, to test before publishing anything.
  5. Public blog with SEO.
  6. Panel: login, editor, image uploads and messages.
  7. Editable sections on the homepage.
  8. Form and email.
  9. Production: deploy, live verification and your domain.
  10. Handover: a short note on how to sign in, publish, edit and back up.

The rules are not negotiable. Keys are typed by you, in your terminal, with npx wrangler secret put; never in the chat or in a project file. Every database command says whether it goes to your computer (--local) or to production (--remote). There is a backup before changing the production database, and a live check after every deploy, because local does not prove remote.

Security comes built in: a session cookie no script can read, five login attempts every 15 minutes, article HTML sanitized on save and queries that are always parameterized.

Images you upload from the panel go to R2 and are served from your domain. If you are missing a cover, generate it with xyCloser, my platform, through MCP from Claude Code itself (the command is in the landing page guide) and upload it from the panel.

What you get at the end

  • Your site on your domain, with a blog, an editable homepage and a panel at /admin.
  • Articles with their own title, description, social image and structured data, which join the sitemap on their own when you publish them.
  • A form that stores every message in your database and emails you.
  • A script that verifies production after every deploy.
  • A handover note: how to sign in, publish, edit the homepage, read messages, change the password and run the monthly backup.

On cost: static files are served free with no limit, and the Workers free plan includes 100,000 requests a day for what the Worker builds. For a business site that is just starting, that is enough.

Common mistakes (I learned several in production)

The skill documents 25 cases with symptom, cause and fix. These are the ones that cost the most time:

  • You edit the homepage in the panel and nothing changes. There is a static file for that URL and Cloudflare serves it before calling the Worker. The template lives outside public/.
  • Blog pages show the homepage. The "single page application" option keeps those visits from ever reaching the Worker. It gets removed.
  • The migration does not show up in production. --remote was missing and the change stayed on your computer.
  • Half an article ended up inside a code block. It happened to me: an unescaped < inside a <pre> swallowed everything after it. Inside a code block you write &lt;.
  • A whole script stops working over a detail. That one happened to me too: a backslash inside a Worker template broke an entire form. That is why the panel JavaScript lives in separate files.
  • Suddenly every dynamic page fails. The D1 free daily quota is per account: another project on the same account used it up and everything dynamic went down until midnight UTC. The kit answers with a clear notice, and the diagnosis comes from npx wrangler tail --status error.
  • You cannot connect the domain. There is already a record for that name. Only the old site's web record gets deleted, never the email MX or TXT records.

Who it is for

People who already have a site, even plain HTML files, and want to publish articles and change their text without depending on anyone. And people who already run a site on Cloudflare with Worker, D1 and R2 and need to maintain or fix it: the skill works for that too.

It is not for an online store, or for someone who never wants to open a terminal: there are commands you run yourself, like the login and the keys, and that is on purpose.

If you want us to build it together

At the in-person workshop, the CMS is part of the website block for those who move ahead. And if you want us to build it for your company, with your modules and your MCP, book a conversation.

Free, in exchange for knowing who you are

Download it free

You get the whole thing at no cost. I only ask for your email so I can write later and ask how it went: if something did not work for you, I want to know. No spam.

One confirmation email and that is it. You can leave whenever you want.

Stuck on a step?

Write me and we look at it

The resource takes you from zero to a hundred on its own, but some steps land better in a conversation. If you got that far and something is off, send me your site and I will tell you what is going on.

Book a call →

Blog · Custom CMS · Cloudflare · MCP · Claude Code