Skip to content
Building in Public
March 22, 20268 min read

Building Beauty Bar: Week 2

Auth, payments, and the first real user test. Week 2 of building a salon booking app live with AI.

Ja Shia

Ja Shia

AI Consultant

Share

Week 2 of Beauty Bar was where the real problems started — and where AI pair programming earned its keep...

The Plan

This week had three objectives: authentication, payment integration, and getting the app in front of a real salon owner for the first time. Two out of three went smoothly. The third one humbled me.

Authentication with Supabase

Auth was the straightforward win. Supabase's auth system is well-documented and Claude Code has seen enough implementations to generate correct patterns on the first pass.

What Worked

I described the auth requirements — email/password for salon owners, magic link for clients, role-based access — and Claude Code scaffolded the entire flow. Protected routes, middleware, session management. Roughly 90 minutes of work for what would have taken a full day manually.

The Nuance

The generated code was functional but generic. It did not account for the salon-specific flow where a client might book as a guest first and create an account later. I had to redesign the session handling to support anonymous-to-authenticated transitions. This is the kind of domain-specific logic that AI cannot infer — you have to specify it.

Payment Integration

Stripe integration was the most tedious part of the week. Not because it is hard, but because payment flows have zero tolerance for bugs. A broken booking form is annoying. A broken payment form is a lawsuit.

The Approach

I broke the payment flow into discrete, testable pieces:

  1. Product and price creation in Stripe dashboard
  2. Checkout session generation on the server
  3. Webhook handling for payment confirmation
  4. Booking confirmation after successful payment

Claude Code handled each piece well in isolation. The integration between pieces is where I spent most of my time — making sure the booking state machine transitioned correctly through each payment state.

Lesson Learned

When building payment flows with AI, write the state machine first. Define every possible state and transition before writing any code. The AI can implement each transition perfectly, but it needs the complete map to avoid missing edge cases.

The User Test

Friday afternoon, I showed the app to the salon owner it is being built for. This was the humbling part.

The booking flow that made perfect sense to me as a developer made no sense to her as a user. She wanted to see stylist availability before choosing a service. The app showed services first. She wanted to browse by stylist. The app organized by service category.

None of this was an AI failure or a code failure. It was a prioritization failure. I built what was logical instead of what was intuitive for the target user.

Week 2 Takeaways

  1. Auth is a solved problem — Let AI handle it and spend your time on domain logic
  2. Payment flows need state machines first — Define the map, then let AI build the roads
  3. User test early — No amount of AI acceleration matters if you are building the wrong thing

What is Next

Week 3: Rebuilding the booking flow based on real user feedback. The stylist-first navigation pattern changes the entire data model. Time to restructure.

Share
Building in PublicBeauty BarVibe Coding

The AI Alchemist

Practical AI strategies, behind-the-scenes builds, and emerging tools — delivered weekly to practitioners.