README.md
Historical snapshot · 2026-10-28T02:05:13-06:00 · a1cf1ab7e1c2. Private repository and workspace identifiers are redacted from public copies and downloads.
Added or renamed sections: Archive reading and navigation.
Download Markdown (privacy-redacted) · All revisions
Robert Beckner — The Gay Wizard
A static birthday tribute built around one portrait of Merlin (aka Robert Beckner, aka The Gay Wizard), with attributed professional history. Every visual (hero kaleidoscope, mirrored tile-*.webp backdrops, icons, favicon, and social.png) is cropped or mirrored from dist/merlin.webp. No dependencies or backend required. Source and served assets are in dist/.
Vercel hosting
The GitHub repository is intended to be private under [private repository details removed]. The Vercel project belongs to the personal [private hosting workspace] workspace. vercel.json serves the static dist/ output; the build wrapper allows indexing for production and emits noindex for preview deployments. No dependencies are required.
Production is public at https://gaywizard.dev. Vercel Standard Protection retains authentication for preview deployments and generated deployment URLs. The www domain redirects permanently to the canonical apex domain. Keep the GitHub repository private. The legacy .openai/hosting.json is not used by Vercel and is excluded from CLI uploads.
Public documentation archive
The homepage links to /archive/, containing current Markdown documentation, historical Markdown revisions from Git, and an attributed text snapshot of the public pages listed in rbeckner.com's sitemap. See PUBLICATION.md for scope and the missing conversation record. The archive is generated from committed snapshots by scripts/build-archive.mjs and included in the sitemap. Refresh the source text explicitly with python3 scripts/snapshot-source.py, then build and review before publishing.
Local development
Run npm run dev and visit http://127.0.0.1:4173. Run npm run check for content and asset checks.
SEO and public launch
The checked-in production output allows indexing. npm run build creates indexable output; npm run build:preview explicitly creates a noindex preview. Neither command deploys anything. The keywords tag includes the requested birthday branding, but Google does not use this tag for ranking.
The production domain is https://gaywizard.dev. Once DNS is connected and public launch is approved, run:
npm run build
npm run check:production
After deploying through your own host, run npm run check:live. This is a read-only network check of the production homepage, resources, robots.txt, sitemap, HTTP redirect, and unknown-path status. It exits unsuccessfully for unreachable endpoints or failed checks. It does not verify Google indexing; use Search Console's live URL Inspection for that.
Configure the host to serve dist/404.html with an actual HTTP 404 status for unknown paths. The file alone cannot set a response status. Permanently redirect HTTP to HTTPS and, if you configure www, redirect it to the apex. Do not configure an SPA catch-all returning the homepage with HTTP 200 for every path. Production homepage metadata is index, follow; the 404 page intentionally has noindex, follow because error pages should not rank.
The original birthday story is based on Max's account of coder friends creating a surprise meant to be found through search, not an invented career anecdote. A genuine inbound link must be placed on a separate, authorized website. That website has not yet been supplied, so no inbound link has been published.
The build sets the canonical URL, sharing URLs, sitemap, robots.txt, and indexing directive from one origin. For private previews, run npm run build:preview. Build is idempotent. Serve dist/ with HTTPS. Review the finished content before public publication. Verify public access and indexability in Google Search Console, submit /sitemap.xml, and monitor impressions for Robert Beckner. Genuine inbound editorial links can help discovery; do not depend on Robert changing his accounts for a surprise. Ranking cannot be guaranteed.
Editorial sources
The additional page at /chronicles/the-case-of-the-missing-semicolon/ is original fictional birthday satire. Its first-person wizard narrator is not an attribution of statements to Robert. It is linked from the homepage and included in the sitemap, with its own canonical URL and fiction-labeled metadata. No real disputes, third-party identities, or source link are included in that story.
- https://rbeckner.com/about/ — self-published career history, agencies, Granis AI, Activate.
- https://www.linkedin.com/in/robert-beckner — user-supplied professional identity link.
- Birthday nickname and “gayer than gay” branding supplied by Max with Robert's approval as reported by Max.
Agency work is attributed to Robert's biography, not represented as independently verified employment. CIA is explicitly birthday lore, excluded from search snippets with data-nosnippet, and is not a structured credential. The site labels itself a birthday tribute.
See SEO-REVIEW.md for the audit, launch checks, and search monitoring plan. Hosting and DNS are managed by Max; no deployment is part of the build.
The only third-party page resource is Google Fonts; local system fonts provide fallbacks. The birthday spell respects reduced motion and announces its message accessibly. No tracking or data collection is added.
Archive reading and navigation
Original editorial guides at /archive/guides/projects/, /archive/guides/reading/, and /archive/guides/making-of/ help visitors explore the source material and the site’s creation. Source snapshots remain attributed and indexable. Browse collections group articles, projects, and other pages by language; matching translations have reciprocal hreflang annotations and self-canonical URLs. Navigation labels are localized; original guides and project documentation are English. Source translations are preserved, not newly translated or independently language-reviewed.
Documentation is rendered as headings, lists, tables, code blocks, and working links. Original Markdown downloads remain available. /archive/history/ groups historical revisions with mechanically derived section-change summaries. The full earlier conversation remains unavailable.
Production redirects consolidate the public gaywizard.vercel.app hostname and explicit index.html paths onto canonical URLs at gaywizard.dev. Generated preview deployment URLs remain separate and protected by Vercel.