My website was fine. That was the problem. I built kepakisan.co.nz with AI in the first place, and it looked exactly like that: a cream background, a big italic serif "Hi, I'm Maha", a little pulsing "open to consulting" badge, floating stat cards, emoji tiles. Not bad. Just the same as every other site an AI makes when you ask it for a personal website.

But the cream wasn't really the problem. It didn't feel like me. It wasn't a Maha Kepakisan brand, just a website. I'd been looking at award-winning websites and thinking, mine doesn't feel like that. Then an Instagram Reel popped up claiming a handful of links would turn AI into a proper web designer. Instagram is not where I normally take engineering advice. But I was curious enough to open Claude Code, point it at my repo and ask a slightly awkward question: can you make this look premium, not AI basic?

What started as a website refresh turned into a rebrand. Three days later the site had a design system and a Balinese identity. Then the CV and every blog post followed, and a few weeks later came a new mark, a brand book and a homepage headline I actually believe. This is the full story, including the bits where I was wrong and the bits where the AI was. The mistakes are the useful part.

3Days for the site, 8 to 10 October
50Commits on one branch
10/20Starting design audit score
1Pull request, one preview link

Why bother with a brand? I'm a big believer that a personal brand matters more now, not less. With AI, a lot of technical work is easier to reproduce than it used to be. What people remember is the person: your story, your voice, and the proof behind it. The brand gets you noticed and remembered. The proof is why people trust it. My site needed both.

If you only want the takeaways, they're at the end. Jump straight to them.

How it started

Ask Before You Install

The Reel pointed at four links: Taste Skill, Impeccable, awesome-design-md and img2threejs. My first message to Claude wasn't "install these". It was: before you do anything, tell me if that's true.

ELI5: what's an AI skill?

A skill is a set of written instructions the AI reads before it starts a particular job. Think of a new staff member on their first shift. They already know how to do the work, but you hand them the "how we do it here" guide so they do it your way. Same person, same ability, better habits.

A design skill is that guide for building websites: what good spacing looks like, which fonts work, which patterns scream "AI made this". The AI reads it first, then builds.

Here's how the four stacked up.

LinkWhat it isVerdict
Taste SkillDesign rules the agent reads before building: layout, type sizes, spacing, hierarchy, motion. It also bans the patterns that make sites look AI-made.Use it
ImpeccableBuilt on Anthropic's own frontend design skill, with deeper guidance on type, colour, motion and UX writing. Has audit, critique and polish commands, plus a detector for generic "AI-generated" design.Use it. Probably the most useful of the four.
awesome-design-mdA collection of DESIGN.md files describing the design systems of sites like Stripe, Linear, Vercel and Apple.Good for inspiration, but copy one too closely and your site looks like Stripe's, not yours.
img2threejsTurns a photo of an object into a 3D model in the browser.Not for a personal site made of plain HTML. Impressive, but it adds weight for nothing.

Funny thing about img2threejs: it really wasn't for my website, but it gave me an idea for work. Our health and safety app now has 3D renderings of our vehicles, built on the same Three.js idea, so people can pinpoint exactly where the damage is. That's a blog for another day.

Installing them was less exciting than it sounds. Claude copied both skills into a hidden .claude/ folder in my repo, plus Taste's separate "redesign existing projects" skill. Before committing, it read the one script in there that downloads a program, and confirmed it only fetched from the project's own GitHub releases. That's the kind of check I want done before anything lands in my repo, and it did it without me asking.

The Audit: 10 Out of 20

Step one was an honest look at what I had. Impeccable's audit scored my site 10 out of 20, which it calls "Acceptable, significant work needed". Darn, that sux. Fair though.

AreaScoreWhat it found
Accessibility2/4My terracotta colour failed contrast. White on terracotta was 3.6:1 against a required 4.5:1. Some list text was about 10px.
Performance2/438 timeline logos loading at once. One logo was 690KB. The nav icon was 233KB for something shown at 50px. The pictures folder was 12MB.
Theming2/4Colour tokens existed but got bypassed by inline styles, especially on the blog cards.
Responsive3/4No sideways scrolling on phones, but the "scroll" hint overlapped the buttons, and on desktop the headline left "into" alone on its own line.
Looks hand-made1/4The textbook AI-template look.

