I've never built a website from scratch before. Not like this, anyway. I've pieced together something on Wordpress and Squarespace. I've also lived on other people's platforms for years: Twitter, Medium, Substack. They all felt like places for someone else's profit and purpose so when I decided to rebuild a personal website, I decided to start with ground zero.
Minimal coding experience. No templates to inherit. Just the idea that I wanted space to think out loud without an algorithm watching. I realized I didn't just want a place to publish. I wanted to understand how it worked. I wanted to own the infrastructure in a way that mattered. And I wanted a place that could grow with me. One that wouldn't lock me into someone else's vision of what a website should be.
Choosing the Foundation
Before writing a single line of code, I had to figure out what I was actually building with. Ghost seemed appealing at first. Clean, focused on writing, with a nice interface. But it felt too close to the platforms I was trying to escape from. Polished, sure. But also prescriptive about what a website should be. There was also a price tag which I wasn't ready to commit to yet.
Then, web searches brought me to Astro, which promised speed and flexibility. Many websites and videos told me this was the hot trendy thing to build with. The documentation looked accessible and a community existed if I needed help. But something didn't quite click. Maybe it was the learning curve, or maybe it was something about corporate money being invested in it that felt slightly off.
I eventually landed on Eleventy, and the criteria that led me there were pretty straightforward. Design customization mattered because I wanted this site to evolve as I learned, not be trapped in someone else's structural and aesthetic decisions. Organization through sections and tags would let me categorize the various topics and projects I planned to write about. Ethics felt important too. I wanted something humanist, maintained by people who weren't embroiled in tech drama or building extraction machines.
Eleventy checked these boxes. It's a static site generator that gets out of your way. It also seemed like a system with a community that I can lean on to figure things out. Perfect for someone who wanted to understand the building blocks.
The same thinking led me to Buttondown for the newsletter. Built by someone who cares about writers more than metrics, integrates cleanly with Eleventy. Everything under one roof at adibjalal.com instead of farming out the mailing list to another platform.
Building with Claude
I used Claude Code to build the site, which is a bit like admitting I used a supercomputer to do basic math. Except the math is in a language I don't speak and the computer occasionally gets creative with the answers.
My workflow looked like this: I'd type prompts like "make the navigation bar cleaner" or "add a button that takes you to a random page." Sometimes I'd drop in a sketch I drew on paper. Sometimes I'd send Claude to look at other websites and say "something like this but different." Vibe coding, basically. Describing feelings and hoping they translate into functional CSS.
Claude would generate the code and explain what it was doing. I'd read the explanations. Some made sense: "Oh, this bit controls the color." Other times I'd stare at terms like "flexbox" and nod along like I understood, the way you do when someone's giving you directions in a language you're pretending to speak.
It worked. Mostly. But there was this one time when I was trying to get one of the texts in the drop-down menu to align to the left and I went back and forth for maybe twenty minutes, me describing what wasn't happening, Claude trying different approaches, until finally it worked. I still don't fully understand why the fix worked. I just know it does now.
Other times, things broke in ways I couldn't even articulate. Layouts that looked fine on my screen but turned into a disaster on mobile. Colors that seemed reasonable at 11 PM and garish the next morning. I'd ask Claude to check its work. Sometimes it caught the problem immediately. Sometimes we'd iterate until something clicked.
I started recognizing patterns after a while. Not enough to write code myself, but enough to have opinions. I could look at the stylesheet and think "that seems inefficient" or "why does this specific error keep repeating." The kind of learning that happens when you're forced to pay attention because you don't know what you're doing.
For someone with little coding background and not much design experience lately, this was revelatory. I could experiment with typography, try different color palettes, rearrange entire layouts, all without getting stuck on whether I'd formatted the CSS correctly. The aesthetic choices were mine. The judgment calls were mine. Claude Code just made them possible to execute.
This was especially useful for my situation. I have a full-time job. I'm a parent to a toddler. The website got built in the gaps after bedtime, during weekend naps, and when I snuck away to hide from my toddler. Some days I'd get an hour. Some days I'd get ten minutes. And on many days, I just didn't want to look at my screen or was just trying to remember what I was working on a few days ago.
One month on, there's a somewhat working version. I've made peace with the fact that I'll always have to build in fragments of time. Either that, or I don't build anything.
What Got Built
The site now has these:
- The Blog — where this post lives. Thinking out loud, work in progress.
- The Newsletter — runs on Buttondown at adibjalal.com/newsletter. For people who still like receiving words in their email.
- Projects — individual spaces for separate projects. The idea is to give each one a layout and features that tell the story best, not be stuck in some platform's template. Right now: Footnotes.
- Lucky button — just for fun. Takes you to a random page.
None of them are finished. They're scaffolding.
I still don't think this website feels like me. Some days it feels right. Other days it feels like I'm wearing someone else's clothes. Maybe that's just what early-stage building feels like: trying on different versions of yourself, seeing what fits. The design will change. The structure will evolve. I'll figure out what this space wants to be by using it, not by planning it perfectly upfront.
That's what this is. A website that exists because I decided it should. Built in fragments, enabled by AI assistance, glued together with persistence.