Case study · Freelance

Avante Cosmetic Website & Appointments Application

A beauty business website with online appointment system, user authentication, and admin portal built with Next.js and React.

Year
2024
next.jsreacttypescriptfullstackcontentfulvercel

A full-stack appointment booking system for a Denver beauty business, with user authentication, SMS/email notifications, and an admin portal—migrated from Rails API to a single Next.js app.

A website and appointment booking system for Avante Cosmetic, a beauty business in Denver, Colorado. The system enables clients to book appointments online while giving the owner an admin portal to manage appointments, clients, and content.

What I built

  • Full-stack appointment system with Next.js and React Server Components
  • User authentication and client management system
  • Multi-channel notifications for booking, confirmation, and reminders via Twilio (SMS) and Postmark (email)
  • Admin portal for appointment and client management
  • Content management integration with Contentful
  • Migration from microservices to single full-stack application

Key Features

Client Experience

  • Online appointment scheduling with real-time availability
  • User authentication and profile management
  • Appointment confirmations and reminders
  • Mobile-responsive booking interface

Admin Experience

  • Appointment management dashboard
  • Client database with booking history
  • Automated notification workflows
  • Content management through Contentful

Technical Implementation

  • Next.js with React Server Components to render booking data on the server
  • TRPC integration for type-safe full-stack development
  • Daily cron tasks for notification scheduling
  • Vercel deployment for simplified DevOps

Migration & Modernization

Challenge: Version 1.0 consisted of separate Rails API and Next.js frontend with complex Ansible deployments that were finicky and problematic.

Solution: Migrated to a unified Next.js application using TRPC, removing the separate Rails API and Ansible deploys.

Results:

  • Simplified development workflow
  • Reliable deployments on Vercel
  • Faster feature development
  • Reduced operational overhead

Notifications Architecture

The most complex component is the multi-channel notification system:

  • Appointment lifecycle notifications: submission, confirmation, reminders
  • Multi-channel delivery: SMS via Twilio, email via Postmark
  • Scheduled processing: Daily cron tasks instead of job schedulers
  • Automated workflows: Reduces manual communication overhead

Tech Stack

  • Frontend: Next.js, React, TypeScript
  • Backend: Next.js API routes, TRPC
  • Database: PostgreSQL
  • CMS: Contentful
  • Notifications: Twilio (SMS), Postmark (email)
  • Deployment: Vercel

Outcome

  • Clients book and reschedule online instead of calling, cutting back-and-forth phone scheduling
  • Confirmation and reminder messages send automatically on a daily cron instead of by hand
  • The owner manages appointments, clients, and site content from one admin portal

More work

Show all work
Available for consulting

Have something to build?

I'm available for contract work — hourly, fractional, or project-based. Tell me what you're working on — I reply within a day or two.