That last row stung, and it was right. The detector flagged the whole kit: cream background with terracotta accents, a big italic serif headline, a pulsing-dot badge, floating stat cards around the photo, blurred glow blobs, coloured left-border accent bars, emoji icon tiles and pills everywhere. None of them is wrong on its own. Stacked together, they're the uniform. And part of the reason my site looked AI-made is that my old palette was close to Claude's own warm cream style. Funny, that.

After: the new homepage hero with bold type, Tri Datu red, the tiered gate photo frame and the company logo strip Before: the old homepage hero with a cream background, italic serif headline, an open to consulting badge and floating stat cards
The homepage. Before: cream, italic serif, a consulting badge and floating stat cards. After: Tri Datu red, bold type, the candi bentar photo frame and the logo strip. Drag to compare.

It said something nice too, which I'll take. The content was better than the design: the Bali to Otago to PwC to Ritchies story, real numbers like the $60k a year avoided on OpsCentre, an honest writing voice, a blog I actually keep updating, and a YouTube channel. The fix wasn't new content. It was a design that got out of its way.

Never Work on the Live Site

Nothing went near my live site until I was happy. All the work sat on a separate branch with one pull request, and my site runs on Azure Static Web Apps, which builds a preview site with its own URL for every pull request. The live site isn't touched until you merge. One pull request gives you one preview link, every push updates that same link, and when you merge or close the PR, Azure deletes the preview. I left the same PR open for the whole project and just kept refreshing.

Heads up if you're on the free tier: Azure Static Web Apps caps a site at 250 MB on the Free plan, and it counts everything you deploy, which for a simple site like mine is the whole repo, not just the pages people visit. I found out while writing this post, when a 17 MB video pushed mine over and the preview refused to build. Keep videos on YouTube, go easy on screen-recording GIFs, and delete files nothing uses. If you outgrow it, the Standard plan raises the limit.

The part I'd tell anyone to copy

No IDE needed. Just your phone and a link.

Screenshots in a chat are fine, but nothing beats clicking around the real thing, on a laptop and on a phone. And this changed how I check things.

Before

Open the project in Kiro or VS Code
Spin up localhost
Click around on my own machine

Now

Talk to Claude from my phone
Wait a couple of minutes
Refresh the preview link

That's a big deal for anyone who doesn't want to learn an IDE. If you're not techy and just want to iterate on your site from the couch, this is how.

It also checks its own work, and this is where Claude Code felt better than Kiro for me. It didn't just change the code and tell me it was done. It opened the site in a real browser, at desktop and phone width, in both light and dark mode, and actually looked at the result. I could see the screenshots it took as part of the process. It checked its work the same way I would.

Finding the look

Version One Was "Too Okay"

Claude's first go was an editorial, magazine-style look: big confident type, facts in thin "ledger" rows (which suits an accountant, to be fair), new self-hosted fonts and dark mode. Out went the cream, the italic serif, the glow blobs and the emoji. It even fixed a broken Bartercard logo on my live site I didn't know about.

My honest reaction: I liked the typography. I didn't like my photo being square, I couldn't tell where one section ended and the next began, and overall it was too okay. Nothing wow.

Claude's answer was that "wow" mostly comes from motion and interaction, not layout, and it gave me five very different sites to look at. One stuck: Dennis Snellenberg's, for the feel. Things move because you scrolled, not because a timer said so. I didn't ask for a copy. I said what I liked, with one condition. Dennis is a UX designer and I'm an engineer, and I didn't want to pretend to be him.

Bring references, and say why. "Make it modern" gets you the average of the internet. "I like how this one moves when you scroll" gets you something with a point of view.

