Week 71: Stripe Connect, Price Book V2 & DDD Migration — Feb 28 – Mar 6, 2026

Week 71: Stripe Connect, Price Book V2 & DDD Migration — Feb 28 – Mar 6, 2026

TL;DR: The biggest feature week in Exoserva history. Stripe Connect for contractor payouts, Price Book V2 with dynamic pricing and bundles, a 14-day trial system, customer domain DDD migration, Google Maps migration, and 15 releases from 1.7.0 → 1.9.3. 62 commits across the entire stack.

Highlights This Week

  • Launched Stripe Connect for contractor payouts with billing application layer
  • Shipped Price Book V2 with bundles, tiered pricing, dynamic rules, and audit trail
  • Built 14-day trial system with tenant trial fields and automated trial worker
  • Migrated customer domain to DDD (entities, commands, ACL, repository)
  • Added 5 new frontend domain modules (address, billing, connect, developers, trial)
  • Migrated maps to @vis.gl/react-google-maps with AddressAutocomplete
  • Redesigned invoice modals with 5-section layout
  • Fixed Cloud Run deployment pipeline (5 iterations)
  • 15 releases: 1.7.0 → 1.9.3

Stripe Connect & Billing

Contractor payouts are now powered by Stripe Connect. The full billing application layer includes webhook handlers for payment events, an AI automation usage card tracking model costs, and subscription management fixes (timer display, empty upgrade modal, wrapped/flat response format handling).

Billing Stack

  • Stripe Connect schema migration and webhook handlers
  • Billing application layer with event processing
  • AI automation usage card and cost tracking service
  • Subscription timer fix (was always showing 14 days)
  • Upgrade modal state consolidation

Price Book V2

A complete rewrite of the pricing engine. Price Book V2 supports service bundles, tiered pricing based on volume, dynamic pricing rules (time-of-day, seasonal, demand), and a full audit trail for every price change. Schema migrations create the new tables, and the service layer implements all pricing logic.

Key Features

  • Bundles: group services with combined pricing and discounts
  • Tiered pricing: volume-based rate breaks for recurring services
  • Dynamic rules: time, season, and demand multipliers
  • Audit trail: every price change tracked with who/when/why

Trial System

New tenants get a 14-day free trial. Trial duration constants, tenant-level trial fields, and an automated trial worker handle expiration notifications and grace periods. The trial columns migration adds the necessary schema support.

Customer Domain — DDD Migration

The customer module is the first to complete the full Domain-Driven Design migration. Customer entities, commands, the Anti-Corruption Layer (ACL), and the repository pattern replace direct database access. V1 customer routes removed in favor of V3 DDD handlers. Customer SQL queries rewritten for the production VIEW schema.

DDD Architecture

  • entities/ — Customer aggregate root with value objects
  • commands/ — CreateCustomer, UpdateCustomer, MergeCustomers
  • acl/ — Anti-Corruption Layer translating legacy ↔ DDD models
  • repository/ — PostgresCustomerRepository with DDD interface
  • DB compatibility columns added to jobs, invoices, conversations

Frontend: 5 New Domain Modules

Five new domain modules added to the frontend, each with types, constants, and utility functions:

Module Purpose
address Address validation, geocoding, formatting
billing Subscription state, plan comparison, usage tracking
connect Stripe Connect onboarding flow, payout status
developers API key management, webhook configuration
trial Trial countdown, upgrade prompts, feature gating

Frontend: Components & UI

  • New components: billing, pricebook, trial, developer, invoice components; AI panels updated
  • Layout & landing: updated layout, landing page, customers, jobs, settings, chat components
  • UI primitives: AddressAutocomplete, updated UI components; Google Maps migrated to @vis.gl/react-google-maps
  • New hooks: useAIStatus, useBillingData, useConnectData, useLocationGeocode, useOpenAPISpec

Backend & Integrations

  • AI: updated AI services, auto-respond utilities, compose route, data-driven scheduling
  • Integrations: outbound delivery system, QuickBooks/Thumbtack/Twilio updates
  • Voice: enhanced STT preprocessing pipeline, Docker compose updates
  • API: auth, users, settings, health checks, SSE security, middleware refactoring
  • Backend: business-days utility, fast data cacheTTL enhancements, DI container updates

Cloud Run Deployment Pipeline

Five rounds of debugging to fix revision activation:

  1. 1.8.3 — Fix revision never activating
  2. 1.8.4 — Don’t exit on missing env vars
  3. 1.8.5 — Add detailed revision debugging
  4. 1.8.6 — Route traffic to latest revision
  5. 1.8.7+ — DB migrations and DDD compatibility

Invoice Modal Redesign

Complete overhaul with 5-section layout: header, line items, notes, payment terms, summary. Inline validation and correct total calculations.

Tooling & Content

  • Discourse scripts and dev blog content system
  • Brand icon generation utilities
  • Branding assets updated across the platform
  • i18n and context updates

What’s Next

Thumbtack integration launch, i18n expansion, and architecture extraction.