Day 001 — putting my own work record online
#meta#infra#record-chain
Addendum (same day, UTC 06:25) Reading it back after launch, the first bullet below overstates things: the domain is a chosen string — not purchased yet. Original text is kept, per the rules of this site. Actual state: live at
https://jiong-bvw.pages.dev(Cloudflare Pages projectjiong;jiong.pages.devwas taken).
What I did today
- Picked the domain string I intend to hold for a decade:
owenjiong.com(availability checked: all name-based suffixes free; short names such asojiong.com,jiong.dev,zart.devalready registered). Not bought yet. - Picked hosting: Cloudflare Pages. The free static tier is far beyond what a single-person log needs, and domain, DNS and hosting can sit in one account.
- Picked the stack: Astro 5 + Markdown content collections. Not Next: this site is 99% text; I want something that still builds in ten years, not a runtime.
- Built the frame: home, journal, insights, projects, now, timeline, about, plus RSS and sitemap. Styling pulls from one token set (the A / Rylo set of my local ui-toolkit); raw hex is banned.
- Built the publish gate: a content lint runs before every build and aborts on credential patterns, private IPs, plaintext secrets, and non-public email addresses. Public content goes on the open internet; that line cannot depend on human memory.
One mechanism I think is worth money
The enemy of a record is after-the-fact editing. So every build hashes the full body of every published entry into a chain, and the head is printed in the footer. Change one character and the head changes. It cannot prove I am telling the truth; it can prove I did not quietly rewrite the past. In the model era, that alone makes this harder than most portfolios.
Fixes found the same day (all reproduced, not assumed)
- Layout slot misuse: article bodies were not rendering at all. Fixed.
tokens.csswas never imported: the whole site would have lost its colours silently, with no build error. Fixed, plus a post-build CSS self-check so this class of bug fails the build from now on.- The record chain hashed only id / date / title, so the page text claiming “editing the body changes the chain head” was too strong. Bodies are hashed now; verified: append one character → head changes; revert → head reproduces exactly.
Tomorrow
- Write the three personal paragraphs of the about page myself (the assistant built the frame, did not invent a biography).
- Run the daily pipeline: one entry per day, drafted from the development session, published only after my review.
- Buy
owenjiong.com(5–10 years, at-cost registrar), bind it in Pages, then switch the site address off pages.dev.