taste and judgement are the new niche
Building got easy – what’s left is taste and judgement, knowing what good looks like and what to keep. This is how I built my brand and this site end to end, from the colors in my wardrobe to the code, and how I check that every layer still feels like me..
I think taste and judgement are the new niche. I built this whole site with AI, and honestly the code was the easy part. What took my time was deciding what good looks like, and what to keep and what to throw away..
So when I built this site from scratch, the brand, the design system, the components, the CMS, the deploy pipeline, basically all of it, that’s what I paid the most attention to. It’s probably a long one.. so I’ll go in the order I built it.
What I enjoyed most was seeing an early decision show up again much later. A color I picked in week one showed up in a component like six weeks later, and a rule about my voice that I wrote down once was still checking my posts months after.

So I build digital products end to end, design, product and engineering, and I also lead a digital studio at a consulting company. Both are true at the same time, so a brand that only showed one of them would be wrong.
I didn’t start with pixels, I started with how I come across, and I think I got there via an interview question. I’m friendly, approachable, non hierarchical, cool and trendy, and selectively extrovert. And I’m direct and I use simple words, I’m not sophisticated for the sake of it.
Three taglines came out of this work, and the one that stuck is “where craft meets clarity”. I think it’s the simplest and the most honest one.

My colors came from my wardrobe, and that was on purpose.. I just wanted a starting point on what I actually like, and I think the best way to get a color palette that describes your brand is what you wear. So that’s how I got to sharing my wardrobe, fourteen pieces I wear a lot, photographed and looked at together.
And yeah, everything I go for sits in the same colors, terracotta, a warm parchment and forest teal for depth, no cool tones anywhere, and every light base is a little warm. The accents match too, dusty rose, amber, copper, and even the graphics repeat, stuff like botanicals, suns and prints that look hand-carved. So from there I organically picked the palette..
The logo took longer. I tried a KV in Playfair Display first, and then a rounded shield. In the end, honestly, it was just pure taste. I wanted something cool enough that still reads well in all form factors, a tiny favicon, the nav, a big screen. The K and the V overlap, and that overlap adds some distinction to it, so it’s not just a mere font.

The wardrobe gave me one more thing. I do like t-shirts whose front is simple and back is amazing, because I like a delight that is initially unnoticed, and then when you see it, you’ll be like, wow. So the brand works the same way, quiet on the surface, and more to find the longer you look.
For images, I’d rather show the real thing than a picture that stands for it. So it’s a screenshot of what I built or a photo of what I actually wear, and whenever I talk about tech, a diagram that explains how it works.
One rule carries over from the brand, one terracotta moment per image, on the thing that matters, like the part of the screen I’m talking about. Never just for decoration and never more than one, and everything else stays quiet..
Then there’s the part I was most curious about. If a tool is going to write for me, design for me or publish for me, it has to meet the same bar I hold myself to, not close enough, the same.
So I write the ideas first and then ask AI to expand them, I don’t ask it to start from scratch. The organic way I found to do that is my session history with Claude. My ideas are already there in my own words while I build, so I use those sessions and transcripts as the context for extracting my original thinking, and expand from there..
A post gets made when there’s something I want people to take away. The big idea is usually what I’m building, and the post is about what I chose, why I chose it, what it’s solving and how I’m solving it, getting deep into the design, product and tech techniques I put into use to get there. And I’ll only put it in if I find something I like, that’s solving my problem, and that I feel others can learn from..
So I also built skills, basically agents with my brand rules locked in, because I wanted to see if my taste could carry over to a tool. And my test for whether one works is pretty simple, it gives me something I don’t need to correct. Getting there definitely takes work, and that’s what evals are for.

Every skill goes through the same loop. I run it, I read what comes back, and I ask one question, does this sound like me, or does it sound like someone describing me? As part of that eval check, I used to give a lot of examples of what I meant and what I didn’t like, and then I would harden the eval.. Someone describing me uses words I’d never say and reaches for fancy language, and that’s not a small miss, it’s a different person.
I think in this case the loop has two parts, verification and validation. Verification is the checks, so each eval has a list of things the output must do, and I run it with and without the skill to see the difference. Now Jev, a model from TypeSafe, also checks every draft for AI slop and for whether it sounds like me. And validation is me, I read it and decide if it’s actually right..
Every correction goes into a log, and specifically, for example “don’t use ‘building alone’, it leaves out that I also lead teams” or “don’t say ‘on-ramp’, not my language”. Each entry has the verdict, the reason and the rule, and the next session starts from that log. It got cleaner over time, not because the model changed, but because the corrections added up.
Honestly, that only got me part of the way. Months later I still felt my posts didn’t sound like me, so I had it interview me instead and learn from how I actually talk, and I rewrote this post that way.

Once the brand had a language, that language had to become code.
The design system lives in Storybook. Every token, color, type, spacing, radius, goes back to a brand decision I made earlier, and the palette isn’t hardcoded in the components, it comes from one place. So if I change a token, everything changes with it. The components sit on top, buttons, cards, navigation, and the post layout you’re reading right now. Honestly, it’s not in use anywhere other than the website, but I do occasionally use it as a reference to create PDFs and stuff like that..

Well, under the hood it’s headless WordPress for the content, Next.js for the site, Supabase for comments and likes, and Vercel to deploy it.
Each one is there for a reason. WordPress was a choice of mine for the CMS, and Next.js is something I wanted to gain more expertise on. Supabase and Vercel are there for ease of use, and because they take an MCP-first approach for AI editors, so Claude can work with them directly..
And it all connects in a pretty simple way. WordPress serves the content through its REST API, Next.js fetches and renders it, and the tokens carry the brand decisions into every layer. I think taste shows up in architecture too, in what you refuse to compromise on, and in what you deliberately hand off..

Like I said, I like to try tech, so I didn’t want to just talk about AI-driven development, I wanted to use it from my side. That is why I went with an AI-native style of coding. But I didn’t want everything to be slop and unmaintainable, and that’s why I went spec-first. Every change starts as a spec, a feature or a bug written down first, the spec names a branch, then comes a plan, then a test, and only then the code.
And it’s enforced, not just a habit. Claude can’t edit the site’s code from a branch that no open spec claims, because a hook blocks it, and another one refuses a push with no test change, a push straight to main, or a merge while checks are red. And Claude works in my real tools through MCP, Figma, Playwright and Supabase, instead of guessing about them. Every pull request gets its own preview on Vercel, and merging to main is what puts it live.
And honestly, I was super happy to see a lot of the same ideas in Anthropic’s AI-native SDLC playbook, a plan before any code, Claude checking its own work against tests, and hooks that enforce the gates. I liked it..

I think taste without checking is just an opinion. So design gets a screenshot review at checkpoints, spacing, contrast, alignment, hierarchy, at every breakpoint. Engineering gets tests, and I look at a preview before anything ships, and writing goes through the loop above.
I ask myself three things every time, does it look right, does it work right, and does it feel right, all three, not just one or two. You can build something, it mostly works, and you ship it. But mostly works and looks right aren’t the same thing, and I think that gap is where taste actually lives..

So this was the first thing I shipped, the brand, the design system, the site and the blog. And every decision in it went through the same question, does this meet the standard I actually have?
Before, I didn’t really get to ask that seriously. Now I get to ask it about everything…