A few things got borrowed from Dennis and adapted for an engineer. On your first visit, a dark screen flicks through Om Swastiastu → Halo → Kia ora → Hello (Balinese, Indonesian, Māori, English), then slides away. My Bali to New Zealand story in under two seconds, once per visit. The buttons are magnetic and lean toward your mouse. The closing section's top edge curves and flattens as you scroll into it.

What got left out on purpose: custom cursors, hijacked smooth-scrolling and constant animation. That's what makes Dennis's site read as a designer's site. Mine keeps the substance up front, with motion as a finishing touch.

Making It Look Like Me: Bali

This is the part I'm proudest of. It's the soul of the site now, the thing that makes it mine and not just another AI-generated site. I asked a simple question: any idea how to bring Bali design into this? Here's what came out of it.

Claude was careful with the cultural side. It raised the obvious concern about poleng before I did: it's sacred, so decorative use needs care. That's why it only sits where it would in Bali, at the thresholds. And the red still passes accessibility contrast, at about 6:1 against the 4.5 minimum, with a lighter red in dark mode.

Now the colours mean something. If anyone asks why my site is red, black and white, there's a story.

The Most Useful Thing It Did Was Say No

Partway through, I typed: "btw if any of my asks you think is bad idea, just say so please." That one line changed the whole project. Here's what it pushed back on, and where we landed.

I asked forClaude saidWhere it landed
Tri Datu strips between every sectionRare is what makes it special.One progress thread at the top instead.
Animated tool iconsThree scrolling strips on one page "starts to feel like a casino". Many of my tools have no usable icon, and Microsoft restricts its product logos.No icons. Later, a one-off "burst" of word bubbles that settle into the list.
A map of where I've livedToo much. One more big visual competing with everything else.A quiet route in the About fact box: Bali, Christchurch, Dunedin, Auckland, joined by a red line.

The AI isn't always right. The point is that both of you are allowed to say nah.

It went the other way too. "Too okay" was me saying no to its first draft, and you'll see me do it again with my CV. Say no, say why, look again. That loop is the whole method.

The Resume and CV Were the Hardest Part

My Resume and CV are HTML pages I print to PDF, and I need exact A4 pagination. No extra page with three lonely lines, no big gap halfway down. I'd tried this before with Kiro, asking it to make it pixel perfect so I could print it on A4, and it never quite got there. Claude Code rebuilt them so the Resume prints to exactly 2 pages and the CV to 4, and it checked the page counts in a browser before every push. After my Kiro attempts, that alone felt like a win.

The look was already mine. I designed this two-column style myself, well, about 90% of it, before AI was in the picture. In Microsoft Word. If you've ever tried to line up two columns in Word, you know the pain: nudge one text box and the whole page reshuffles itself like it's got somewhere better to be. When I first built the site, I asked AI to make the Resume and CV match my website, and this time I asked the same again, so the branding stays consistent everywhere. Its first rebuild came back as a single column, the kind every applicant tracking system loves. I didn't like it. Two columns is deliberate: it stands out instead of blending in. So two columns stayed as the default, with ATS versions in the same folder in case an online application form needs one.

Making it last

When the Chat Gets Too Long, Write It Down

The full circle

I started with other people's skills. I finished with my own.

1Borrowed

Taste and Impeccable. Someone else's rules for good design.

2Written down

DESIGN.md and CLAUDE.md. My rules, in my repo.

3Made mine

My own skills, so the next post or update is done my way, every time.

This is the bit I'd want anyone to take away. The Reel got me started with someone else's habits. By the end, the site had its own.

It started by accident. Part way through day one, I noticed the context window was at about 70%. If the chat ran out, a new one would have no idea what we'd decided. So I asked for a detailed markdown file in the repo that any future session could follow. Claude wrote two.

DESIGN.md is the full design system: colours, type, every component, the Bali rules, the motion rules and the gotchas we'd hit. CLAUDE.md is a short file Claude Code reads at the start of every session, with the house rules: never invent facts about me, no em dashes, one red accent, and check screenshots on desktop and phone before pushing.

