Human × AI Collaboration · Full-Stack Delivery

0 to 1 in 12 Hours

Building a production full-stack website from an empty directory using Claude Code as a technical partner. A real-world study of what happens when deep product expertise meets AI that can actually build.

Client
Solo Founder, The Unspoken Balance
Role
Product Strategy, Design, Direction
Timeline
12 hours · April 2026
Human-AI CollaborationFull-StackDesign SystemsProduct DesignCreative Direction
The Unspoken Balance hero
The Challenge

How do you go from an idea you had two years ago, to a production site in twelve hours... Without writing the code yourself?

For two years, The Unspoken Balance lived entirely in my head. A podcast and wellness platform exploring where ancient wisdom meets the texture of modern life. I had the brand voice, the content pillars, a Figma file, and sixty pages of handwritten notes from a meditation retreat in Denver. What I did not have was the one thing standing between the idea and its existence: a technical partner who could move at the speed of my thinking.

I have spent 15 some years in consulting, specifically product, design, and change. I have been a strategist, experience designer, program manager, product manager, change manager, experience architect, service designer, UX designer, content strategist, business analyst, QA tester... and I can read code well enough to make minor edits. But building a production application from an empty directory? That was my gap, I needed to be reliant of a Tech Lead for this.

Phase Zero · The Brief Before the Brief

Before a single line of code was written, I gave the AI a creative brief. Most people skip this step. Brand voice: observer, editorial, pragmatic, strategic, direct. A color system of five accents, each with a defined emotional purpose. Typography hierarchy. A banned word list. No "hustle," no "grind," no "guru." Content pillars mapped. Audience defined. Brand Brief, Brand heuristic documents and historical data.

Forty-five minutes of preparation and alignment, saved hours of "that doesn't feel right" later. If you wouldn't start a project professionally by saying "just make something nice," don't start with AI that way either.
What I Directed

Human Responsibilities Across Twelve Hours

The AI did not design this site. I designed this site. The AI built what I directed, architected, and the difference between a mediocre result and a meaningful one lived entirely in the specificity of my direction and the attention to detail.

Creative Direction

Every aesthetic decision. Typography scale, color rationale, spacing rhythm, the way content breathes on the page. Defined and held by me. AI proposed. I edited.

Brand Voice & Content

Wrote a 1,500-word diary entry from scratch. Rewrote AI-generated copy until it matched my voice. Killed every em-dash that did not feel like me.

Information Architecture

Mapped the site flow, defined the component hierarchy, decided which pages existed and which were cut. Twelve hours forces ruthless prioritization.

Design System Authoring

Eleven-page design system in Figma covering colors, typography, spacing, icons, buttons, forms, cards, navigation, modals, illustrations, and animations. The source of truth the AI executed against.

Technical Direction

Chose the stack. Approved architectural decisions. Made the call to replace the Supabase SDK with custom fetch when the bundle bloated. Configured Google Analytics and Search Console setup along with Cookie Banner + Privacy + Terms. Utilized Resend for branded email communications.

Quality Control

Setup a reusable sanitation checklist to protect private and PII data. Fifty-plus micro-corrections across the session. AI cannot catch what only you can see. The human brings taste, identity, and the stubborn insistence that something is not done until it feels true.

Deliverables

What Shipped

Beyond the Basics

Interactive Features Built

Six interactive features that turn a landing page into a quiet, embodied experience. Every one designed, spec'd, and validated by hand.

Doodle & Draw

A floating gold FAB opens a full drawing panel anywhere on the site. Save your thoughts, not just read someone else's.

6 brush types (pen, marker, pencil, brush, spray, eraser)
24 colors from the brand system
Save as PNG anytime
Pressure simulation for stylus users
First-visit tooltip, auto-dismiss after 8s

Breathwork Orb

An animated pulsating orb on the Practice page. Four techniques, each with its own rhythm. Tap to begin. The orb breathes with you.

Techniques: Box, 4-7-8, Ocean, Alternate Nostril
Animation: breathing keyframe @ 6s infinite
Reduced motion: static circle fallback
Audio: optional guided cadence

Frequency Tone Player

Six Solfeggio frequencies, generated live in the browser. No external libraries, no audio files. Web Audio API from scratch.

Tones: 174, 285, 396, 528, 639, 741 Hz
Engine: Web Audio API, custom oscillator
Payload: zero kb of audio files
Envelope: gentle fade-in / fade-out

Anchor Tabbed Nav

