Skip to content

Changelog

What has shipped

A running list of what we have built and released, straight from the log our engineers keep.

One line per deliverable, newest first.

  • stripe Billing and card-on-file fixes: portal plan changes follow the price, Group checkout honors the free trial, pay-at-course bookings save a card when the course requires one (startCardOnFile, confirmPayAtCourseWithCard, finalizeCardAction), and the card form matches intents that save the card
  • copy Marketing site describes built features as available: only the phone agent and Reserve with Google stay "rolling out"; waitlist, gift cards and passes, leagues, memberships, and POS listed on every plan in the pricing table
  • signup Self-serve sign-up page (/signup) and a one-click live demo (/demo) on a sample course (0930_demo_course.sql, demo_refresh, hourly demo/refresh and demo/purge-visitors jobs, read-only throwaway visitors, demo bar in the staff app); every "Book a demo" button replaced with "Start free" and "See the live demo"
  • trial Free trial for platform billing: 30 days free from go-live with no card (0015_platform_trials.sql, start_org_trial), trial-aware billing states and read-only rule, trial checkout through createPlatformCheckout, trialing webhooks, hourly reminder job with platform.trial_ending and platform.trial_ended emails, trial card and banners, pricing page and FAQ copy
  • int Test scripts test:api, test:feeds, test:autopilot, test:integration, test:conversations, test:parity; README table of every suite; .env.example covers every variable read
  • int Seed: read-only and platform admin logins, saved test card, POS products, pass products, membership plan with member rates, funnel events; scripts/seed-additions.sh
  • int Short links (/l/<code>) with click counts for SMS campaigns, waitlist, weather recovery, no-show confirm, and review request texts
  • int Shared scheduleCampaign for the composer and autopilot approvals; failed campaign status with a send-job failure handler and list and report UI
  • int /mock-invoice/[id] test page for mock outing invoices
  • int Email templates webhook.disabled, pass.pending_verification, expiry.reminder, pos.receipt, replacing borrowed campaign.broadcast and pass.purchased sends
  • int Booking engine: gift card and pass amounts in the checkout code preview, member booking window on the landing page, golfer session refresh on booking hosts, waitlist link when a time-of-day filter falls through, membership button behind its flag
  • int merge_golfers moves memberships to the survivor; voided passes return the granted rate class
  • int Phone agent: voice status callback on provisioned numbers, test chats excluded from the calls report, retention from course settings
  • int POS: reader cancel through the provider with charged-after-cancel recovery; card details on receipts; nightly void of abandoned open sales
  • int Payments provider: platform subscription quantity, cancel and invoice list; membership default card, price swap and undo cancel; wired into org billing, settings billing and memberships
  • int Nightly league tee time sync after slot materialization; nightly shared-golfer relink job
  • int Onboarding stepper shows real completion on every step page
  • p13 Light POS: Stripe Terminal flow, products and inventory, split tender, receipts, closeout
  • p14 Memberships: plans, recurring billing, member rate and booking window (also at online checkout), dunning with grace, golfer portal
  • p12 Gift cards and passes: purchase, ledger, split tender, punch and season passes, admin, re-credit on expired holds
  • p15 Leagues and outings: recurring blocks, rosters, grouped tee times, invoices, cart signs
  • p16 Multi-course organizations: dashboard, consolidated reports, org staff, copy setup, shared golfers, group billing
  • p10 Marketing autopilot: soft spots, weekly suggestions with approval links, review requests, Google post drafts, monthly report
  • p7 Waitlist matcher, weather recovery, no-show scoring and confirm texts, staff waitlist page, booking site nav for flagged modules
  • p6.2 Settings, Stripe Connect onboarding and webhooks, platform billing and dunning, onboarding wizard, support mode
  • p4.3 Public API v1 with OpenAPI, signed webhooks, CSV exports, export everything
  • p4.2 Messaging jobs, campaigns, inbox, templates editor, usage and retention
  • p8 AI phone agent: voice service, internal tool API, Twilio voice webhooks, calls UI
  • p3.2 Public booking engine: availability, checkout with holds and payments, confirmation, manage, pay link, account; rain check re-credit on expired holds and cancellations
  • p4.1 Golfer CRM: profile, consent controls, segments builder, duplicates and merge
  • p2 Tee sheet UI: quick-book, drag move, blocks, frost delay, realtime, offline queue, print
  • p9 Dynamic pricing: rules engine, forecasts, suggestions UI, hourly weather pull
  • p5 Importers for GolfNow, foreUP, Lightspeed, Club Prophet, and generic CSV with preview, commit, rollback
  • p11 Reserve with Google feeds and booking server, marketplace framework, feeds admin
  • p3.1 Rates UI, six-question wizard, tees and templates, slot materialization jobs
  • p6.1 Reports, daily stats jobs, alerts and heartbeats
  • p1.6 Booking service layer (lib/bookings/service.ts), tender registry, outbox drain
  • p1.5 Seed: two courses, 2,500 golfers, 7,500 bookings, blocks, waitlist, campaigns, 30 days of stats
  • p1.4 Availability and sheet-day queries, segment compiler, golfer facts, daily stats rollup, storage buckets
  • p1.3 Booking RPCs: book, confirm, move, cancel, check in, no-show, complete, split, merge, change players, rain checks, blocks, frost delay
  • p1.2 Golfers, bookings, payments, refunds, rain checks, audit log, messaging tables, payment and golfer stat triggers
  • p1.1 Tee sheet tables, slot materialization and reconciliation, rates and SQL pricing engine, event outbox
  • p0.6 Marketing site (54 routes), demo and contact forms, legal templates, docs skeleton, business collateral
  • p0.5 Provider layer with mock mode (email, SMS, payments, AI, domains, weather, analytics) and React Email templates
  • p0.4 Shared package: settings schema, timezone helpers, pricing engine, segments, messaging rules, no-show score, pricing rules, plans
  • p0.3 App shell: design system, auth (magic link, Google, local password), admin layout with course switcher, onboarding step 1, staff invites, middleware host routing
  • p0.2 Tenancy schema, RLS helpers and policy pattern, course creation and staff invite RPCs
  • p0.1 Monorepo scaffold, local Supabase on dedicated ports, CI workflow