← Selected work

Live · end-to-end commerce

Banu Beauty

Solo full-stack developer

Banu Beauty needed a full commerce system behind the storefront. I built the customer flow, the admin behind it, the Stripe path, the PostgreSQL layer, and the deployment as one connected product. It's live today.

  • Next.js
  • TypeScript
  • PostgreSQL
  • Neon
  • Stripe
  • Vercel

banubeauty.ca ↗

Built
End to end
Payments
Stripe checkout
Data
Neon + PostgreSQL
Release
Vercel

Live commerce / the cart

Three items, two product types, one order.

The cart on banubeauty.ca with three line items: an Island Girl Sweater and a Lankan Sweater, both Women's XS at $60 CAD against a struck-through $75, and Island Haven 50mL at $65 CAD against $80. The order summary beside them has a ship-to control set to CA, a subtotal of $185 CAD, a launch discount of minus $45, shipping of $18, and a total of $203 CAD above a Checkout button.
  1. Two product types in one order: sweaters carrying a Women’s XS variant, and a fragrance carrying a 50mL size, each priced against a struck-through compare-at.
  2. Item prices are already the launch price. The summary restates the $45 saving as its own line, so the promotion stays legible after it has been applied.
  3. Shipping is charged once per order rather than per item, and the ship-to control recomputes the whole summary in the selected region’s currency.
Screenshot · banubeauty.ca/cart

The problem

The store had to feel trustworthy to customers while behaving like a complete system behind the scenes: product data, cart, checkout, orders, and launch ownership.

What I owned

I built the storefront and the admin area that runs catalog and orders, wired Stripe through order capture and fulfillment tracking, structured the Neon-hosted PostgreSQL layer, and owned hosting, the custom domain, and the Vercel deployment.

The hard parts

  1. Keeping the storefront calm and conversion-friendly on smaller screens.


    I designed the storefront to feel clear and trustworthy at the size most customers actually arrive on.

  2. Making product, cart, payment, and order data behave like one connected flow.


    I put catalog and order data on one relational layer, so selection, checkout, and the paid order are the same record moving through states.

  3. Owning release quality from implementation through production deployment.


    I carried the build past implementation into release: production setup and the Vercel deployment were mine too.

The result

I launched a live commerce experience for a real business, with a full checkout path and production deployment.

© 2026 Anna Chester

Toronto, Canada · Open to full-stack roles and freelance builds