I shipped a personal landing page yesterday. Not for the company—for me. Resume, technical record, operating model. All at /ryan, explicitly excluded from search indexing.
The decision to make it unindexed was deliberate. This page isn't for SEO or discovery—it's for context. When someone asks "Who's building this?" or "What's your background?", I can send a link. When a potential partner wants to understand how we work, they get the operating model. When someone needs proof of technical execution, the record speaks for itself.
Why Unindexed?
The robots.ts configuration explicitly tells search engines to skip this page. It's not about hiding—it's about intent. This page exists for people who already know to look for it, not for random Google traffic.
We added a crawl audit test to verify the noindex directive actually works. If the robots configuration ever breaks and accidentally exposes the page to indexing, the test fails. This is the kind of test you write when you care about the distinction between "public" and "discoverable."
What's on the Page
Three sections:
Resume: A PDF generated by build-resume-pdf.py. Machine-readable, version-controlled, reproducible. No manual Word doc exports.
Technical Record: A list of shipped features, commits, and infrastructure decisions. Not a highlight reel—a record. If you want to know what kind of work I do, read the commits.
Operating Model: How I work, how I make decisions, how I think about building. This is the manual for working with me. If you're considering a partnership or collaboration, start here.
Why Now?
We're at the stage where the question "Who built this?" comes up frequently enough to need an answer that isn't a LinkedIn profile or a scattered Twitter thread. The landing page consolidates identity, execution record, and operating philosophy in one place.
It's also a forcing function. Building a personal page means committing to a narrative. Writing an operating model means articulating principles you might have left implicit. Generating a resume from code means your background is now part of the build pipeline.
These are good constraints.
What's Next
The technical record section will get automated updates. Every significant commit should append to the record automatically—no manual curation. If we're building in public, the record should build itself.
The operating model will evolve as we learn what actually matters in practice. Right now it's a first draft. Six months from now it should reflect real patterns, not aspirational ones.
And the resume? That stays machine-generated. If you can't automate your resume, you're not automating enough.