Good thing, because the chat did run long, more than once. Each time, the work picked up where it left off, and the design didn't drift.

Make It Repeatable

Remember the skills from the Reel? You can write your own, and that's the last step of the circle. I asked for two.

Skill one

Publishing a blog post

I write each post as one self-contained HTML file, CSS and all, paste it into my code base and say "make sure all links work and style adheres to code base standard". The skill now does all of it: swaps in the standard style while keeping each post self-contained, maps old colour names to the new palette so older diagrams adopt the look, fixes links and anchors, swaps Google Fonts for my self-hosted ones, fixes the social share image, lists the post on the blog page and homepage, and runs a checker for broken links, wrong fonts, dashes and emoji icons. It never touches my words. This post went through it.

Skill two

Ranking my tools

My "Tools of the trade" list had some tools in bold, so I asked: did you bold these based on my timeline, or did you just guess? It had guessed. So we made the data decide. Every role on my timeline lists the tools I used there, the list orders itself by years of use, and bold means three years or more. Everyday tools like Excel sit at the end and are never bold, because Excel at the top is accurate and completely unimpressive. When my timeline changes, the skill re-runs the ranking, and it asks me rather than guessing when a tool has no role against it.

After: the new Tools of the trade section, five columns ranked by years of use with long-used tools in bold Before: the old Tools of the trade section with coloured pills and filter tabs
Tools of the trade. Before: coloured pills, bolded by guesswork. After: ranked by years of use from my timeline, bold means three years or more.

Two more before and afters

After: the new Journey section with a ledger of stats, collapsed roles and moments beside each job Before: the old Journey section with emoji filter buttons and boxed timeline cards
Journey. Before: emoji filter buttons and boxed cards. After: a ledger of stats, collapsed roles, and the moments beside each job.
After: the new Writing section with a dot chart of every post and the latest one highlighted Before: the old Writing section with emoji tiles on each post card
Writing. Before: emoji tiles. After: a chart of every post, with the latest always highlighted.
The mark

The Last Piece: The Mark

The mark came last, and on purpose. The website came first, since my live site already had most of this look and feel. The icon took longer, because I wanted to think it through. It's dear to my heart. It's the mark that is my brand.

The icon journey started with another Instagram Reel, this time about Google's Pomelli. I tried it, and it gave me a brand book and a place to start. Gemini and ChatGPT weren't great at producing high quality images, but they gave me the base and the foundation for the new mark. Claude then refined it into what you see here.

Three marks side by side: the old terracotta gate, the new vermillion primary mark of a split gate with koru curls at its roots, and the Tridatu edition outlined in red, black and white
The old gate, the new primary mark for every day, and the Tridatu edition for special occasions.

The new mark is about where I am now. I spent my first 17 years in Bali and the last 23 in New Zealand. For a long time I couldn't call myself a Kiwi. As I get older I feel closer to being one, but the Bali roots are still there. I'm a bit of both. So the mark is still the candi bentar, the split temple gate, but its roots are now koru. Bali-born, Aotearoa home.

Then there's the Tridatu edition, woven with the benang tridatu thread. In Bali today the three colours carry Hindu meaning: red for Brahma, black for Wisnu, white for Siwa. But the same red, black and white seem to show up right across Austronesian cultures, Māori and Batak among them. Coming from Bali, seeing those colours in Māori design here gives me a homey feeling. Two homes, one palette. I'm digging into that properly in a blog that's coming. For now the Tridatu edition is saved for special occasions. Every day, it's the primary red mark.

It all came with a proper brand book, and even the homepage headline now comes from it: "Building the systems behind better decisions."

And it came full circle again. The brand folder in my repo has a README that tells people and AI tools which file to use and when. So when I asked Claude to put the new mark on the site, it read the rules first, used the primary version everywhere, and asked me before touching the Tridatu one.

At work

It Came to Work With Me

