Why I Built Elliott.page

Published

Most websites begin with a page. Elliott.page began with a question: what kind of place would still be worth maintaining after the tools, platforms, and interests around it changed?

I wanted somewhere that could hold finished writing, unfinished thought, and the record of learning over time. It needed to be public without becoming performative, personal without becoming a profile, and durable without pretending that it would ever be complete.

That meant building a place rather than launching a page.

A place, not a profile

Profiles are useful, but they usually inherit the shape and priorities of the platform that contains them. They ask for a short biography, a current role, a stream of updates, or a set of numbers that can be compared. They are designed to stay legible inside someone else’s system.

I wanted Elliott.page to have a different center of gravity.

The site does not need to summarize me into a professional label. It does not need to become a portfolio, a link directory, or a continuously refreshed feed. Its first responsibility is simpler: to be a stable place where ideas can be worked through and kept under addresses that I control.

That distinction matters because a personal website is not only a presentation layer. Over time, it becomes part of the memory it presents. Its paths, source files, and editorial decisions accumulate meaning. If those foundations are treated as temporary, the content built on them becomes temporary too.

Build the conditions first

It would have been easy to begin with a polished home page and call the site finished. Instead, I built the conditions that would let it remain trustworthy.

The work began with domain and account security, then a reproducible repository, a strict Astro and TypeScript baseline, automated quality checks, protected changes, and deterministic deployment. Only after that foundation was stable did the site acquire its information model, typography, spatial system, and identity pages.

This order was intentionally slow. It separated questions that are often mixed together:

  • Can the source be reproduced and verified?
  • Does a route have a clear responsibility?
  • Can the page remain readable across languages and screen sizes?
  • Is the content actually ready to be public?

Treating those as separate decisions made the implementation smaller, not larger. Each layer could stop once it had proved what the next layer needed.

Keep the surface small

There is always another feature available to a personal site: themes, analytics, search, reactions, feeds, tags, graphs, recommendations, or an AI interface. Some may eventually belong here. None should exist only because they are easy to add.

Elliott.page follows a simple rule: every abstraction and every feature must have a real consumer.

That is why the first version uses native system fonts, a small set of semantic colors, ordinary document flow, and a navigation model that exposes only routes that really exist. It is also why Writing is arriving before RSS, Notes before a knowledge graph, and actual content before tools meant to organize a future archive.

Minimalism here is not the absence of design. It is the decision to spend complexity only where it protects meaning, readability, ownership, or durability.

Treat content as a long-term asset

The site distinguishes Writing from Notes by editorial commitment rather than length. Writing is complete enough to stand on its own. Notes will be allowed to remain open, provisional, and small. Neither needs to imitate the other.

Both, however, need reliable identity.

Once a piece of Writing becomes public, its URL becomes an interface. The title may improve. The argument may be revised. The page design may evolve. The address should continue to mean the same thing.

This is why content is validated before it becomes a page. Dates are authored rather than inferred from a build. Draft state is explicit. File identity is stable. Invalid content fails instead of quietly disappearing. Publication still requires a human decision even when every machine check is green.

Those constraints are not an attempt to automate authorship. They create a boundary around it. Machines can verify structure, links between source and route, and whether a build is reproducible. They cannot decide whether a thought is honest, finished, or worth signing.

Grow at the speed of real needs

The long-term direction of Elliott.page includes Writing, Notes, open-web distribution, a growing network of ideas, and perhaps eventually interfaces that let software work with that knowledge. But the order matters.

First there must be a reliable place. Then there must be something real inside it. Relationships should emerge from accumulated content rather than from an empty graph. Tools should reduce publishing friction only after that friction has been observed. AI should help people reach existing thought, not become a substitute for having thought to reach.

This keeps the site open to change without making its current form provisional. Each stage should be useful on its own.

What I hope to keep here

I expect this site to contain explanations, questions, experiments, and ideas that become clearer through writing. Some will be technical. Some will be about how products and systems handle complexity. Others may simply be things that seem worth understanding and remembering.

The common thread is not a topic. It is a way of working: build carefully, examine assumptions, keep evidence close to claims, and leave room for conclusions to change.

This first piece is not a declaration that Elliott.page is complete. It is evidence that the place is ready to hold something real.