Full-stack platform for a boutique tax resolution firm in Newport Beach, California.
Visit project →The firm needed more than a brochure site. They needed a platform that handled client intake, appointment booking, and content marketing while answering tax questions 24/7 without adding headcount. Their existing site had no way to capture leads beyond a phone number. Prospective clients with IRS notices at midnight had nowhere to go. Blog content existed but was not driving traffic because it had no structure for search engines to index properly.
Trained on all blog posts, service descriptions, pricing pages, and tax expertise documents. A custom pipeline extracts content into Pinecone vector embeddings. Every answer is grounded in real firm information, not generic tax advice. Clients get instant help with IRS notices, back taxes, payroll questions, and business compliance at any hour. The chatbot handles the initial conversation that used to require a phone call.
Django 5.2 REST backend with three user roles: client, staff, superuser. Each role sees only what they should. Appointment booking with real-time availability, timezone handling, SMTP confirmations, and optional Google Calendar sync. Admin dashboard with review management. Blog CMS for content marketing. Eight articles targeting tax queries in Newport Beach drive organic traffic through the chatbot into the booking system.
Google Ads conversion tracking on form submissions, phone clicks, bookings, signups, and consultation requests. Each event links to a contact record so the firm knows exactly which ad spend produced which client. Google Tag Manager, Hotjar, and Microsoft Clarity for behavioral analytics. Structured SEO with JSON-LD schemas across all pages. Dark and light theme support.
The frontend runs on Vercel, the Django backend on Back4App with Docker Compose. NextAuth handles authentication with bcrypt password hashing. React Hook Form with Zod validation on every input. Radix UI and shadcn/ui for the component layer. The chatbot and booking system together handle what used to require two staff members during business hours.
Have something like this?
Let's talk