zihan.is

zihan.is
Seven personal websites across thirteen years is not a portfolio — it is a stratigraphic record. Each layer reveals the same anxiety in a different material: first the hand-coded static pages of Dreamweaver, where the absence of a CMS was not a limitation but a confession that the self had not yet accumulated enough to require organization; then the site-builder era, Wix, Squarespace, the one called Webflow, each promising liberation through constraint; then Webflow itself, which I adopted early enough that the adoption still felt like discovery rather than trend-following, because Webflow had done something genuinely interesting — it had built a drag-and-drop interface organized around the actual cognitive model of a web developer, HTML and CSS made tactile. For someone whose perfectionism operates at the level of token counts and type hierarchies, that was not a tool. That was a mirror that finally had the right resolution.

The honeymoon lasted until AI made the mirror redundant.

When generating front-end code became a morning task rather than a career, the question that had always been lurking beneath the technical choices surfaced with nowhere left to hide: what, precisely, is a personal website for? The honest answer — and I have spent years building elaborate systems to avoid arriving at honest answers — is that a personal website is an argument. The argument is: here is what kind of person exists here. Every aesthetic decision, every CMS choice, every animation and typeface and hover state, is a subordinate clause in that argument. The problem is that most personal websites make the subordinate clauses so ornate that the argument disappears entirely. I had done this myself, repeatedly, with considerable technical skill.

The current version is located at zihan.is — the Icelandic domain extension being the only flourish I permitted myself, and it earns its place because the domain reads as a sentence with a missing predicate: Zihan is. The predicate is the entire website. What follows that copula is not a biography, not a manifesto, not an aesthetic statement. It is a list, nested and recursive: upholding, building, making, writing, inventing, reading, winning, collecting, flying, traveling, working, studying. Verb forms, not nouns. The grammatical choice is not accidental. Nouns name what you are; verbs name what you did. I am confident that a person is defined exclusively by the latter.

The architecture enforces this philosophy with a precision I find genuinely satisfying. One recursive UI component renders the entire interface — a single toggle list, replicating itself at each level of the hierarchy, the way a fern generates its own geometry at every scale. Forty-nine CSS design tokens, centralized in one file. TypeScript across modules for type safety. Zero runtime JavaScript, via Astro 5, which means the site loads at edge speed and remains accessible in mainland China, two constraints that would previously have required incompatible technical decisions. The content lives in Notion, which has a mobile application, which means I can add a new airport or a new book or a new invention from anywhere, with a gesture that costs less friction than sending a text message. I built an iOS shortcut that fires a Cloudflare deploy hook via HTTP request. The entire site rebuilds from a single tap.

The build took one afternoon. Not even the full afternoon.

I have thought carefully about why that fact matters beyond the obvious efficiency argument. Previous versions of this website consumed weeks of obsessive iteration and then went silent — launched with ceremony, abandoned without announcement, the way most systems built by perfectionists eventually go silent, because perfectionists optimize for the moment of completion rather than the decade of maintenance. The Notion-based architecture removes what I have come to think of as mental friction from the input loop. Adding content requires no context-switching, no login to a separate CMS, no decision about format beyond the binary I have already resolved: everything is either a nested bullet list or a poem. The former for information. The latter for feeling. That is the complete taxonomy of human communication, as far as I can tell, and I am prepared to defend it.

The decision to communicate only in those two forms is also, I recognize, a form of self-knowledge that took an embarrassing number of years to acquire. I am a designer who finds it professionally easy to produce stunning animations and typographic hierarchies and interactive states that make clients feel their product is alive. The ease of that production was always the danger. Ornament is the path of least resistance for someone with my skill set. Getting to the essence — the cold-blooded, surgical answer to what a thing actually is — requires not adding but subtracting, and subtraction is the harder discipline because it requires confidence that what remains is enough.

I believe what remains is enough. I am, at this stage of my life, rarely this confident. The answer to the question of what a personal website should be is: a list of what the person did. The answer to the question of what form that list should take is: the simplest recursive structure that can contain any category of action without prejudging its importance. The answer to the question of how to ensure it gets maintained is: make the cost of a single update approach zero, then trust the accumulation.

zihan.is does not tell you who I am. It shows you what I did. That distinction is the entire argument, compressed into a domain name eight characters long, waiting there in the address bar like a sentence that has been patient enough to leave its own predicate blank.