HOWTO · FIELD NOTE · 19 OCTOBER 2026
A new website
is a project. Not any more. Now it
is a sentence.
I type one sentence. A few minutes later there is a live site on its own subdomain, with HTTPS, deployed from Git. No repository to create, no dashboard to click. This is how it works, built from nothing, and the timestamps to prove it.
01 · THE CLOCK
This page timed its own birth.
A claim like “under six minutes” is cheap. So the first thing that happened when I asked for this site was a bare version of it, built from the template, with a stopwatch running. These are the real timestamps from Monday morning, Stockholm time.
-
09:25:49
Start
Copy the template to
sites/howto/, replace the placeholder name. -
09:26:11
Pushed
One commit to
main. The deploy workflow is queued a second later. - 09:26:24 Deploying Runner ready, the changed folder detected, Wrangler starts.
- 09:26:41 Deployed Worker created, custom domain attached, certificate in place.
- 09:27:32 Verified Run confirmed green, the URL fetched, the page read back.
Where the 4½ minutes went, request to live
- ~2:45 Talking
- Agreeing what the site is for. Here: six short questions on audience, scope, brand, language, proof and byline, answered with a few taps.
- 0:22 Scaffolding
- Template copied, named, committed, pushed.
- 0:30 Pipeline
- Runner, deploy, domain, certificate. Nobody touches it.
- 0:51 Proof
- Wait for the green run, fetch the live URL, read it back.
The pipeline is the fast part. Deciding what the site should say is the slow part, and it should be.
Honesty clause: the bare site was live in under six minutes. The words you are reading took longer. The words always do.
02 · THE FLOW
What happens after the sentence.
What I type
“Make a site at howto.hunches.dev that explains how this works.”
-
1
Attach the repo
The agent attaches one private repository with push access. It is the same repository for every site, so there is never a new one to create.
-
2
Read the rules
A conventions file at the root tells it what to do and what never to touch. It reads that before anything else.
-
3
Copy and name
The template folder becomes
sites/<sub>/. Three lines of config change. The folder name is the subdomain.{ "name": "hs-howto", "assets": { "directory": "./public" }, "routes": [{ "pattern": "howto.hunches.dev", "custom_domain": true }], "workers_dev": false } -
4
Push
One commit to
main. A workflow notices whichsites/folders changed and deploys only those, each as its own Cloudflare Worker serving static files. -
5
Prove it
Check the run is green, then fetch the real URL and read the page back. “Pushed” is not “done”. “It answers” is done.
Updating a site is the same flow without step 3: change files, push. A site that needs a build step adds one line to its config and a package.json. The workflow does not change.
03 · THE MACHINE
Built once, from nothing.
The six minutes rest on a one-time setup. It was built in a single working session, and most of it was deciding what not to build. Before it, a new site meant two manual chores: create a GitHub repository, then create a Worker and attach a subdomain by hand. The setup removes both.
- You One sentence In any chat with the agent
-
Git
One repo
sites/<sub>/per site - CI One workflow Deploys changed folders on push
-
Edge
One Worker per site
hs-<sub>+ custom domain -
World
<sub>
.hunches.dev HTTPS, global, live
The parts list, if you start with nothing
- 01
A domain on Cloudflare
Registered and managed in the same place that runs the code, so a custom subdomain is a config line rather than a DNS ticket.
- 02
One private monorepo
One folder per subdomain. The agent can push to a repository it is given, but cannot create one through Git. So the design simply stops needing new repositories.
- 03
One deploy workflow
On every push to
mainit diffssites/, and runswrangler deployin each changed folder. It can also be run by hand for one site or all of them. - 04
One scoped API token
Allowed to edit Workers and routes on this one domain, and nothing else. Stored as a repository secret, with an expiry date and a rotation date written down.
- 05
A template
The smallest possible static site: a config file and an
index.html. Every site starts here, so every site starts working. - 06
A conventions file
Plain-language rules at the root of the repository: how to create a site, how to name things, what is off-limits, how to remove a site. Written for the agent. Readable by me.
- 07
A canary
A permanent test site. When something feels off, push a trivial change to it and watch. It answers one question fast: is it the site, or the pipeline?
04 · THE THINKING
Six decisions that made it boring.
-
01
Design around the agent’s real limits.
The first instinct was to automate repository creation. The better answer was to remove the need for it. Constraints are design input, not obstacles to route around.
-
02
Make the name the contract.
Folder, subdomain and Worker share one name, with an
hs-prefix on the Worker. The prefix means this repo can never overwrite a Worker it does not own. One convention replaces a page of checks. -
03
Documentation is the interface.
The conventions file is not an afterthought for humans. It is how the agent learns the system, every time, in every new chat. If the rule is not written down, it does not exist.
-
04
Least privilege, with an end date.
The token can deploy Workers on one domain. It cannot touch DNS, billing or anything else, and it expires. If it leaks, the blast radius is small and temporary.
-
05
Keep humans where judgement lives.
Changing the workflow itself, and deleting a live site, stay manual on purpose. The agent can build and update. It cannot change the rules of the machine it runs on.
-
06
Done means verified.
Every run ends with the live URL fetched and read back. An agent that reports success without evidence is a liability, however fast it is.
05 · LIMITS
What it does not do.
- Instant everywhere
- A device that looks up a brand-new subdomain too early can remember “not found” for up to about half an hour. The site is live; that device is just sure it isn’t. Wait, or toggle flight mode.
- Review before production
- A push to
mainis production. That fits personal sites and experiments. A team would add a pull-request gate and preview URLs. - Clean up after itself
- Deleting a folder does not delete the Worker or the domain. Removal is a deliberate two-step job, by design.
- Privacy by default
- New sites are public. Private pages need an access policy in front of them, set up separately.
- Write the content
- The pipeline makes publishing free. It does not make thinking free. The six minutes buy you a URL, not a point of view.
06 · SO WHAT
When the distance between an idea and something people can open shrinks to a sentence, the bottleneck moves. It is no longer the tooling. It is taste, judgement and knowing what is worth making.
That is the real lesson for anyone running AI enablement, not just for side projects. The value did not come from a clever prompt. It came from a small, opinionated system: one place for everything, names that carry meaning, rules written down, narrow permissions and proof at the end. Give an agent that, and it stops being a demo and starts being a colleague you can hand work to.
Eight sites live in that one repository today. This one took the same path as the rest.