Every CMS separates content from control. You write in one place — an editor, a text field — and manage your content’s state in another: a dashboard with toggles, dropdowns, status fields, publish dates, visibility settings. Two interfaces for one piece of writing.
That split is so universal it feels inevitable. It isn’t.
Name a file my-post.draft.md and it won’t be published. Remove .draft from the filename and it goes live on the next sync.
my-post.draft.md → Not published
my-post.md → Published
No toggle to forget. No admin panel to check. No “wait, did I accidentally publish that?” You look at your folder and the publish state of every post is right there in the filename — the one thing you always see.
Every blogging platform has a draft mechanism. WordPress buries it in a sidebar. Ghost puts it in a dropdown. Some require frontmatter syntax (status: draft). All of them create a second place to look — the control plane — separate from the content itself. The .draft.md convention eliminates that separation. The filename is the intent.
Where does the title come from without a title field? The fallback chain: first H1 heading in the document, then the filename.
Most writers start a markdown file with an H1. FolderPress uses it as the title and strips it from the rendered output so it doesn’t appear twice. The thing you were already doing — writing a heading — is the title. No field to fill in.
Published date defaults to when the post is first synced. Set published_at in frontmatter to override. Backdating works. Forward-dating doesn’t schedule — the file either exists or it doesn’t.
Folder structure is URL structure. A file at posts/guides/getting-started.md becomes /posts/guides/getting-started. Rename the file, the URL changes. Move it to a different folder, the URL reflects the new path. The filesystem is the routing table.
FolderPress is already niche — markdown writers who use Dropbox. Requiring YAML frontmatter would add another filter. Someone who’s been writing in Obsidian or iA Writer for years might never have touched frontmatter. Their files shouldn’t be second-class citizens.
---
published_at: 2025-11-30
description: "An optional summary for search engines and social cards."
---
Your post content starts here...Write it if you want control. Don’t if you don’t. Everything resolves to something sensible either way. The tradeoff is real — explicit metadata is unambiguous, implicit inference introduces edge cases. For a tool whose point is removing barriers to writing, the edge cases felt more acceptable than a prerequisite.
Convention over configuration isn’t new — Rails popularized it in 2004. The insight is that every configuration option is a question, and every question is friction. .draft.md means unpublished. H1 means title. Folder structure means URL structure. No settings panel because the folder is the settings.
Most tools treat the file as a container for content and put everything else — state, metadata, routing — in a separate system. FolderPress treats the file as the entire interface. The content, the publish state, the title, the URL — they’re all properties of the file itself. There’s nothing to manage because there’s nowhere else to look.
Your editor is your CMS. If you can rename a file, you can control your publishing workflow.
Custom domains.
In theory, you could name your site folder myblog.com and FolderPress could interpret the intent. The filesystem can express what you want. What it can’t do is have a conversation — is that domain available? Here’s the CNAME record you need to add. Has DNS propagated yet? The problem isn’t declaring intent. It’s the feedback loop: validation, instructions, confirmation. A filesystem can’t tell you what to do next or whether it worked.
So FolderPress has a dashboard. It does exactly one thing: you enter your domain, it gives you the DNS values, and it tells you when propagation succeeds. Smallest possible surface for a problem that genuinely requires back-and-forth. Everything else — creating sites, publishing, drafts, organizing content — still happens through Dropbox.
Add your domain, point a CNAME, and your site is live at your own domain. SSL provisioned automatically. Multi-tenant routing sounds heavy, but Vercel’s middleware handles the hard parts — the proxy layer is about 50 lines of code. Choosing the right platform meant less code, not more.
myblog.folderpress.com and myblog.com serve identical content. The difference is entirely psychological — and entirely real. One says “I use a tool.” The other says “this is mine.” Ownership is a feeling. A custom domain makes it visible.