Fullstack

Bloom Beleza

Modern fashion and beauty e-commerce with a variant-aware catalog, persistent cart and Stripe checkout. Built with Next.js 15, React 19, PostgreSQL and Drizzle ORM.

Bloom Beleza

About the project

Bloom Beleza is a fashion and beauty e-commerce platform with a complete purchase flow: a variant-aware catalog, a persistent cart, multi-address checkout and Stripe payments. It is built with a strong focus on performance, accessibility and a clean user experience.

The problem

A modern store needs product variants, a cart that survives navigation and login, validated shipping addresses and a payment flow that confirms orders reliably. That is exactly where most simple templates fall short.

The solution

  • Product catalog with variants (color, size), category navigation and SEO-friendly slugs.
  • Persistent cart with quantity updates, automatic totals and a quick-access cart panel.
  • Authentication with Better Auth (email/password and Google) and multi-address management with CEP/CPF validation.
  • Stripe checkout with webhooks for payment confirmation and order status.

Architecture and stack

The frontend is Next.js 15 (App Router) with React 19 and Server Components, styled with Tailwind v4 and shadcn/ui. TanStack Query handles server state, and React Hook Form with Zod validates forms on both ends.

Persistence runs on PostgreSQL through Drizzle ORM, with typed queries and server actions for mutations. Authentication is handled by Better Auth and payments by Stripe, with signed webhooks driving order status.

Code and ownership

The source code is public and released under the MIT license; this project is part of the portfolio and can be inspected and run locally.

Stack

  • Next.js
  • React
  • TypeScript
  • PostgreSQL