Among the Few Influential Pioneers who Built Foundations for Multi-Billion Dollar Ecosystems
Leaving an enduring legacy in Digital Ownership, Finance & Cybersecurity
This project is a narrative-forward Astro site for William Entriken. It positions a broad body of work, including civic hacking, strategy, software architecture, public thinking, and cybersecurity, around the contribution most legible in the public record: ERC-721, the first mainstream NFT standard and a catalyst for the digital asset ownership economy.
The site serves as a public-facing artifact, an SEO surface, an AI-readable reference point, and a funnel for speaking and advisory opportunities. It also complements phor.net and related subdomains by giving William's broader work a more intentional, navigable, and legible narrative home.
This site is designed to establish William Entriken's broader background in context with his highest-signal contribution. ERC-721 is the entry point because it makes the rest of the story legible: standards work, digital ownership, public-interest hacking, fintech infrastructure, cybersecurity credibility, and advisory relevance all become easier to understand when grounded in the achievement most people already recognize.
That is the project's deliberate "mythologizing" center. The framing is intentionally assertive, but it is not meant to flatten history. It foregrounds the standard, the language around NFTs, and the downstream ecosystem effects so the surrounding work has a clear frame instead of reading like an unrelated list of domain accomplishments.
The site is an authored homage to William's legacy and seminal influence, but the larger history matters. ERC-721 was a community effort. The work started with Dieter Shirley, then evolved, was shaped, and was ultimately shepherded by William Entriken with community support. He acted as a central steward and catalyst within that broader collective effort, helping shape a standard that went on to influence major waves of innovation and industry. He was seminal, but he was not the sole author of the ecosystem that followed.
This site reflects both the maintainer's distillation of publicly sourced information and firsthand knowledge gained through years of collaboration with William. It is designed to make William Entriken's broad and technical body of work clear to both technical and non-technical audiences.
The maintainer, Rito, has known and collaborated with William over the years, including co-authoring the planned ERC Universal Asset Signing, attending NFT.NYC with him, and participating in his podcast sessions of Community Service Hours. Rito has also contributed to the hour.gg experience itself, including mobile UX and navigation improvements.
As a cross-functional operator himself, Rito approaches the site through the lens of someone who recognizes and relates to William’s eclectic, multi-disciplinary nature, despite their distinct backgrounds.
- Multi-page Astro site built to feel editorial rather than app-like.
- Desktop sidebar and mobile drawer both expose in-page table of contents navigation so long pages stay cleanly navigable.
- "Ask your AI" flow opens provider deep links for ChatGPT, Claude, and Perplexity.
- Users can also copy the current page as Markdown for AI tools that do not support deep links.
robots.txtallows crawlers, and the project deliberately treats AI readability and shareability as product concerns rather than afterthoughts.
- Framework: Astro multi-page architecture with route folders and
index.astropages. - Styling: Bootstrap primitives plus project tokens and utilities.
- Content model: page content is injected from local
_content.jsonfiles instead of being hardcoded into reusable components. - Interactivity: React islands are used only where the experience actually needs them.
- Navigation and shared UI live in reusable component layers; page-specific composition stays local to each route.
- Images are handled through shared Astro image components instead of ad hoc raw image markup.
This keeps the content portable, the page architecture consistent, and the presentation layer easy to evolve without rewriting copy-rich sections by hand.
Press and speaking coverage originate on phor.net (source repo: fulldecent/phor.net). William publishes and maintains the canonical feed data there, and this site pulls from that upstream source rather than maintaining a separate editorial copy.
The setup has two redundant paths, by design.
- A scheduled GitHub Actions workflow runs
sync:coveragedaily, fetches the upstream feed JSON from thephor.netrepo, normalizes it, writes the results intosrc/data/feeds/press-coverage.jsonandsrc/data/feeds/speaking-events.json, and opens a pull request when those datasets change. This is the preferred path. Feeds don't change often enough to justify real-time pipelines, polling, webhooks, or client-triggered repo updates — a conservative scheduled check is the right fit for controlling what gets committed. - At runtime, each feed component renders with the embedded local dataset first, then performs a delayed
cache: 'no-store'fetch against the same upstream source. The payload is normalized and compared against the embedded items, and the UI only updates when there is an actual diff. This acts as a real-time fallback to surface changes between syncs and deploys, but it only updates the browser — it does not trigger PRs or modify the repo. The source of truth is updated exclusively through the CI path.
The site supports three form flows:
contactservicesspeaking
Validation is handled on the client with Zod-backed schemas. The goal is sensible protection, not performative complexity: required fields are enforced, field-specific constraints are applied, email formats are checked, and oversized submissions are rejected before they ever hit the network.
Delivery is intentionally separated from the Astro app. The frontend submits JSON payloads to a Cloudflare Worker endpoint, and email handling lives behind that boundary with an SMTP host on the delivery side. That keeps the site thin while preserving a real submission path for production use.
There are two important testing modes:
- Mock mode: set
PUBLIC_FORMS_MOCK=true - Live mode: set
PUBLIC_FORMS_MOCK=false
The form runtime also supports two special message conventions:
This message will fail.forces a mock failure path for UI and test workflows.This is a test. No email.is the live-safe test phrase. The worker is expected to recognize that message and return a success response without sending mail, so production wiring can be exercised without spamming real inboxes.
This makes the forms testable in CI and safer to validate against live infrastructure.
The pipeline is methodical and thorough.
Testing is practical — it covers what matters without chasing full coverage:
- Vitest covers the critical logic paths: feed normalization, schema generation, form env/runtime behavior, submission logic, AI deep links, Markdown copy behavior, and other shared runtime utilities.
- Playwright covers essential components and user tasks.
- Accessibility checks run in Playwright using
@axe-core/playwrightso core flows get automated a11y coverage as part of end-to-end testing.
Production deploys run through a staged GitHub Actions pipeline:
validate-configlintvitestlink_checkplaywright_predeploydeployplaywright_postdeployrollback_on_postdeploy_failure
Playwright runs the same suite before and after deploy to catch production-specific regressions. Deployments go to Vercel. If post-deploy checks fail, the workflow rolls the deployment back automatically.
Predeploy mode runs against a local preview build:
PUBLIC_FORMS_MOCK=truePUBLIC_FORMS_ENDPOINTis injected by the action- happy-path form submissions use
This is a test. No email. - targeted failure tests use
This message will fail.
Postdeploy mode runs against the live site:
PUBLIC_FORMS_MOCK=false- form tests still use
This is a test. No email. This message will fail.should not be used in postdeploy specs
Refer to AGENTS.md for site development guidelines.
To run the build locally after cloning:
pnpm devThis starts Astro on 0.0.0.0:4321 and prepares the purged animation styles used by the shell.
Common workflows:
pnpm buildbuilds the sitepnpm previewserves the built output on0.0.0.0:4321pnpm run check:allruns the main static checks togetherpnpm run test:runruns the Vitest suite oncepnpm run test:e2eruns the Playwright suitepnpm run sync:coveragerefreshes upstream press and speaking feed datapnpm run link-checkbuilds the site and validates links indist
- The production site URL is
https://williamentriken.net. - Link checks intentionally skip the coverage-heavy
/pressand/speakingroutes so unmanaged external links in feed data do not gate deployment. - The site uses
src/components/ui/Image.astrofor reusable image handling and self-hosted font assets inpublic/fonts.
This project is licensed under the Apache License 2.0. See LICENSE for details.
Apache 2.0 does not grant rights to use any third-party names, trademarks, or branding that may appear in this repository.
