Case study

CFOHIRE: a full-stack SaaS marketplace connecting clients with CFOs

A three-sided marketplace with real-time messaging, Stripe Connect payments, AI-assisted onboarding, and automated billing. Built from scratch as the sole engineer.

Role
Sole Full-Stack Engineer
Timeline
Solo build
Platform
app.cfohire.ai
Stack
Next.js · Express · Supabase · Stripe
3
User roles (Client, CFO, FAE)
50+
REST API endpoints
108
UI components built
Full
Stripe Connect integration

CFOHIRE needed a platform where businesses (Clients) could find and engage fractional CFOs, who could delegate specialised work to Finance Automation Engineers (FAEs). The platform had to support the full lifecycle end-to-end with the security and compliance expectations of financial services.

I built this from concept to production as the sole engineer: database schema, API, frontend, payments, and deployment.

The key constraint was speed-to-value: users needed to reach a paid engagement quickly, without being overwhelmed by setup, paperwork, or manual coordination, while keeping billing, messaging, and legal agreements auditable.

Architecture

The system is split into a Next.js frontend and a standalone Express API, backed by Supabase (Postgres + Auth + Realtime + Storage). Stripe handles money movement, and AI assists onboarding.

Next.js frontendReact · App Router · UI system
Express APITypeScript · Node · Domain services
SupabasePostgres · Auth · Realtime · Storage
Stripe ConnectPayments · Payouts · Webhooks
SendGridTransactional email
Google GeminiCV & URL parsing
Docker + RailwayCI/CD & hosting

Tech stack & engineering decisions

Frontend

Next.js (App Router) with React, TypeScript, modern UI primitives, and typed validation for forms and onboarding flows.

Backend API

Express API with layered security (JWT, API keys, webhook verification), structured logging, and scheduled automation.

Database & auth

Supabase Postgres with Row-Level Security, auth, realtime updates, and storage for attachments and documents.

Payments

Full Stripe integration including Connect Express onboarding, payouts, platform fees, and robust webhook processing.

AI onboarding

CV and portfolio parsing to prefill CFO profiles and reduce onboarding friction without compromising data review.

Infrastructure

Docker-based builds, production deployment on Railway, and automated quality gates to keep changes safe.

Features delivered

Role-aware flows, realtime messaging, billing automation, and audit trails across the full engagement lifecycle.

Role-based multi-portal experience

Three distinct journeys (Client, CFO, FAE) with tailored dashboards, permissions, and guarded routes.

Job board & matching

Job posting, discovery, applications, and delegation to FAEs via sub-jobs.

Proposals & negotiation

Full proposal lifecycle: drafts, counter-offers, acceptance, and status tracking with unread states.

Real-time messaging

Realtime conversations with presence heartbeats, attachments, archiving, and unified inbox/badges.

Engagement lifecycle

State-machine project terms: start, submit, accept, pause/resume, disputes, completion and termination.

Time tracking & timesheets

Time entry CRUD, summaries, disputes, and weekly FAE timesheets feeding invoicing.

Automated invoicing & billing

Scheduled invoice generation, dispute handling, credit notes, cancellations, and escalation logic.

Stripe Connect payouts

Connect Express onboarding, transfers, payout status, and comprehensive webhook coverage.

Legal agreements

PSA & NDA workflows with template versioning, signatures, and audit trails.

AI-powered onboarding

CV upload / URL parsing to prefill profiles and reduce setup friction.

Notifications & email

Transactional email plus scheduled digests and in-app badges across navigation.

Audit logging

Action logs and snapshots for auditable workflows and dispute resolution.

Engineering challenges

  1. Multi-layered payment security

    Implemented API-key gating, JWT auth, job keys for scheduled tasks, and Stripe signature verification, each with dedicated middleware.

  2. Three-sided marketplace billing

    Clients pay CFOs, CFOs pay FAEs, and the platform collects fees across retainer, fixed, and time-based models with automated invoice generation.

  3. Resilient frontend reliability

    Added error recovery for chunk loading, guardrails for auth race conditions, and timeout protections against infinite loading states.

What I delivered

Deployed SaaS platform

A live marketplace handling authentication, payments, and end-to-end business workflows.

End-to-end ownership

Schema, API, UI system, integrations, automation, and deployment. Shipped as a solo engineer.

Layered security

Row-Level Security at the database, JWT auth, API key gating, and webhook signature verification.

Automated operations

Cron-driven invoicing, billing periods, notification digests, dispute handling, and payroll workflows.

Scalable architecture

Decoupled frontend and API with typed boundaries, structured domains, and containerized deploys.

Cohesive UI foundation

A reusable component system enabling consistent experiences across all user roles.

Technology summary

Frontend: Next.js, React, TypeScript, modern UI primitives, typed validation, Stripe Elements.

Backend: Express, Node, TypeScript, scheduling, logging, file uploads, tests.

Database & Auth: Supabase Postgres, Row-Level Security, Realtime, Storage, Auth.

Integrations: Stripe (Connect, webhooks), SendGrid, Google Gemini AI.

Infrastructure: Docker builds, Railway deployment, linting/formatting gates.

Impact

The result is a platform that reduces friction at the start of an engagement and keeps operational workflows predictable through automated billing and transparent status tracking.

Fasteronboarding

Assisted setup reduces time-to-active for new users.

Smootherengagement lifecycle

Proposals, contracts, invoices, and payments in one flow.

Lowermanual admin

Automated billing removes repetitive coordination work.

Safercommunication

Secure messaging supports sensitive finance workflows.

Want to see how this ships in production?

Contact meBack to work