A Lunch Conversation Changed My Website

Some of the most enjoyable projects I’ve worked on have started in surprisingly ordinary moments. A conversation introduces a new idea, someone shares an experience from their own work, or I come across a different way of approaching a familiar problem. The conversation eventually ends, everyone returns to their daily work, yet one small idea continues to occupy my thoughts. Over the following days that idea slowly grows into documentation, notes, experiments and, occasionally, an entirely new project. Looking back, I can trace many of my favorite learning experiences to moments exactly like these, and rebuilding my personal website became another one of those unexpected journeys.
The story began during a lunch break with one of my fellow Chapter Leads while we were talking about frontend technologies and exchanging experiences from our teams. As often happens when engineers sit together, the discussion wandered naturally between projects, frameworks and the different decisions we make in our day-to-day work. At one point he mentioned that his team had built their frontend with Astro. I recognized the name immediately, yet I realized that my knowledge ended there. He spoke about the framework with genuine enthusiasm, describing how well it suited their use case and how much they appreciated its performance. We continued our conversation, talked about several other topics and eventually returned to work, but Astro quietly remained with me throughout the afternoon.
I’ve always enjoyed exploring technologies that are unfamiliar to me because every mature framework represents years of engineering experience, countless design decisions and a particular way of thinking about software. Reading documentation has never felt like collecting new APIs or memorizing syntax. I enjoy understanding why a technology was designed the way it was, which problems it was created to solve and how its authors approached the trade-offs that every engineering decision inevitably brings. Every exploration broadens my own perspective, and that alone makes the time worthwhile.
That afternoon I opened Astro’s documentation with exactly that sense of curiosity. Within the first few pages I found myself becoming increasingly interested in the philosophy behind the framework. Astro begins with static HTML and gradually introduces JavaScript wherever interactivity contributes to the experience. The simplicity of that idea immediately resonated with me because it reflects a very deliberate way of thinking about websites. Every piece of JavaScript has a purpose, every interactive component earns its place, and the content itself remains at the center of the experience. As I continued reading, I found myself reflecting on my own website and the role I wanted it to play over the coming years.
My website had gradually evolved beyond its original purpose. It still contained technical articles and documentation, yet over time it had become a place where I collected projects, documented architectural decisions, shared experiments and explored ideas that interested me. More recently, photography had become an increasingly important hobby, and I had already started imagining a future where larger images, richer galleries and visual storytelling would naturally become part of the website as well. Those thoughts made me look at my website from a different perspective. Instead of seeing a collection of pages, I began thinking about the experience I wanted readers to have and the kind of foundation that experience deserved.
As those ideas came together, another question quietly emerged. If I were building this website today, with everything I have learned over the past few years, which technologies would I choose? I wasn’t searching for a quick answer because the question itself felt far more interesting than any particular framework. It invited me to revisit assumptions that had settled over time, to look again at decisions I had once considered complete and to approach the entire website with fresh eyes. Questions like these have a remarkable way of expanding beyond their original scope, and I could already sense that I was about to begin something much larger than reading the documentation of a framework I had never used before.
That evening marked the beginning of an engineering exercise that would eventually reshape far more than the frontend framework. It became an opportunity to revisit the architecture of the website, the publishing workflow, the technologies behind it and, perhaps most importantly, the purpose of the website itself. At that point I still had no idea where the journey would lead, yet I was already enjoying the process because curiosity has a wonderful habit of turning a simple question into an opportunity to learn something entirely unexpected.
Curiosity Has a Way of Growing
The question I had asked myself seemed wonderfully simple at first. If I were building this website today, would I make the same technology choices? I expected the answer to emerge after comparing a handful of frameworks, reading some documentation and perhaps building a small prototype. Instead, that single question slowly expanded into something much larger because every answer naturally led to another question, and every question encouraged me to look at the website from a slightly different perspective. By the time I had finished my initial research, I was no longer evaluating a framework. I was evaluating the website itself, the way it had evolved over the years and the direction I wanted it to take in the future.
Over the following evenings, I immersed myself in documentation, technical articles, conference talks and community discussions, gradually building a picture of the different philosophies behind the frameworks I wanted to understand. Astro remained at the center of that exploration, yet it became one voice among several. Hugo quickly attracted my attention with its maturity, remarkable performance and elegant simplicity. Docusaurus remained an important reference because I already knew its strengths from several years of using it. I also revisited Angular and React, partly because they represent such influential approaches to frontend development and partly because understanding where each framework shines makes it much easier to appreciate the design decisions made by the others.
What fascinated me throughout that process wasn’t discovering which framework offered the longest feature list or produced the fastest benchmark. Those numbers certainly have their place, yet I found myself enjoying a different kind of comparison. My notes gradually became a collection of architectural observations instead. I explored rendering strategies, Markdown workflows, image optimization, routing, deployment models, extensibility, content management, developer experience and long-term maintainability, always asking how each decision would influence the experience of both writing and reading over the coming years. Somewhere along the way I noticed that my notes contained fewer framework names and many more questions about the website itself, and that shift in perspective turned out to be one of the most valuable outcomes of the entire exercise.
The website I had originally built reflected a different stage of my journey. It introduced my professional experience, presented selected projects and provided a place where I could occasionally publish technical articles. Over time, without any deliberate plan, the website quietly grew into something far more personal. I began writing longer reflections, documenting architectural decisions, publishing experiments, collecting reading notes and sharing ideas that I found interesting long before I considered whether they belonged in a traditional portfolio. At the same time, photography gradually returned as an important hobby, and I could already imagine a future where photographs, visual stories and galleries would naturally become another part of the website. Looking at it through that lens, I realized I was no longer designing a digital business card. I was building a place that reflected my curiosity.
That realization quietly influenced almost every decision that followed. Astro consistently felt aligned with the kind of experience I wanted to create because its content-first philosophy encouraged exactly the qualities I valued most. Static HTML, responsive images, selective JavaScript, excellent Markdown support and the flexibility to introduce interactive components only where they genuinely enrich the experience all contributed to an architecture that felt both simple and future-oriented. The framework itself became less important than the confidence that it could comfortably grow together with the website over many years without encouraging unnecessary complexity.
Once I decided to migrate, I quickly realized that replacing the framework would touch almost every part of the project anyway. That naturally created an opportunity to revisit countless decisions that had quietly accumulated over the years, and every improvement I made seemed to reveal another one worth pursuing. Instead of limiting myself to the migration itself, I decided to treat the project as a complete modernization of the website and to improve every aspect that no longer reflected the standards I wanted for the site.
By the time I finished, the migration had grown into a much broader transformation:
- Migrated the website from Docusaurus to Astro.
- Switched the development workflow from npm to Bun.
- Reimagined the homepage as a personal website instead of a traditional CV.
- Refreshed the overall visual design with improved typography, spacing and responsiveness.
- Reorganized the content structure to make articles and projects easier to discover.
- Optimized every image and generated responsive image variants automatically.
- Reduced JavaScript delivery and significantly decreased the overall bundle size.
- Improved loading performance and Core Web Vitals across the entire website.
- Added German and Arabic alongside English, with every language written naturally for its audience instead of following direct sentence-by-sentence translations.
- Improved discoverability through better metadata, structured data, sitemaps, canonical URLs, robots.txt and AI-oriented files such as
llms.txt. - Refined the publishing workflow together with GitHub and Cloudflare to simplify deployments and global content delivery.
- Reviewed dozens of small details that had quietly accumulated over the lifetime of the project and finally gave them the attention they deserved.
Looking back at that list, I find it interesting how little of it appeared in the original idea. My curiosity had begun with a single framework, yet every improvement naturally revealed another opportunity to make the website a little better, much like the compound effect James Clear describes in Atomic Habits. Optimizing images encouraged me to revisit performance, improving performance led me to rethink the publishing workflow, restructuring the content inspired a more personal homepage, and introducing multiple languages encouraged me to think more carefully about the readers I wanted to reach. The migration gradually stopped feeling like a sequence of independent tasks and became a single engineering exercise where every decision strengthened the next one.
By the time I published the new version, Astro had become only one chapter of a much larger story. The real outcome was a website that felt more coherent, more personal and much closer to the vision that had quietly developed over the years. Looking back now, I appreciate the migration because it gave me an opportunity to pause, revisit assumptions and deliberately shape the next chapter of the website instead of simply continuing along the path it had already been following.
Settling the Infrastructure
The framework migration naturally raised questions about hosting and delivery. Moving from Docusaurus to Astro meant reconsidering the entire deployment pipeline. A separate article covers how the hosting migrated from GitHub Pages to Cloudflare, the domain registrar comparison, the pitfalls with package manager detection and Docusaurus URL configuration, and the steps involved. Together with the framework change, that migration completed the modernization of the infrastructure that now powers this site. For the full technical architecture, content collections, image handling, SEO setup and deployment workflow, see How This Website Works.
More Than a Framework
As I look at the website today, I find it difficult to think of this project as a framework migration. Astro certainly became an important part of the story, yet the framework gradually faded into the background as the project evolved. What remains much more visible is the website itself, the way it feels to use, the way it reflects my interests and the way it supports the kind of content I want to create over the coming years. The migration simply created an opportunity to pause, revisit years of accumulated decisions and deliberately shape the next chapter instead of continuing to build on choices I had made several years earlier.
Perhaps that is what I value most about projects like this. They create space to think beyond the immediate technical decision and to ask broader questions about purpose, direction and experience. Every improvement became part of the same vision, and together they transformed much more than the technology behind the website.
Today, that vision is reflected in several ways:
- A personal website instead of a digital CV: where articles, projects and ideas tell my story far better than a traditional résumé ever could.
- A content-first experience: where performance, responsive images and lightweight pages help readers focus on what they came for.
- A publishing workflow built around simplicity: allowing me to write in Markdown while GitHub and Cloudflare take care of everything that follows.
- Content that feels natural in multiple languages: with each locale written for its audience instead of mechanically translated.
- A foundation designed for continuous evolution: leaving room for photography, richer visual storytelling and whatever ideas emerge next.
Looking at that list, I realize that none of those outcomes appeared in the original plan. They emerged gradually as one improvement inspired another, and that progression taught me something I have experienced many times throughout my career. Good engineering rarely comes from searching for a perfect solution. It grows through exploration, thoughtful evaluation and a willingness to revisit decisions that already seem perfectly reasonable. Every question opens the door to another, and every answer deepens our understanding of the system we are building.
One thought has stayed with me ever since I finished the migration. Astro feels like the right choice for my website today because it aligns with the direction I want to take right now. Five years from now, another conversation, another article or another framework may encourage me to look at the same problem from a completely different perspective, and I genuinely hope that happens. I don’t aspire to find a technology that remains unchanged forever. I hope to remain curious enough to keep learning, keep questioning my own assumptions and keep improving this website whenever a better idea presents itself. In many ways, that ongoing evolution feels far more important than the name of the framework powering it.
If this article tells the story of why the website changed, another article tells the story of how it works. The migration eventually led to a publishing workflow built around Astro, GitHub and Cloudflare, and that architecture became an equally enjoyable engineering project in its own right. If you’re interested in the technical decisions behind the stack, the deployment workflow and the infrastructure that powers this website, you’ll find that story in my companion article.