PRD NowPage 2026-04-02

NowPage Live Collaboration

Section-level temporal drawers for any HC page. Real-time multi-user annotation, approval, and change tracking — on the published artifact itself.

Feature name: "Pulse" — NowPage Pulse is the live collaboration layer. A page with Pulse enabled carries its own collaboration history, approval state, and structured engagement data. "Add Pulse to this page" = enable section-level temporal drawers.

1. What Is This?

Every HC page published via NowPage can optionally enable Pulse — a per-section collaboration layer. Collapsed by default, expandable to reveal: collaboration notes, change history, approval state, and input for new reactions. Multi-user, real-time, structured data.

Core principle: The page IS the collaboration surface. Not a separate doc. Not a comment thread. The published artifact carries its own provenance, reactions, and approval state.

Who it's for

The 21st Century Use Case

Jason is on an alignment call building a brief live on NowPage. The client isn't just watching — they click a section and type "this isn't quite right — we want X." Jason sees it in real time, adjusts. The client marks the section "approved." At the end, the brief IS the deliverable — annotated, approved, with full provenance. The client shares it. Their partner adds notes. The document keeps evolving.

This is not comments on a page. This is a new category of document — a living surface where content, collaboration, and data converge.

2. Architecture

Published HC Page (any NowPage domain)
  │
  ├── Section 1: [content]  △ 3 notes
  │   └── [drawer: collapsed by default]
  │       ├── Summary line (auto or manual)
  │       ├── Recent notes (last 3-5)
  │       ├── Input field + mic button
  │       └── [expand: full history with timestamps]
  │
  ├── Section 2: [content]  ✓ approved
  │   └── [drawer]
  │
  └── Section N: [content]  ? 1 question
      └── [drawer]

        ↓ all data flows to ↓

Supabase (page_collaboration table)
  │
  ├── Real-time subscriptions (live updates)
  ├── REST API (query, push, reconcile)
  └── Webhooks (on note/approval → external systems)
        ├── → Forge (reconciliation)
        ├── → CRM (lead engagement)
        └── → Analytics (section-level metrics)
ComponentRole
NowPage PublisherInjects Pulse JS into pages with collab: true metadata
SupabaseStores notes, approvals, history. Real-time subscriptions.
NowPage APIExposes collab data per page (dashboards, analytics, export)
Pulse Widget JSClient-side: drawer UI, name entry, note input, mic, realtime sync

3. Specification

3.1 Section-Level Temporal Drawer

Display Modes (per page metadata)

ModeBehaviorUse Case
internalTimestamps at first expandPlanning/working docs
externalTimestamps behind second expandClient deliverables
lockedRead-only, no new inputArchived/finalized pages

3.2 Collaboration Actions

ActionWhatData
NoteFree-text reactionpage, section, author, content, timestamp
ApproveMark section acceptedpage, section, author, type="approve"
QuestionFlag needs clarificationpage, section, author, type="question", content
Needs WorkFlag needs revisionpage, section, author, type="needs_work", content
Voice NoteSpeech-to-textpage, section, author, content (transcribed), type="voice"

3.3 Identity

v1: Name entry on first visit. localStorage. No login. Good for 2-10 people.

v2: Optional NowPage account. Persistent identity. Avatar. Notifications.

3.4 Summarize + Push Lifecycle

Notes → Summarize (aggregate per section) → Push (send to Forge, CRM, webhook) → Implemented (ref back to what changed).

Status lifecycle: draft → pushed → implemented

3.5 Intelligence Board

Meta-page per domain: all notes across all pages, grouped by section. Stats, canonical log, filter by page/author/status/date. Auto-refreshes.

4. Data Model

-- Core collaboration table
CREATE TABLE page_collaboration (
  id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
  domain TEXT NOT NULL,
  page_slug TEXT NOT NULL,
  section TEXT NOT NULL,
  author TEXT NOT NULL,
  type TEXT DEFAULT 'note',  -- note|approve|question|needs_work|voice
  content TEXT DEFAULT '',
  parent_id UUID REFERENCES page_collaboration(id),  -- threaded replies v2
  created_at TIMESTAMPTZ DEFAULT NOW()
);

-- Summary + push tracking
CREATE TABLE page_collaboration_summaries (
  id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
  domain TEXT NOT NULL,
  page_slug TEXT NOT NULL,
  section TEXT NOT NULL,
  summary TEXT NOT NULL,
  note_ids UUID[],
  status TEXT DEFAULT 'draft',  -- draft|pushed|implemented|rejected
  pushed_to TEXT,
  pushed_at TIMESTAMPTZ,
  implemented_at TIMESTAMPTZ,
  implemented_ref TEXT,
  created_by TEXT,
  created_at TIMESTAMPTZ DEFAULT NOW()
);

5. Execution Phases

Phase 1 — Widget + Data Layer (~3 days)
  1. Create page_collaboration Supabase table with RLS + realtime
  2. Build Pulse widget as embeddable JS (single file, no build step)
  3. Name entry modal + localStorage persistence
  4. Note, approve, question, needs_work actions
  5. Voice-to-text via Web Speech API

Done: Widget drops onto any HC page, collaboration works multi-user real-time.

Phase 2 — NowPage Integration (~2 days)
  1. Add collab: true flag to NowPage page metadata
  2. Display mode support (internal/external/locked)
  3. Progressive disclosure (3-level expand)

Done: Pages with collab: true auto-include Pulse.

Phase 3 — Intelligence Board + Push (~2 days)
  1. Intelligence Board page template
  2. Summarize action (client-side v1, LLM v2)
  3. Push to external system
  4. Status lifecycle tracking

Done: Full note → summary → pushed → implemented lifecycle.

Phase 4 — Analytics + Polish (~2 days)
  1. Section-level engagement metrics API
  2. Publisher dashboard panel
  3. Export (JSON, CSV, markdown)

Done: Publishers have actionable per-section engagement data.

6. Cost

ComponentMonthly
Supabase (free tier sufficient for v1)$0
Realtime connections (200 concurrent free)$0
Widget hosting (CDN or bundled)$0
LLM summarization v2~$0.01/summary
Total v1$0/mo

7. Definition of Done

8. Cascade

Ship Pulse on NowPage → Every Reveal page = live collaboration surface → Alignment calls produce annotated deliverables → Clients share annotated pages → organic NowPage adoption → Structured engagement data per section → Publishers know what resonates → content quality compounds → NowPage pages measurably outperform static HTML → Approval workflows replace email chains → NowPage = collaboration infra, not just publishing → Retention: people return to pages → MAU up → Forge reconciliation loop → Page notes → inputs to agentic workflows → NowPage pages = nodes in the agentic ecosystem → Analytics tier differentiator → Free = publish, Paid = collab + analytics → Clear pricing for $29-99/mo tiers → Forge Builds calls demonstrate the feature live → Sales process sells NowPage AND Forge simultaneously
]]>