This is the first note, so it is about the thing you are reading it on. The site is small, but it is built the way I build backend systems: the source of truth is structured data, and every surface — human or machine — is a projection of it.
Static first, one server route
Every page is prerendered at build time. There is exactly one server route — the assistant endpoint — and it only exists because it has to call a model. Nothing else needs a running server, so nothing else has one. That keeps the site fast, cheap to host, and hard to break.
One content model, many projections
The résumé, the services, and the proof library are content collections with typed schemas. From that single model the build emits:
- the human pages you navigate,
- Markdown mirrors (
/resume.md,/ai-context.md, proof records as.md), - a JSON services index,
- an
llms.txtthat indexes all of it for agents, - a JSON-LD
@graph(onePersonentity, reused across every page).
Write the fact once; it shows up correctly everywhere. No copy that drifts out of sync.
Readable by machines on purpose
AI answer engines are becoming a real referral source, so the machine-readable layer gets built as a proper output, on the same footing as the pages you see. robots.txt invites the assistant crawlers; the Markdown and JSON mirrors give them clean, quotable text; the structured data tells them who the pages are about. The site’s assistant runs on the same published content and is instructed to cite it and to refuse to invent facts.
Bilingual by design
Everything exists in English and Russian as equivalent canonicals, wired with reciprocal hreflang. The two audiences barely overlap, so it is reach, not duplication.
That is the whole idea: a portfolio that a person can read, a crawler can index, and an agent can quote — from one honest set of facts.