Skip to content
Back

Bravo App

Full-Stack Developer

Bravo connects volunteer associations with companies looking to offer meaningful team-building and employee engagement. Associations publish experiences, companies book them for their staff, and an admin oversees the whole ecosystem. I was lead developer, building the frontend and backend from the ground up.

React 19, TypeScript, Fastify 5, PostgreSQL, Nx, Tailwind CSS, Radix UI, Storybook, Zod, SWR

Overview

Bravo connects volunteer associations with companies that want to offer meaningful team-building and employee-engagement activities. Associations publish volunteer experiences, companies browse and book them for their staff, and a platform admin keeps the whole ecosystem running.

My Role

Lead developer. I built both the frontend and backend over roughly a year, from the first commit to a running, multi-sided platform.

What I Built

  • The full sign-up and onboarding journey for both companies and nonprofits, including email verification and admin approval
  • The admin (SuperAdmin) area for overseeing companies, associations, and platform-wide settings
  • The gift & rewards system end to end: catalog creation, browsing, booking, and confirmation emails
  • The experience marketplace: publishing, search and filtering, booking, and post-experience reports
  • The production email system from scratch: confirmations, approvals, and admin notifications

Outcome

Bravo runs as a three-sided platform (nonprofits, companies, and an admin), each with its own flow, all coordinated through booking and email workflows I built. A company can discover an experience, book it for its team, and receive a post-experience report without anyone leaving the system; the SDG tagging means that activity also rolls up into ESG reporting.

Under the Hood

  • Nx monorepo with 7 libraries enforcing clean separation (shared models, UI, auth, association features, company features, API mocks)
  • Fastify 5 backend with Slonik for type-safe PostgreSQL queries across 22 migrations; Zod schemas shared end to end between frontend and backend
  • JWT auth with role-based authorization (SuperAdmin, Association, Company) and email-verification workflows
  • Multi-image upload to AWS S3 with responsive display and zoom; SDG tagging with multi-tag filtering for ESG reporting
  • Discovery: infinite-scroll experiences, province-based location filtering, configurable services; SMTP email workflows for confirmations, approvals, and alerts
  • MSW-based API mocking and a Storybook-documented component library on Radix UI primitives