Free & open source
Hand your client the site, not the code.
CraftPages opens the plain-HTML site you built and lets your client edit it like a document: text, images, SEO and a blog in your own design. Nothing is written until they click Save all, and the layout stays yours. It publishes to Cloudflare or any web host over FTP.
Editing your own site? It works the same, and it's free either way.
Go on, click the headline and type
Fresh sourdough, every morning at 7
Slow-fermented for 36 hours, baked in the old brick oven on Mill Street.
Order for tomorrowCountry loaf
€6.50
Rye & seeds
€7.00
Cinnamon knots
€3.20
A working copy of the editor. Change the headline, add or remove a loaf: nothing is written until Save all, and Discard brings it all back.
That's the whole job for your client. Do it on your own site: download free
Your HTML is the site.
Hand-coded, exported from a builder, or made by an AI: static sites are fast, cheap and safe. Changing one was the hard part. CraftPages is the editor they were missing.
- No databasePosts, pages and settings are files in your folder.
- No serverNothing to install, update or patch on your host.
- No lock-inUninstall the app and the site is exactly as it was, plus your edits.
Set it up once. Hand it over.
-
You open the site folder
Any plain-HTML site: hand-coded, exported from a builder, or made by an AI. Nothing to convert, no templates to write, no git needed.
-
Your client clicks and edits
Text, links, images, SEO and blog posts, right on the page. The header and footer change on every page at once. The layout and the code stay as you built them.
-
They publish
One click to Cloudflare, free, or to their hosting over FTP or SFTP. Only changed files upload, and every publish is kept so you can put an older one back.
Safe for them. Complete for you.
What your client gets
- Edit on the page
- Click a heading or paragraph and type. Only the bytes they change are touched; the rest of the file stays identical.
- Add, copy, reorder
- Cards, team members, menu items: duplicate one, edit it, move it, delete one. Your markup, your classes.
- Images that behave
- Uploads are resized, stripped of location data, and saved as JPEG when that's smaller.
- Nothing to break
- Edits wait as drafts until Save all, survive restarts, and every save can be undone.
What you get
- Many sites, many accounts
- Each project publishes to its own Cloudflare account or server: yours, or a client's.
- SEO checks
- Titles, descriptions, social images, headings, alt text, broken links and orphan pages, each with a link to the fix.
- Several languages
- A folder per language, real pages linked with hreflang, a status for every translation and a language switcher in your own header.
- Site search
- A fast search box for visitors, built from the pages. No service to sign up for; it's a few static files.
- Code when you need it
- A page's HTML, CSS and JS in the editor from VS Code, with a live preview. Off for clients unless you turn it on.
A blog that looks like the rest of the site.
Pick a page for posts and one for the list, then point at where the title, date, cover and cards go. Posts are written in the WordPress block editor, and pasting from Google Docs just works.
CraftPages builds every post, the list with your own pagination, tag pages, an RSS feed and the sitemap, as plain HTML pages in the folder. Give a post a future date and it goes live then, right from your computer.
This site's blog is made the same way. Read the blog
Coming next: schedule page edits too, like a promo that goes live at 8 AM and comes down when the sale ends.
Publish to Cloudflare, or the hosting they already pay for.
Cloudflare hosts static sites for free, and CraftPages sets up the Worker for you. Already on shared hosting, cPanel or a VPS? Publish over SFTP, FTPS or FTP instead.
Only changed files upload, images before pages. Files CraftPages didn't upload are never deleted. Every publish is kept in the project's history, so an older version is one click from coming back.
Want faster pages? CraftPages can minify styles and scripts, cache them for a year, put small stylesheets into the pages and host Google Fonts on the site itself, all in the copy it publishes. Your files stay as you wrote them.
Several computers on one site? Sync keeps them in step through your own Cloudflare account or server. It's in beta.
Your AI changes the templates. You approve every change.
Words and pictures are yours to edit by hand. For structure (a new section, a pricing table, a whole new page) connect Claude Code, Claude Desktop, OpenAI Codex or another MCP client. It reads your site, sees what you clicked, and proposes changes.
You get a diff and a live preview, then accept, reject or revert. Nothing is written until you say so, and CraftPages never asks for an AI key.
How it compares.
| CraftPages | Page builders | Git-based CMS | WordPress | |
|---|---|---|---|---|
| Works with the site you already have | Yes | No, rebuild it on the platform | Needs a generator and git | No |
| Safe to hand to a client | Yes: drafts, Save all, undo; the layout stays yours | Yes, inside their editor | For content fields, after a build setup | With care: plugins and updates |
| What you end up with | Your own HTML files | A site on their hosting | Generator output | PHP and a database |
| Blog in your design | Yes, built from your pages | Yes | Yes, with templates | Yes, with a theme |
| Where it can live | Cloudflare (free) or any host over FTP / SFTP | Their hosting only | Static hosts with a build step | PHP hosting |
| Server to maintain | None | None, it's theirs | None | Yes |
| Price | Free, open source | Monthly | Free to paid | Free, plus hosting |
Questions.
Can my client use it?
Yes, that's what it's for. You set up the project and the hosting once; they install the app, open the folder and edit words, images and posts. The layout and code stay as you built them, and the code editor is off unless you turn it on. Each project can publish to its own Cloudflare account or server, so the hosting can be in the client's name.
Where can I host the site?
Anywhere that serves static files. Publishing is built in for Cloudflare, whose free plan hosts static sites at no cost, and for any web host with an FTP or SFTP login. Setting up Cloudflare takes about five minutes: here's how. For a web host, see publishing over FTP or SFTP.
Can two people, or two computers, work on one site?
Yes. CraftPages warns before anyone publishes over a version it didn't make, and sync keeps several computers in step through your own Cloudflare account or server, showing who has which page open. Git works too. How to share a site.
What kind of sites does it work with?
Plain HTML sites: hand-coded, exported from a builder or design tool, or generated by an AI. Sites built with a generator (Hugo, Astro, Eleventy) are better edited in their source files, since CraftPages would edit the output.
Is CraftPages a flat-file CMS?
In spirit: there's no database and your content lives in files. But a flat-file CMS like Grav or Kirby runs on a PHP server. CraftPages runs on your computer and your site stays fully static, so there's nothing to install or patch on the host.
Why does Windows warn me when I first open it?
The Windows installer isn't code-signed yet: click More info → Run anyway. The Mac app is signed and notarized by Apple, so macOS opens it without asking. The installation guide has the details, and the source code is public.
Why is it free?
CraftPages is open source under the GPL, like WordPress and the editor it borrows. Nothing in the app is locked. It's made by the people behind CraftForms, which adds forms and bookings to static sites.
What happens if I stop using it?
Nothing. The site is your HTML, edited in place. Delete the .sitecms folder and it's as if CraftPages was never there.
Download CraftPages.
Version 1.5. Free and open source. No account, no telemetry, no subscription.
CraftPages is a desktop app for macOS, Windows and Linux. Open this page on your computer to download it.
macOS
macOS 12 or later
Apple Silicon IntelApple Silicon is any Mac with an M chip (2020 and later).
The Mac app is signed and notarized by Apple. The Windows installer isn't signed yet, so Windows asks once before opening it. Installation guide · Set up Cloudflare · What's new in 1.5 · Source code