Skip to content

Vero-Ventures/fuzzycat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

294 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FuzzyCat

Flexible payment plans for veterinary clinics. Pet owners split vet bills into biweekly installments over 12 weeks — no credit checks, no interest, no loan origination.

How It Works

  1. Clinic enrolls pet owner with vet bill amount ($500–$25,000)
  2. Owner pays 25% deposit via debit card (Stripe Checkout)
  3. Remaining 75% splits into 6 biweekly ACH installments via Stripe
  4. Clinics receive payouts after each successful installment via Stripe Connect

Competitive platform fee for owners. Revenue share for participating clinics.

FuzzyCat is not a lender — no credit checks, no interest, no loan origination.

Features

For Pet Owners

  • Split vet bills into manageable biweekly payments
  • Secure payment processing via Stripe
  • Real-time payment tracking and history
  • Automated email/SMS reminders

For Clinics

  • Revenue share on processed payments
  • Dashboard with client management and reporting
  • Automated payout tracking via Stripe Connect
  • Onboarding wizard for Stripe Connect setup

For Admins

  • Full payment lifecycle management
  • Collection monitoring and escalation tools
  • Audit trail for all payment state changes

Tech Stack

Layer Technology
Runtime Bun (dev + CI), Node.js (Vercel production)
Frontend Next.js 16 (App Router) + Tailwind CSS v4 + shadcn/ui
Backend Next.js API routes + tRPC
ORM Drizzle ORM (server/db/schema.ts)
Database PostgreSQL via Supabase
Payments Stripe Checkout (deposits), Stripe ACH (installments), Stripe Connect (payouts)
Auth Supabase Auth (role-based: owner, clinic, admin)
Linting Biome
Testing Bun test runner + Playwright E2E
Email / SMS Resend / Twilio
Monitoring Sentry + PostHog + Vercel Analytics
Hosting Vercel + Supabase

Getting Started

Prerequisites

Installation

git clone <repo-url>
cd fuzzycat
bun install

Environment Setup

cp .env.example .env.local

Fill in your credentials — see .env.example for all required and optional variables. Key services:

  • Supabase: Project URL, anon key, service role key, database URL
  • Stripe: Secret key, publishable key, webhook secret
  • Resend: API key for transactional email
  • Twilio: Account SID, auth token, phone number for SMS

Database

bunx drizzle-kit push    # Push schema to database
bun run db:seed          # Seed with sample data (optional)

Development Server

bun run dev              # http://localhost:3000

Project Structure

app/                     # Next.js App Router
  (marketing)/           # Public pages (home, how-it-works, privacy, terms)
  (auth)/                # Auth pages (login, signup, forgot-password, MFA)
  owner/                 # Pet owner portal (payments, plans, enrollment, settings)
  clinic/                # Clinic portal (dashboard, clients, reports, payouts)
  admin/                 # Admin portal (dashboard, plans, payments, settings)
  api/                   # API routes
    webhooks/            #   Stripe + Sentry webhooks
    cron/                #   Scheduled jobs (collect-payments, process-payouts)
    health/              #   Health check endpoint
    trpc/                #   tRPC handler
components/              # Shared UI components (shadcn/ui based)
lib/                     # Shared utilities (env, auth, stripe, logger)
server/
  db/                    # Drizzle ORM schema and database connection
  routers/               # tRPC routers (enrollment, payment, payout, plan)
  services/              # Business logic (enrollment, payment, collection, payout, audit)
  trpc.ts                # tRPC context, procedures, and middleware
drizzle/                 # Generated SQL migrations
e2e/                     # Playwright E2E test suites
scripts/                 # Utility scripts (seed, admin creation, QA, E2E setup)

Scripts

Command Description
bun run dev Start dev server with Turbopack
bun run build Production build
bun run typecheck TypeScript type checking (tsc --noEmit)
bun run check Biome lint + format check
bun run check:fix Biome auto-fix
bun run test Unit tests (Bun test runner)
bun run test:e2e Playwright E2E tests
bun run ci Full CI suite (Biome + typecheck + circular deps + secrets)
bunx drizzle-kit push Push schema to database
bunx drizzle-kit generate Generate SQL migrations
bunx drizzle-kit studio Open Drizzle Studio (DB browser)

Testing

Unit Tests

bun run test             # Run all unit tests

Tests use Bun's built-in test runner with mock.module() for dependency mocking. External services (Stripe, Supabase) are fully mocked — no real API calls in tests.

E2E Tests

bun run e2e:setup-users  # Create test users in Supabase
bun run test:e2e         # Run all Playwright test suites
bun run test:e2e:local   # Run against localhost
bun run test:e2e:prod    # Run against production

Deployment

Deployed on Vercel with Supabase for database and auth.

  1. Connect repository to Vercel
  2. Set all environment variables from .env.example in Vercel dashboard
  3. Configure Stripe webhooks to point to your Vercel deployment
  4. Set up Vercel Cron for scheduled payment collection and payout processing

License

Proprietary. All rights reserved.

About

buy now pay later for vetrinarians.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages