Marketplace

Equine Breeding, Billing & Live Auction Platform

Context

An equine reproduction management system built for a breeding business's staff and customers. It is built on NestJS, Next.js, Prisma, and PostgreSQL, with breeding records, billing, timed auctions, and QuickBooks sync.

The Hard Part

The business entered the same data twice and kept disconnected records across separate tools, including a separate auction product. Staff needed one place for breeding records, contracts, billing, and communication.

What I Built

  • pnpm and Turbo monorepo with 4 apps and 1 shared types package
  • NestJS API with 246 controllers and 138 modules on PostgreSQL and Prisma
  • Breeding records: embryo lifecycle, ownership, biopsy, and charges
  • Timed auctions with max bids, an increment ladder, soft close, spending limits, bans, and live updates over Socket.IO — each bid in one database transaction with row locks and Redis protection against duplicate requests
  • Stripe card setup, payment collection, invoicing, and auto-charge, plus QuickBooks sync with encrypted tokens
  • Staff and portal sign-in with argon2 password hashing, JWT access and refresh tokens, and Google sign-in
  • SMS, voice, and email through Twilio and Resend, and AI briefings with the Anthropic SDK

The Build

An equine reproduction business kept breeding records, billing and auctions in separate tools and entered the same data twice.

I built one platform on NestJS, Next.js, Prisma and PostgreSQL: breeding records, Stripe invoicing and auto-charge, QuickBooks sync, and timed online auctions with live bidding. Each bid runs in one database transaction with row locks and duplicate-request protection.

The platform is covered by 101 Playwright specs and 13 CI workflows.

Measured Results

1

database transaction per bid, with row locks and Redis protection against duplicate requests

101

Playwright specs, run through 13 CI workflows

4

apps and 1 shared types package in one monorepo

Tech Stack

Next.js 15React 19Tailwind CSSTanStack QueryZustandNestJS 10TypeScriptBullMQSocket.IOPostgreSQLPrisma 6RedisStripeQuickBooksTwilioResendAnthropicDockerRailwayVercelGitHub ActionsJestVitestPlaywright

More Case Studies

Have a similar project?

I would love to help you build something great. Let's discuss your requirements.