wenmeet·PRD

PRD v1.0 · Aug 22 2026 · wenmeet-prd.netlify.app

wenmeet — scheduling that shows its thinking

A when2meet-class scheduler where the AI's certainty is visible as motion: a living nebula that swirls fast when nothing is known, densifies with every response, and settles into a slow gold breath when the meeting locks. Deterministic under the hood, honest on the surface.

1 · The one principle

Motion is uncertainty made visible. The nebula is a certainty gauge, never a mascot. Open meeting → fast chaotic swirl (teal). Each acceptance adds mass and calm. Locked → slow breathing (gold). Conflict → amber flicker until re-locked. Every state the backend can be in has exactly one motion signature, so users read system state without reading text.

OPEN→ COMPUTING→ PROPOSED→ LOCKED⇄ DESTABILIZED / RECOMPUTING

2 · v1 scope

Committed in the grill (round 1). CUJ ids reference the wireframe canvas.

Ships v1CUJNotes
Core schedule loop1b–1dCreate → paint → propose → lock. Reveal pattern: 2b grid-anchored (answer lands on the winning cell; grid never leaves the screen).
Reschedule loop1eDecline destabilizes the lock; re-compute reuses existing paints; history kept visible.
No-common-slot negotiation2fAI names the cheapest flex ask; human sends it. Best-5 exit cut (depended on 2e, which is v2) — the only fallback is re-widening the window.
Add-after-lock2gCalendar check on add; conflict routes to 1e.
Meeting-space graph1fStar + attendee nodes, co-location halos, drag physics, semantic drop zones, artifact squares.
Mobile invitee2dOne-day-per-screen thumb paint; long-press = if-need-be; ≥44px targets.
Landing page1gTeam-voices nebula hero; features told as the three states.

Deferred

ItemTargetWhy
Keep-partial / async contract (2e)v2Needs recap + task plumbing.
Recurring series (2h)v2Per-occurrence orbs build on a stable single-lock loop.
Breakout blobs (t3)v2 — groundwork in v1See v2 setup and the media-layer decision.
Invitee conflict nudges (1C-3)v1.1Guests have no OAuth in v1; organizer-side nudges only.

3 · Success metrics & non-goals

4 · Team & timeline — Fast plan

Chosen in round 2: 4 eng + 1 designer + motion contractor · v1 in 6 weeks. (Alternatives logged: Lean 2-eng/10-wk; Balanced 3-eng/8-wk.)

WeeksWorkstream
1–2Core loop (1b–1d) + deterministic scoring engine + Supabase schema; guest-token auth.
2–32b grid-anchored reveal; realtime orb channel; Resend invite/reveal emails.
3–4Reschedule (1e), negotiation (2f), add-after-lock (2g); Google Calendar write + decline webhooks.
4–5Meeting-space graph (1f) + mobile invitee (2d) in parallel. v2 media spike starts wk 4 (Daily vs LiveKit prototypes in the graph).
5–6Landing (1g), motion contractor pass on all nebula states, hardening, launch. Wk 6: media-layer decision (see Integrations §4).

5 · Document map

Product PRD

Personas, CUJ specs with acceptance criteria, nebula state machine, reveal spec, privacy model, v2 blob groundwork.

Backend Infrastructure PRD

Netlify + Supabase architecture, data model, API surface, scoring engine, realtime, auth, security & retention.

Integration PRD

Google Calendar OAuth + webhooks, Resend email flows, magic-link claim, v2 media-layer evaluation.

Decision Log

Every decision, its source (grill round or assumed), and status. Nothing in this PRD is undecided.