Five Years in Maintenance Mode
The domain sat in maintenance mode for five years. Every January I told myself this was the year I would build it. Every December I had not. The page showed two words and a quiet apology, and I kept paying the renewal fee like a man who pays gym membership for a gym he never enters. The block was partly time and partly something else. I wanted the site to be perfect. I knew what perfect looked like in my head and I knew the gap between that and what I could ship in the hours I actually had. So nothing went up. Five years of nothing.
What changed was simple. I am starting a company. You need a website when you start a company. You can argue with that, but the argument is boring and you will lose it to anyone who has tried to send a stranger a link to themselves. I could have built the site in Framer. I know Framer. I could have built it in Webflow. I know Webflow too. But AI made the whole thing easier in a way I had not fully internalized until I actually sat down with it, and the timing lined up with the company, and the tools were finally good enough to let me skip the parts I hated and focus on the parts I cared about. So I stopped negotiating with myself.
The other shift was internal. Somewhere in the last few years I learned that shipping matters more than perfecting. I used to believe that if a thing was not excellent it should not exist. I now believe that if a thing is good and it is out in the world it will beat the excellent thing that lives in your head. This site is not perfect. It is good. Good is what I had, so good is what went up.
Friday Was a Disaster
I started thinking about it on a Thursday night. Not in any structured way. I was on the couch with my phone and the idea formed the way these ideas always do, half a sentence at a time, while I was supposed to be doing something else. By Friday morning I was at my desk in the home office with coffee and a blank repo and a plan that lasted maybe four hours before it collapsed.
I had asked the AI for a first design pass, and what came back was the kind of work that gets approved in rooms where nobody knows what they are looking at. Generic. Safe. The visual equivalent of a stock photo of a handshake. I am a designer. I have spent my professional life telling the difference between a layout that breathes and a layout that just sits there. So I knew, immediately and with some irritation, that what I was looking at was not it. The thing that saved me on Friday was not that I could rewrite the CSS myself. I can read CSS. I am pretty good at HTML and PHP, decent at glancing through JavaScript and Python, but I could not have built a complete app on my own from scratch. What saved me was that I could see what was wrong. I could point at the problem with a vocabulary the AI understood, and that turned out to be the entire job.
Eight Chats, One Human Awake
I went to bed late, slept badly, and started again on Saturday. The restart was the moment the project actually began. I opened Claude Code and made it the lead. Copy, design, architecture, all of it routed through one agent that was holding the whole picture. Then I opened GitHub Copilot, running GPT 5.4, and gave it the secondary role. Copilot patched buttons and fixed small things in parallel while Claude was doing the heavier lifting. Picture it like this. Claude is running a security audit on the back end and Copilot is two tabs over making sure the hover state on a link does not look broken.
By Saturday afternoon I had eight chats open at the same time, eight different threads doing eight different things, and I was the one switching between them, holding the brief, deciding what was good and what was generic and what needed another pass. At two in the morning the home office looked like a small command center. Eight conversations going. One human awake. Five hours of sleep total across the whole stretch from Thursday to Sunday night, when the thing finally went live.
The Breathing Red Dot
There is a small red dot on the home page that breathes. It pulses, slowly, the way a cursor blinks but softer, and I spent more time on it than any rational person should spend on a single design element. I rewrote it four or five times. The timing was wrong, then the easing was wrong, then the color was wrong, then the size was wrong relative to the type next to it. None of those things would matter to most visitors. They matter to me. They are the kind of detail that separates a site that feels alive from a site that feels assembled. And the fact that I could obsess over a breathing red dot, instead of fighting with the build pipeline, is the entire point of what has changed in the last two years.
Mobile responsiveness was the real grind. Desktop was mostly solved by Saturday evening. Mobile took until Sunday and is still not where I want it. There are bugs. I know where most of them are. I will fix them. Some I will not notice until someone tells me. That is fine. The site is up. The bugs are part of the deal you make when you decide that shipping is the discipline and perfecting is the trap.
Friction Is a Feature
The about page taught me something I should have already known. I sat down to write it expecting to describe what the site was, and instead I figured out what the site was by writing it. The page was the brief. I had not understood the project until the words for the project existed, and the words did not exist until I forced them out. Every founder I respect has told me some version of this and I had nodded politely every time. Now I have done it and I understand why they kept saying it.
The blog was a choice I made against my own convenience. The easy path was markdown files in a folder. Drop a file, deploy, done. I built a structured system instead, with a CMS and proper fields and a workflow that takes longer to publish than markdown ever would. The reason is that friction is a feature when the alternative is publishing too often. I have watched people, including myself, use the ability to ship instantly as a way to never ship anything that mattered. A small amount of friction filters the impulse posts out. What is left is what was actually worth saying.
The Hands Are Cheap Now
For most of my life the constraint on building was whether you had the technical hands. If you could not code, you could not ship. You could have the taste of a god and the judgment of a senior partner and you were still standing outside the building looking in, hiring someone or waiting on someone or compromising on what they gave you. That constraint is gone. The new constraint is whether you have the taste to direct the hands. Whether you can look at a first draft and know it is generic. Whether you can hold a brief in your head for three days without losing the thread. Whether you can tell the difference between good and almost good, and whether you have the patience to keep asking until you get it. The hands are now cheap and infinite. The judgment is the bottleneck.
For people like me, who spent years developing taste without ever building the hands, this is the unlock. For people who have hands but no taste, the next few years are going to be uncomfortable. I do not say that with any pleasure. I say it because it is what I watched happen on my own desk this weekend. The site is a filter. The people it is for will get it. The people it is not for will leave, and that is the outcome I want. Built in a weekend, from a home office, with two AIs running in parallel and about five hours of sleep stretched across four days. The domain is no longer in maintenance mode. That alone, after five years, feels like the only proof I needed.