Enterprise architecture, platform hardening, availability refactor, Sadie enhancements, messaging overhaul & widget v2 design
May 11–22 — shipping across Covers, Prospero, and Sadie in parallel
Multi-venue workspace, Google Places integration, and timezone extraction
Org → venue hierarchy with a redesigned switcher. Single-venue orgs auto-navigate. Multi-venue orgs expand with smooth animation.
Session-based billing, restaurant-type restriction, rich autocomplete with photos and ratings. Falls back to Nominatim if no API key.
Single source of truth for timezone and date logic. getVenueNow(), toDateStr() — never new Date() for venue time.
All deps pinned across every workspace. 3-day Renovate delay. TanStack aligned. Docker images updated with @repo/time.
Full visual email template builder — restaurants customize colors, logo, fonts, and preview in real time
50/50 split layout — editor left, preview right. Color pickers for background, heading, text, and accent. 2×2 color grid.
Upload logo and body images. Each venue’s assets isolated per location. Images render in preview and all sent emails.
9 web-safe font options — system default plus Georgia, Palatino, Times New Roman, Arial, Helvetica, Verdana, Trebuchet MS, Courier New.
Send test emails before activating. Rate-limited to 3/min. Branded templates across all send paths.
Security sprint, admin infrastructure, and feature flag system
Email verification on signup, 10-char minimum passwords, rate limiting on all auth + OAuth endpoints, Swagger disabled in production.
DNS rebinding + redirect blocking on webhooks. IPv6 ranges blocked. HTML escaping in email templates. Crypto-secure confirmation codes.
Super-admin UI with role-gated access, audit log, schema drift checker in CI, idempotent migrations.
Org overrides, master-key global kill switch, UI gating on sidebar + pages + onboarding. OCC guards on all service view mutations.
5 message type toggles and 3 channel controls — restaurants decide exactly what gets sent and how
Date, time, party size, confirmation code. Separated from confirmation request — toggled independently.
Asks the guest to confirm. Separate from booking details — send details without requesting confirmation.
4h, 12h, 24h, or 48h before. Enforced in SQS enqueue + send worker.
New DB column + backend enforcement. Toggled independently from other types.
Intent still processed when disabled, just no SMS back. Saves costs on chatty threads.
SMS, WhatsApp, Email toggles wired to widget. Only enabled channels show as guest contact options.
Every toggle enforced across all send paths. All senders check their flag before sending.
New venues auto-get messaging config with SMS and email on. No manual setup.
54 toggle-matrix, 26 send-booking-details, 6 webhook-reply-ack, plus independence tests.
Architecture rewrite — renamed API surface, closure types, component splits, and full E2E coverage
services.templates.* → services.* across the codebase. serviceTemplateId aliased to serviceId in 6 packages.
service_date_exception.kind enum — marker vs trim. 5-column unique constraint.
Page and ServicePanel split into Shell + Body. Largest hooks reduced from 800+ to ~200 lines.
Unified mock framework. Global-setup with sign-in + seed + storageState reuse. 6-tier coverage model.
Sadie calls grouped into collapsible sections with outcome badges, SMS below, and smooth animations
Each call groups into a compact header — icon, timestamp, duration, outcome badge. Click to expand. CSS grid-rows animation.
Confirmation and reminder SMS appear as regular thread messages below the call section.
Booking Made, Cancelled, Rescheduled, General Inquiry. Instant scan without expanding.
Complete call summary in collapsed header. No truncation. Key info at a glance.
12 call quality improvements — Sadie sounds more natural, knows more context, and makes fewer mistakes
Dates read as “Thursday, May 14th” not ISO. Confirmation codes sent via SMS instead of spelled out.
VIP tier, allergies, visit count, preferred name. No re-asking for known information.
Operating hours injected live from service templates. Sadie always knows when the restaurant is open.
Freeform allergy and dietary tagging — creates new tags on the fly. No fixed allergen list.
Post-call SMS configurable from the dashboard — booking details, cancellation, confirmation toggleable per venue.
Automotive scrapers, hotel directories, contact extraction — and first real conversions
AutoTrader, CarGurus, Dealer Associations, DMS Detector — real scrapers with noise filtering and deduplication.
Expanded to 9 regional associations worldwide. Full contact extraction with quality scoring per directory.
7+ methods with noise filtering pipeline. Industry-aware scoring — completeness checks per vertical.
Optimized delays, hash-bucketed dedup, 6 new California market presets. Full pipeline runs in parallel.
Three capabilities no competitor offers — an intelligent guest experience
Call Sadie from the widget — no phone, no app. Live transcript, instant confirmation. The future of reservations.
Book, reschedule, or ask questions on the channel 2 billion people already use. No new app, no friction.
QR code reservation. Guest walks in, host scans — instantly knows who they are. Zero-friction arrival.
The roadmap beyond this sprint — from first revenue to AI-powered operations
Onboarding pipeline ready. White-label widget, branded emails, and Sadie voice all demoed. Targeting June close — revenue milestone.
WhatsApp Business API integration for guest messaging. Two-way confirmations, reminders, and booking updates via the channel guests already use.
AI assistant that surfaces anomalies, prep alerts, and trends before staff asks. “Friday bookings are 40% above average” — not just search, but foresight.
Sadie initiates calls — confirmation follow-ups, no-show re-engagement, waitlist notifications. Turns voice AI from reactive to proactive.
Self-serve signup with Stripe integration. Free trial → paid conversion. Usage-based billing for Sadie minutes. Subscription management in-app.
Native iOS + Android app for hosts and managers. Push notifications for walk-ins, no-shows, and Sadie escalations. Floor plan on the go.