PostMessage listener in CanvasEmbed receives shape updates from the embedded rspace canvas iframe. Canvas-sync utility provides type guards and API helpers for pushing shapes to rspace. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Next.js 14 app with Prisma (PostgreSQL), Gemini NL parser, Tailwind dark theme, Docker + Traefik deployment config. Features: - Landing page with teal/cyan branding - NL input → Gemini 2.0 Flash parsing → structured trip data - Full Prisma schema (trips, destinations, itinerary, bookings, expenses, packing items, collaborators) - Trip CRUD API routes with all sub-entities - Trip dashboard with tabbed views (overview, itinerary, destinations, bookings, budget, packing) - Embedded rSpace canvas with full-screen mode - Docker multi-stage build with security hardening - Health check endpoint Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>