How it started: the site shipped, but DNS pointed at yesterday
After the previous post, dahui.ai was a Next.js site running on Vercel. But one piece was still wrong: the domain's DNS still pointed at an old Cloudflare Worker. Anyone who typed dahui.ai into a browser was still getting yesterday's static page. All the MDX, the bilingual switch, the custom components — they only existed at dahui-ai.vercel.app, the throwaway Vercel preview URL.
At 3:29 PM I decided to fix it.
I'm configuring DNS in Cloudflare, want to point it at Vercel — what's the exact procedure?
First answer: a textbook generic tutorial
The AI gave me a perfectly correct, generic plan:
- In Vercel, Settings → Domains → add
dahui.aiandwww.dahui.ai. - In Cloudflare, add two DNS records: an
Arecord at the apex pointing to76.76.21.21, and aCNAMEforwwwpointing tocname.vercel-dns.com. - The critical bit — set Cloudflare's orange cloud icon to grey (
DNS only). If you proxy through Cloudflare, Vercel can't issue an SSL cert. - Go back to Vercel and wait for the green check.
Then I opened Cloudflare and the screen didn't match the plan at all. My two records had Type Worker, not A or CNAME. I gave up and just sent a screenshot:
I don't get it.
That was the most useful thing I said all day.
Surprise #1: those weren't ordinary DNS records
The AI looked at the screenshot and immediately noticed a fact that wasn't in the generic tutorial:
Your current two records are Type Worker — those aren't ordinary DNS records, they're Cloudflare Worker routes. To switch to Vercel, you have to unbind the Worker first; only then will the DNS list be empty enough to add the new records.
Translation: months ago I had deployed dahui.ai via Cloudflare Workers (the version I shipped with wrangler), not as plain static hosting. A Worker intercepts traffic at the edge and serves it itself, so there was no traditional A/CNAME for me to edit — the Worker route was occupying the slot.
The generic tutorial assumed "you've never configured DNS before." My actual state was "you've already configured one version of this and now want to tear it out and replace it." Those look the same, but the steps are completely different.
Surprise #2: the lock icon
Following the AI's instructions, I went to delete the two Worker records. Then:
There's no delete option.
In the second screenshot — there was a tiny lock icon 🔒 to the left of each record, with a line of small text underneath:
A Worker acts as the origin for this hostname... Change this under the Worker's domain settings.
Cloudflare was telling me: "You can't delete this from this page. Go to the Worker's own settings page to unbind it." I had never seen that lock before in my life.
What I liked about the AI's reaction: it didn't say "ah, I missed that earlier." It just gave me the new path:
This Worker-type record can't be deleted from the DNS page (the 🔒 lock means exactly that). Go to Compute (Workers) → the Worker named dahui → Settings → Domains & Routes, and click Remove on both bindings.
That blue "Worker's domain settings" link in the hint is a direct shortcut — clicking it is the fastest path.
I followed the blue link, hit Remove, came back to the DNS page — both Worker rows were gone, replaced by a single line: No DNS records. That was the real "clean slate" state.
The smooth part (the remaining ~8 minutes)
The rest was textbook:
- Worker dahui.ai → dahui (Worker route, Proxied) - Worker www.dahui.ai → dahui (Worker route, Proxied) + A dahui.ai → 76.76.21.21 (DNS only ⚪) + CNAME www → cname.vercel-dns.com (DNS only ⚪)
The orange-cloud-to-grey-cloud step I did manually. Before each record, the AI repeated the same checklist:
Type: A or CNAME Name: @ or www Content: 76.76.21.21 or cname.vercel-dns.com Proxy: ⚠️ grey cloud (DNS only), NOT orange TTL: Auto
After both records were in, I went back to Vercel's Domains page:
dahui.ai: red Invalid Configuration ⚠️ → yellow DNS Change Recommended ⚠️www.dahui.ai: same transition
I assumed yellow still meant "not done." The AI's reply was the relief:
DNS Change Recommended isn't an error — it's a suggestion. Vercel notices you're on Cloudflare and that your A record points at its older IP (76.76.21.21); it would prefer you used the newer IP. But the old IP still works, the cert will still be issued. You can just ignore it.
I opened https://www.dahui.ai — site loaded. HTTPS green, the apex dahui.ai 301'd to www.
I can see the page.
What I actually learned
Compared to the previous post — which was about reframing the whole product — this is a much smaller story. Just a DNS migration. But as a slice of working with AI, it taught me a few things worth writing down:
- Screenshots are the cheapest bug report. "I don't get it" + a screenshot was 10× more efficient than five minutes of me describing "I see a table with some rows, the type column says Worker, there's a cloud icon next to it..." Words drop the part you didn't know you were looking at. Screenshots don't.
- Generic tutorials assume a blank slate. Most DNS tutorials start from "you just bought a fresh domain." Real life is more often "you already configured one version of this and want to swap it." Those two situations look the same in a search query, but the steps diverge entirely.
- A lock icon means "the truth lives on a different page." Anywhere the UI shows 🔒 / a greyed-out button / "managed elsewhere" — that's a signal that the real setting is somewhere else. Next time, look for the blue hint link before guessing your own path; it's almost always a direct shortcut.
- Yellow ≠ red. Vercel's
DNS Change Recommendedlooks like a warning but is just an advisory. In an unfamiliar tool, "color ≠ severity" is counterintuitive but worth remembering — especially when you haven't done anything wrong, check whether the message is an error or an advisory before re-doing your work.
My own addition: I noticed the AI processed screenshots much faster than I did. I look at a screenshot and see blocks — tables, buttons — so I was staring at the "Edit" button trying to decide where to click. The AI read every word: Type: Worker in the table, and Change this under the Worker's domain settings in the hint. The AI reads text; I read shapes. Next time I'm stuck on a screenshot, I should literally read every word out loud first — that's where the information density actually lives.
Today, in three layers
Stitched together, today went like this:
11:04 → 14:15 Design reframe from "multi-user blog platform" → "AI logbook" 14:15 → 15:29 Build MDX migration, five custom components, post #2 ships 15:29 → 15:52 Operate DNS migrates from Cloudflare Workers to Vercel ↑ this post
The design block was the most expensive (mentally), the build block the longest, the operate block the shortest — but all three used the same codified workflow: think out loud in 中文, let AI surface what I'm not seeing, take the call myself. Today proved the workflow doesn't only fit big design docs — it fits a 23-minute DNS micro-ops session just as well.
The next post is most likely going to be one of the boring "today I hit X while coding" entries — which is fine. That's the steady state of a logbook.