A sticky pill bar at the top of each page. Active section pill shifts as you scroll. Horizontal scroll on mobile for long nav lists.

Active state: bg-ink text-ivory
Scroll sync via IntersectionObserver
Mobile: horizontal scroll with snap points
Home anchors: Whispers, Practice, Episodes, Diary

Privacy + Terms

Full dedicated pages, not footer PDFs. Same editorial voice. Plain language wherever legal allowed. Back-to-home nav on both.

Coverage: data collection, GA4 scope, contact rights
Voice: conversational where possible
Nav: cross-linked to Home, Practice, Diary
Routing: SPA, no full page reload

Cookie Consent Banner

Fixed bottom banner with dark ink background. GA4 Consent Mode integrated so tracking only fires after explicit acceptance.

Default: all tracking denied
On accept: gtag('consent', 'update', ...)
Persistence: localStorage keyed by version
Design: fades in 1s after load, never blocks content
Home · 390w
Home · 390w
Practice · Breathwork + Frequency
Practice · Breathwork + Frequency
Diary · Denver Retreat
Diary · Denver Retreat
Hours 4, 12 · Continuous Validation

Mobile wasn't an afterthought. It was the north star.

Mobile-first does not mean "designed on a phone first." It means every architectural decision, every interaction, every piece of copy gets validated on a real device before it is called done. UAT happened continuously, not at the end.

Testing Approach

  • Real device testing (iPhone + Android), not just Chrome DevTools
  • Touch target validation, every interactive element ≥44pt
  • Thumb-reach analysis for primary CTAs
  • Content hierarchy validation at 375px wide
  • Gesture testing (pinch, swipe, long-press)
  • Network throttling on 3G simulation
  • User Acceptance Testing + Interviews

Key Mobile-First Decisions

  • Modals become full-page slide-up sheets below 640px
  • Navigation collapses to hamburger with right-side panel
  • Horizontal scroll interaction on Achored Tabs for mobile
  • Hero CTAs for Diary and Practice visibile on Mobile Landing page
  • Diary carousel uses native snap-scroll, not custom lib
  • Frequency tone player orb sized for thumb, not cursor
  • Cross-page nav: Home, Practice, Diary always visible

What Was Caught on Device

  • First time users bypassed key CTAs for Diary and Practice prior to fix
  • Doodle & Draw feature misunderstood due to pencil icon, fixed post UAT with a notebook icon
  • Hero background video drained battery on iOS
  • Subscribe modal buttons too close on small screens
  • Diary carousel dots illegible in bright sunlight therefore visibility contrast increased
  • Practice page scroll conflicted with audio controls
"The modal isn't mobile-friendly. It should be a full-page panel on phone."
"Didn't realize there was a practice page on mobile site."
"I thought it was an edit button, turns out it a notepad."
"It would be nice to select the music before the breathwork"
Live UAT review
Live UAT review session · sped up 4x
The Real Work

AI Does Not Eliminate Complexity

I want to talk about failure, because the narrative around AI tends to erase it. AI does not eliminate complexity. It compresses the time between encountering a problem and resolving it.

Supabase SDK crashed the site

At 190 kilobytes, it doubled the bundle size. We diagnosed it together, ripped it out, and replaced it with twenty lines of custom fetch. Problem solved, but only because we made a pragmatic call.

Pages only loaded on refresh

A stale closure combined with an IntersectionObserver bug meant scroll-reveal animations were silently failing on navigation. Debugging was methodical, patient, and necessary.

Netlify credits exhausted

300 free build credits burned through eight-plus deploys. We hit the wall, switched to Vercel in five minutes, and kept moving. Know your tools. Have a backup.

Logo had white pixel bleed

Showing on the cream background. A Python PIL script stripped them out. Not every problem is architectural. Some are just annoying, and you still have to fix them.

Real Prompts from the Session

The Craft Is in the Iteration

Actual prompts from the build session. Each one shaped the final result. The AI executed. The human caught what only a human could see.

