SaaSDesign & Development

CalVote

A full scheduling platform: admin dashboard, team management, and Google/Microsoft calendar integration.

Next.jsTypeScriptNextAuthFirebaseRadix UI
The Brief

A scheduling product needed to handle real calendar complexity (team availability, external calendar sync, meeting confirmation flows) without the UI feeling like a spreadsheet.

The Approach
  1. 01Built the admin experience (dashboard, contacts, scheduling, settings) as a distinct surface from the public booking flow, since the two audiences need completely different information density.
  2. 02Used accessible, unstyled primitives (Radix) as the base for every interactive component, so accessibility didn't have to be retrofitted later.
  3. 03Backed the whole product with Firebase so poll state, votes, and meeting confirmations update in real time across everyone looking at the same link.
The Build
  • Next.js and TypeScript application with route groups splitting the admin area from the public marketing and booking pages.
  • Authentication and session handling built on NextAuth, including invite and team-join flows.
  • Firebase (Firestore) as the database, with firebase-admin handling server-side writes, so poll and meeting data stays consistent under concurrent votes.
  • Google Calendar and Microsoft Calendar API integrations for two-way availability sync.
  • Admin dashboard covering contacts, meeting scheduling, promo codes, and team management.
  • UI components built on Radix primitives (dialogs, accordions, checkboxes) for accessible keyboard and screen-reader behavior by default.
  • Full technical journey: Next.js frontend, NextAuth session layer, Firebase Firestore database, external calendar APIs for sync.
The Result

A scheduling platform that handles team-level calendar complexity behind a booking flow simple enough for an external guest to use in one pass.

Let's Talk

Got a project like this in mind?

Book a call and let's talk through what you're building.

Book a Call