For a while, this site answered only one question: what has Denis written? That is useful, but incomplete. Most of my work happens before a polished article exists—in the framing of a problem, the tradeoffs behind an architecture, and the coordination that turns an idea into something a team can ship.

I am rebuilding the site as a personal hub so it can answer a better sequence of questions: what do I focus on, what have I built, how do I make decisions, and how can we talk?

Start with the visitor’s task

The old homepage behaved like the front page of a blog. The new one introduces my engineering, product, and leadership focus, then moves through selected projects, recent writing, current priorities, and contact. That order is deliberate. A new visitor should not need to reconstruct my work from an archive.

Projects now have their own content model and case-study pages. Each one can describe the problem, constraints, my role, decisions, results, lessons, screenshots, and evidence. Empty sections simply do not render. The first case study is this website itself, including what is finished and what remains planned.

Keep the implementation quieter than the content

Astro remains a good fit because most of this site is content. It produces static HTML, keeps the default experience resilient, and lets me add JavaScript only where interaction earns it. Search and language selection need behavior; a project summary does not.

The content lives in Markdown and validated collections. The site is published in English, Russian, and Polish, so localization affects much more than labels: routes, language switching, canonical links, hreflang, RSS, sitemaps, social metadata, search, and generated llms.txt output all need to agree.

Treat publishing like product work

I wanted the visual direction to feel like a field notebook: restrained typography, a visible grid, and enough space for ideas to breathe. The restraint is practical as well as aesthetic. It keeps attention on evidence and makes the system easier to extend without inventing a new page design every time.

Every release passes Astro, TypeScript, lint, formatting, production-build, and generated SEO checks. That workflow is slower than editing a hosted CMS, but the output is versioned, reviewable, portable, and difficult to break silently.

What I hope this becomes

Release 1 is intentionally small: two credible case studies, one honest article, a stronger About page, and a clear contact path. I will add work only when I can explain my contribution and share evidence publicly. A smaller archive with useful context is better than a large wall of logos.

The site will keep changing, but its job is now clear: make the work legible, preserve what I learn, and create a natural starting point for a conversation.