This website is not a startup landing page. And that’s entirely by design.
Right now, the stack is intentionally stripped down: Astro, semantic HTML, vanilla CSS, markdown/MDX, and almost zero JavaScript. It’s hosted on Vercel via GitHub. This isn’t a middle finger to modern frontend frameworks. React, Vue, and Svelte are fantastic tools. But this project simply doesn’t need them.
Choosing the right tool for the job
If twenty years in digital product development have taught me anything, it’s that every technical decision is a trade-off. Yet, as an industry, we’ve somehow made “maximum complexity” our default setting. My goals here are basic: publish thoughts, document experiments, and own my platform. I’m not building a SaaS, a dynamic web app, or a complex corporate product. So, I’m just practicing what I preach to my clients: pick a stack that actually matches the problem you’re trying to solve.
Why so little JavaScript?
A few years ago, you needed JS for almost any decent interaction. Today, modern CSS is a beast. It handles transitions, animations, responsive layouts, theme switching, and progressive enhancement natively. JavaScript hasn’t been banned from this site; it just has to fight for its place. The goal isn’t to be a purist, it’s just to avoid unnecessary overhead. That’s where Astro shines. It sits in that perfect sweet spot: it gives me modern routing, content collections, and a great developer experience without forcing a bloated client-side bundle onto the user. For a site like this, Astro feels less like a framework and more like a lean publishing engine. It keeps things fast and accessible today, while leaving the door wide open for tomorrow.
Enter the Playground
The standard theme of this site is meant to be a quiet, stable foundation. But it’s not going to stay this static forever. People sometimes forget that those of us who manage digital products usually love making things just as much as organizing them. Yes, I genuinely enjoy governance, operations, delivery, and roadmaps. But I also love getting my hands dirty. Playground is where those two worlds collide. It’s a space to mess around with tech, workflows, and ideas without the constraints of a client brief or a commercial deadline. Right now, I’m using Markdown and MDX because it’s lightweight and transparent. But I have zero platform loyalty. Part of the fun of this site will be swapping out pieces of the engine just to see what happens. I want to play with: • Headless CMS & Backends: Directus, Strapi, Laravel, Symfony, Go, Python. • Database & Infra: PostgreSQL, Docker, Forgejo, or full self-hosting. • Frontend boundaries: Canvas, WebGL, WebGPU. I’m not looking for the “perfect” stack. I want to understand the friction, the strengths, and the trade-offs of each approach through actual, hands-on experimentation. Some of these tests will be useful, others will break completely. Both outcomes are a win.
Built to last
This website isn’t about chasing the framework of the month. It’s about building a durable personal platform for my writing, my experiments, and my curiosity. Sometimes, the best architectural decision isn’t adding another layer. It’s knowing when to stop.