One person, one day, ten dollars: the full playbook for this site
This site is its own first entry. The job: one person with no engineering background takes a content site from zero to live on a custom domain, in one day. This is written as a playbook, not a story — the prompts and settings below are meant to be copied.
The bill
| Item | Cost |
|---|---|
| Domain (solo-bench.com, Cloudflare Registrar) | ~$10/year |
| Hosting (Cloudflare Pages, free tier) | $0 |
| Build (AI assistant wrote all code) | $0 extra |
| Web-hosting subscription | not needed |
| Total, year one | ~$10 |
One warning that saves real money first: Vercel's free tier bans commercial use, including affiliate links. Most "deploy Next.js free" guides send you there. Cloudflare Pages allows commercial use on its free plan, which is why this site lives there.
Note that this route requires no local dev environment. Cloudflare runs the builds; all you need is a browser.
The playbook
1. Decide before you build (30 min+)
Three decisions: niche, site name, domain. We spent more time on the name than on the code, and that ratio was right. Check domain availability before you fall in love with a name — create a Cloudflare account and search under Domains → Registrations → Register domain.
2. Write a CLAUDE.md (15 min)
Put the site's blueprint in one text file and hand it to the AI. Every later instruction gets shorter because the context lives in the file. Here is a generalized version of the one used for this site:
# CLAUDE.md
## What this site is
- Name: (name) / Domain: (domain)
- Reader: (who this is for)
- Content: (what gets published)
## Tech
- Next.js (App Router) with output: 'export' — fully static
- Articles as Markdown under content/ (frontmatter: title, date, summary)
- Deploys to Cloudflare Pages. No server features (API routes, ISR)
## Design rules
- Five reference sites: (list URLs)
- Aim for something between them, copying none
- Never use: (emoji, neon colors, ...)
## Adding articles
- Dropping one Markdown file into content/ must be enough to publish
3. Give the AI its first instruction (AI does the work; ~30 min wait)
With the CLAUDE.md attached, the first prompt was:
Build the whole site per CLAUDE.md.
- Next.js with output: 'export', articles in Markdown
- Minimum viable first: home, article list, article page
- Make it deployable on Cloudflare Pages and tell me the build settings
- Deliver the project folder as a zip when done
For design, don't ask for the final thing in one shot. Ask for three directions, then iterate with one-sentence feedback ("calmer", "too much"). This site took seventeen rounds; each round cost one sentence.
4. Put it on GitHub (15 min)
- Create a free account at github.com
- New repository → any name, Private, and set README, .gitignore, and license all to "none"
- Click "uploading an existing file" → unzip the project, open folders until package.json is directly visible, select everything inside, and drag it into the drop zone
- Confirm the list shows slash-separated paths like
app/..., then Commit changes
5. Connect Cloudflare Pages (10 min)
- Create an account at dash.cloudflare.com
- Paste this into the address bar — the dashboard redesign buried the Pages entry, and the direct link is reliable:
https://dash.cloudflare.com/?to=/:account/pages/new/provider/github - Authorize GitHub and pick the repository
- Three settings: Framework preset Next.js (Static HTML Export) / Build command npm run build / Build output directory out
- Save and Deploy. Live at
(project).pages.devin about three minutes
6. Attach the domain (10 min)
Buy it in Cloudflare Registrar (at-cost pricing, so renewals don't creep up) and add it under the Pages project's Custom domains. DNS is automatic because everything is in one dashboard. Including the SSL certificate, the https:// custom domain goes live within minutes to an hour.
7. Register Search Console (15 min)
- search.google.com/search-console → add a "Domain" property with your domain
- Copy the TXT record it shows, and add it in Cloudflare's DNS (Domains → your domain → DNS → Records) as Type: TXT / Name: @
- Back in Search Console, click Verify
- After verification, submit the sitemap as a full URL:
https://your-domain.com/sitemap.xml
8. Adding articles from here (5 min each, plus the writing)
In GitHub, open content/ → Add file → Create new file. Start with this frontmatter, write the body in Markdown, and commit. The site republishes itself within minutes.
---
title: "Article title"
date: "2026-09-01"
summary: "One sentence shown in the list"
---
The four places I got stuck
- GitHub blocked signup with an "access limited" page. Cause: a browser extension. Fix: incognito window.
- Drag-and-drop flattened my folders. Picking files via "choose your files" uploads a flat list and the build dies. Drag the folders themselves into the drop zone.
- I uploaded one level too deep — every path started with the project folder's name, twice. Follow step 4: open until package.json is visible and drag the contents.
- Search Console rejected the sitemap. Domain-type properties need the full URL (step 7).
Verdict
Build work goes to the AI — that is the conclusion. It wrote every line, and seventeen rounds of design revision cost me seventeen sentences. What stayed at my desk until the end: every decision, every account, and all four mistakes above. That is the real division of labor — judgment stays here, and only the hands-on work goes out.