Here's the bit I didn't expect. Once I understood how skills work, I went looking for more. Then the algorithm noticed. Reels and YouTube Shorts kept feeding me skill after skill, which is a bit weird at my age, but here we are.

So I took what I'd learned on my own website and tried it at work, on TRAVEL, the charter booking app I built. Claude Code had always built it fine, but the UI never quite looked nice. This time I gave it the same skills I used here, and asked Claude to run a deep research search for any other skills that would help. It did more than reskin it. It regrouped the modules, so related ones now sit under a bigger one (capacity and day of ops both live under ops now), and it made it obvious what to do first instead of leaving people to work it out. Yes, it looks much nicer. But what I like most is that its first cut was already very good, and it cut down the clicks people need to get things done.

For the last year, my answer to "make it not look like AI" at work was Magic Patterns, an AI UI and UX design tool. It did the job, but the more I used it, the less I liked the pricing. And I don't love having lots of separate AI tools on the side. After TRAVEL, I stopped the subscription. I told my boss we don't need the US$17 a month anymore, because Claude Code can do the same thing, if not better. I just needed the right skills.

Honestly, this whole exercise blew me away with how good Claude has become. Since then I've hardly touched Kiro. I'm increasing my Claude plan and scaling Kiro back, and one day I might turn Kiro off altogether and use Claude in VS Code instead.

Before you pay for another AI tool, check whether a skill gets the one you already have there. For me it did, and one less subscription is one less thing to manage.

Wrapping up

What I'd Tell You

10 things
to steal
01

Check the hype before you install it

Ask what a tool or skill actually does, and whether it fits your site. Install the one or two that do. More rulebooks means more conflicting advice.

02

Start with an honest audit

A score and a list of "this looks AI-made" patterns tells you what to fix. It also tells you what's already good, usually your content.

03

Get a preview link

If your host supports pull request previews (Azure Static Web Apps, Vercel and Netlify all do), you get a private copy of the new site that updates on every push, and the live site is untouched until you merge. Review the real thing, not screenshots in a chat window. You don't even need an IDE: talk to it from your phone and refresh the link.

04

Bring references, then say what you're not

"I like Dennis's motion, but I'm an engineer, not a designer" got me a better result than either alone. Two sites and one sentence each beat a page of adjectives.

05

Find something that's actually yours

For me it was Bali: Tri Datu, the gate, poleng, Aksara. It's what makes the site not look like anyone else's. Yours might be your city, your trade, your culture or your sense of humour.

06

Ask it to tell you when you're wrong, then argue back

The best decisions on my site came out of a disagreement.

07

Give small, honest feedback often

"Too okay." "The hover is in my face." "I can't tell who's selected." Short and blunt beats a long spec.

08

Never let it invent facts about you

Make it a written rule: never make up numbers, dates or quotes, ask. Then read every claim it puts on your site. You're the one who gets asked about it in an interview.

09

Write down the rules

A DESIGN.md and a CLAUDE.md mean the next chat, or the next AI, follows the same system. Turn anything you'll repeat into a skill.

10

Check everything, including yourself

It missed things. So did I. It once told me the blog was restyled when it had only tested on throwaway copies, and I caught it on the preview. "Done" and "done on the thing I'm looking at" aren't always the same. And I got plenty wrong about my own career until the audit table asked.

Tap a number to flip through them.

None of this needed a designer, a branding agency or a new framework. My site is still plain HTML, CSS and JavaScript on a free hosting tier. And it cost nothing extra, just my normal Claude subscription. What changed was the process: clear taste, honest feedback both ways, and a preview link I could click around before anything went live.

It's the same lesson I keep landing on with AI. It's an incredibly capable builder, and a surprisingly good critic if you ask it to be. Taste and truth are still on you. And when AI can build almost anything, the part worth investing in is the part only you can bring: your story, and the proof behind it.

Have a look around the new site and tell me what you reckon. And if you want to do this to your own site, or just fancy a yarn about it, flick me a message through my contact form. And if you know better skills, or just cool ones I should try, I'm keen to hear about them.

Cheers.