Launching rooo.pro in a day with Claude — when all I had was a domain
2026-05-04 / Vol. 1 / draft at time of publishing
Today I launched rooo.pro.
To be exact, the site you're looking at right now is the first step.
I registered the domain a few months ago, and ever since then, I'd been thinking "I'll make something one day" but doing nothing. Hands stop before content gets considered — that's a common story, but in my case it wasn't even content: nothing about genre or audience had been decided.
Today, suddenly, things moved.
I started talking to Claude (Anthropic's AI), and by evening it was published.
This article is the day's working log. What happened, what I judged, where I got stuck, and how I got out.
I threw "I want to manage and operate this comprehensively"
In the morning, I opened with this:
I want to manage and operate rooo.pro comprehensively.
Even as I wrote it, I noticed the question was hollow. "Comprehensively manage and operate" — but I myself didn't know what was actually being managed.
Claude, sensing this, asked back first: "What is rooo.pro?"
A website? A business name? An app? A media outlet?
I answered "media / blog."
Next: "Comprehensive operation — specifically, what domain?"
Content operation, technical operation, business operations, strategy/planning.
I picked "content operation."
Then "What are the current issues?" — and I checked all 4.
Continuous publication doesn't last / no visible outcomes / can't manage alone / direction and target unclear.
By this point I'd been confronted with the fact that I was "stuck on every single category."
The moment Claude returned an impressive design doc
Claude proposed a thorough "operations design." A 4-layer model — direction → planning → operation → measurement — top-down with KPIs spelled out.
It was well-crafted.
But while reading, something caught.
And I noticed:
Nothing has been decided yet for me.
The design was good. But it was a design for "someone already running something."
My situation was earlier than that — only the domain, not even a site.
I just typed what came to mind:
I just realized — right now nothing is decided, I just have the domain. I want to publish how this evolves from here. From this state where literally nothing is decided.
The phrasing was rough, but the moment I wrote it, that became the day's most important decision.
Claude's response surprised me.
It withdrew the polished 4-layer model and started rewriting the design.
From "aim for a finished form" to "make the process of becoming decided itself the content."
A few minutes later I added one more sentence:
I want to publish this current dialogue itself, too.
That was the moment this article — the one you're reading — was born.
Just four things I had on hand
Once the design talk settled, Claude organized "what I had on hand for rooo.pro."
Listed out, it was just four:
1. Domain rooo.pro (acquired a few months ago, untouched)
2. GitHub account
3. Cloudflare account
4. Claude (a thinking partner)
No server. No CMS. No design or editor.
Conversely: a setup runnable with just these four could publish something today.
Claude proposed: No CMS. Files in GitHub, Cloudflare Pages auto-deploys. Markdown-based, $0/month, the repo's commit history itself becomes "the trail of thought."
At the same time, I became aware of "build-in-public" (build while exposing the process). If the repo is public, what changes when becomes visible to the world. Even if quiet, the record itself has meaning.
Wiping the old site clean
One thing I remembered.
A few weeks ago, I'd published a simple static page on rooo.pro as a test. A throwaway repo on GitHub deployed to Cloudflare Workers — a "Coming Soon" level page. It was still there.
I needed to wipe and replace.
A judgment call: delete completely or archive.
I picked archive without hesitation. It was a record of something that worked, even if a prototype. No reason to delete.
GitHub has an "archive" feature that locks repos read-only. Data stays, no one can touch.
Renamed the old repo to rooo.pro-v0-archive and archived. The old Cloudflare Workers project I deleted outright.
With that, both the name "rooo.pro" and the domain were free again.
The wall came at uploading files to GitHub
I created a new GitHub repo and tried to upload locally prepared files (README, ops notes, draft of Vol. 1 — 6 files in total). I hit my first wall.
Claude has a way to operate my browser directly — drag-and-drop, repo creation went fine.
But file upload itself was rejected with "Not allowed". The browser extension intentionally blocks it for safety.
Claude proposed an alternative: I issue a GitHub Personal Access Token (similar to an API key) once and hand it to Claude. Claude pushes via GitHub API directly. Discard immediately when done.
I tensed up a little. Tokens are close to passwords; they have repo write permissions.
But the settings allowed minimum scope — "this repo only," "Contents Read and Write only," "expires in 30 days." I issued.
Claude received the token as an env var once, pushed 6 files in 2 commits, and erased the token from memory afterward.
I revoked the token on GitHub right after.
Via API, it was actually faster than browser operation.
The whole thing took less than 30 seconds.
Linking the domain in Cloudflare Pages
With GitHub set, I moved to Cloudflare. Three things to do:
1. Delete the old Workers project
2. Create a new Pages project, connect to the new GitHub repo
3. Link custom domains rooo.pro and www.rooo.pro to Pages
One more snag here.
To make the new repo visible to Cloudflare, I had to update the Cloudflare GitHub app's "permitted repositories." That was a single click on my side.
Created the Pages project, build settings minimal (static HTML; no build command, no output directory needed).
Adding the custom domain made Cloudflare auto-write the DNS records.
SSL (HTTPS) was auto-enabled.
A few minutes later, accessing https://rooo.pro/ showed the index.html I'd written.
It was published.
One last bit of garbage
But looking carefully, there were stray characters in the body. p> and div> were appearing in the prose.
I knew the cause immediately. GitHub's web editor has "auto-close tag" behavior; it adds extra closing tags when you type HTML. When I deleted them, I either over- or under-deleted, leaving fragments.
To fix it, I issued another Personal Access Token, and Claude replaced the file via API with the correct local content.
Then revoked again.
On reload, the garbage was gone.
Looking back
Up to this point, probably half a day of work.
Listed out, technically it was nothing dramatic.
・Archiving the old repo
・Creating a new repo
・Pushing 6 + 1 files (via API)
・Deleting the old Workers
・Creating Pages project
・Linking custom domain
・Bug fix (CodeMirror auto-close cause)
But on my own, I'd been postponing this same work "for someday" for months.
What was different today was: from the moment I started talking to Claude, every judgment kept moving forward in sequence.
Less that Claude was great, more that talking to Claude surfaced my own undecidedness.
I'd been thinking "the content direction won't decide," but the real obstacle was "the technical setup won't decide before content," "I was ashamed of being undecided itself."
Once I said all of it out loud, deciding was unexpectedly fast.
What this site will do from here
On this site, I want to keep writing — in this same way — about "what I'm currently doing."
Not deciding what to write in advance, but doing something and writing about it. That order.
No logo yet. Design is placeholder. Theme outline is faint.
But I'll record each thing as it gets gradually decided.
Don't read expecting a finished form.
I'd be glad if you watched it sway, double back, and get rewritten.
Next post is planned for the same day next week.
If I can't think of anything to write, I'll write "I couldn't think of anything to write."
That's a working log too.