"
"Privacy and secrets are crucial, create a reusable and scale sanitation review process and begin 1st pass."
Built skill to review private data and PII include secrets and API keys.
Ran test twice and each time there was a push, although it caught some items other surfaced that I could catch and update the rules for such as non-public facing files that are for planning needs only.
"
"Users are missing the practice and diary features on mobile as its buried under the mobile hamburger nav, let's replace 1 CTA on Homepage Hero for mobile only to contain 2 stacked CTAs: Diary and Practice."
CTAs on mobile Home hero area now differed from desktop as they shared the core actionable features clearly.
Assumption was that people check the mobile hamburger nav, but was clear that they only click on what they see in front of them.
"
"Review brand voice document and add to QA step for all content through content-ops skill."
Comprehensive content pass across every file in the project.
Voice is made of small changes. AI does not know what feels like you until you tell it.
"
"Lower the left and right margins on the page the drawing pad is cutoff and also apply viewport height to the create drawing component."
Made sure that Doodle & Draw feature was fully accessible through out site and also persistent.
Adding personality that follows brand values.
The 12-Hour Timeline

Visual Work Log

A transparent record of what happened across twelve hours of human-directed, AI-executed work. Every hour had a purpose.

Hour 01 · Phase Zero

Creative brief delivered

Brand voice, color rationale, typography, banned words, content pillars, audience. The operating system for every decision that followed.

Hour 02

Site structure scaffolded

React + Vite + Tailwind configured. Routes defined. Shell components stubbed. Design tokens wired to Tailwind config.

Hour 03 · First Deploy

Ugly. Incomplete. But live.

Shipped to Netlify before anything felt 'ready.' The feedback loop between 'exists on the internet' and 'here is what is wrong' is where all the quality comes from.

Hour 04 · Mobile UAT Begins

First real-device audit

Opened the live URL on iPhone. Found six immediate issues: text scale, tap targets, modal behavior, nav collapse, carousel performance, keyboard obscuring inputs.

Hour 05 · Audit + Iterate

Full visual pass

Fifty plus micro-corrections queued and executed. Typography tightened. Spacing rhythm fixed. Modal rebuilt as slide-up sheet on mobile.

Hour 06 · Things Broke

Supabase SDK doubled the bundle

190KB library crashed the site on initial load. React would not mount. Blank white screen. Diagnosed together in minutes.

Hour 07 · Recovery

Custom fetch, 20 lines

Replaced the SDK entirely. Twenty lines of typed fetch calls. Bundle cut in half. Site loads clean.

Hour 08 · Full Stack

End-to-end working

Supabase subscribe integration live. Email collection with bot protection. Rate limiting wired up. GA4 analytics firing with Consent Mode.

Hour 09

Content integration begins

Copy from Figma pulled into components. Type hierarchy locked. Brand voice pass across every surface.

Hour 10 · The Personal Stuff

Diary + walking meditation photos

1,500-word Denver diary entry. 60 handwritten notes become League Script cards. 6 AM walking photos become swipeable carousel.

Hour 11 · Final Mobile UAT

Production device testing

Full pass on iPhone and Pixel. Every page. Every interaction. Every CTA. Fixed eight final issues before the last deploy.

Hour 12 · Production Deploy

theunspokenbalance.com is live

Netlify credits exhausted. Pivoted to Vercel in five minutes. DNS cutover. Cookie consent confirmed. Site live. Two years of waiting ended.

The Site in Motion

A Walkthrough

The live site, end to end. Hero, whispers, practice, episodes, diary. Every page. Every animation. Every interaction.

theunspokenbalance.com · live walkthrough
Outcomes

Measurable Impact

12 hrs
Concept to Production

Two years of preparation. Twelve hours of collaboration.

5 pages
Full-Stack Website

React 19, TypeScript, Tailwind v4, Supabase.

11 pages
Figma Design System

Complete design language covering every touchpoint.

50+
Micro-Corrections

AI replaced friction. Taste remained mine.

What I Learned

Five Takeaways

01

Phase zero is everything

Forty-five minutes defining the brief saved hours of rework.

02

AI replaced friction, not taste

Every strategic and creative decision was mine.

03

The craft is in the iteration

Fifty-plus micro-corrections made the difference.

04

Know your tools

Best tool for each job, not one tool for everything.

05

Ship something

Version one is not the final version. But it exists.

The Closer

Speed wasn't the point. Partnership was.

I spent two years looking for the right technical partner for this idea. I found one in a terminal window. That is a personal truth about what happens when deep domain expertise meets a tool that closes the gap between what you can envisionand what you can build.

Zero to one. One session. One human. One AI. Three UAT testers. This was never about speed. It was about finally having the right technical partner, thank you Anthropic.

Let's create a delightful and intuitive world.

Schedule a call with Tania Makroo.

Let's create a delightful and intuitive world.

Schedule a call with Tania Makroo.