Product Requirements Document

Concord V1

A founder personality OS — onboarding builders through intentional self-discovery and delivering personalized, actionable guidance.

Version 1.0 April 2026 Gabriela & Ruth
What is Concord?

Concord is an invite-only platform for builders — founders, creators, and anyone actively building something. It captures who they are through a guided onboarding flow, then delivers a personalized dashboard with actionable next steps, system-generated insights, and basic compatibility matching with other users.

The product uses birth data (date and optional time) combined with structured onboarding inputs to generate personalization. The underlying framework is never exposed to users — personalization should be felt, not explained.

V1 Summary

Concord V1 should:

Target Users

Builders at three stages: those who are starting (not yet in motion), building (actively creating), and evolving (refining and growing). Access is invite-only via unique codes.

Design & Product Philosophy
Principle
Intentional, Minimal, Precise

Every element earns its place. No decoration for decoration's sake. The experience should feel like it was designed by someone who respects the user's time and attention.

Principle
Understood, Not Analyzed

Users should feel the system knows them — but never feel studied, categorized, or reduced to a label. The output feels personal, not clinical.

Principle
Intelligent, Not Explained

The system should feel smart without showing its work. No "based on your Human Design profile" — just accurate, surprising insights delivered naturally.

Principle
Clear & Actionable Outputs

Every task, insight, and recommendation must be specific enough to act on immediately. "Build your network" is too vague. "Reach out to 3 potential collaborators in your industry this week" is Concord.

Principle
Invisible Personalization

Personalization is present everywhere but never announced. No toggles, no "personalization settings," no "based on your profile." It just works.

Principle
Award-Winning Design

Clean, minimal, artistic, elegant. Not corporate or cluttered. Slightly elevated but highly usable. Card-based layouts, strong spacing, subtle animations only. This app should win design awards.

Screen Specifications
The onboarding is 6 screens from invite code to dashboard. Each screen is detailed below with UI requirements, interactions, and acceptance criteria.
Screen 1 of 6

Entry Screen (Invite Code)

Layout: Full black screen, minimal UI. Single centered input field with placeholder "Enter your code".

Interaction: User enters an invite code. On valid entry, a small door appears and opens (subtle animation, ~0.6–1.2 seconds), then transitions into the next screen.

Visual: The door animation is the first moment of delight. It signals exclusivity without gatekeeping — you were invited, and now the door opens for you.

Acceptance Criteria
  • Input field centered vertically and horizontally on a pure black (#0A0A0A) background
  • Code validation happens on submit (Enter key or hidden submit button)
  • Invalid codes show a subtle shake animation + brief error text, no modal
  • Valid code triggers the door animation (0.6–1.2s) before route transition
  • Each invite code is single-use and tied to a specific email or is open-use (configurable)
  • No other navigation, branding, or UI elements visible on this screen
Screen 2 of 6

Concord Introduction (Manifesto)

Layout: 3–5 short lines explaining what Concord is. No long text or scrolling. Tone: clear, direct, intentional.

CTA: "Continue" button at bottom.

Legal: Below the CTA: "By continuing, you agree to our Terms and Privacy Policy" (both clickable links). No separate consent screen.

Acceptance Criteria
  • Maximum 5 lines of text, each under 60 characters
  • Text appears with staggered fade-in animation (150ms delay between lines)
  • Terms and Privacy Policy open in new tabs, linking to real legal pages
  • No scrolling required — all content visible above the fold
  • "Continue" button uses the primary button style from the design system
Screen 3 of 6

Personal Information

Inputs: Name, Date of Birth, Time of Birth (optional, skippable).

Note for birth time: Include helper text: "Adding this later improves accuracy."

Time of birth has a soft pulsing nudge indicator on the dashboard if skipped.

Acceptance Criteria
  • Name field: text input, required, minimum 2 characters
  • Date of birth: date picker, required, must be in the past and user must be 13+
  • Time of birth: time picker, optional — "Skip" affordance clearly visible
  • If time is skipped, store null and flag for dashboard nudge
  • All data persists to user profile on submit
  • Clean, minimal form layout — no fieldsets, no heavy borders
Screen 4 of 6

Onboarding Questions (Structured Flow)

Layout: Broken into steps with a progress indicator. Each section appears one at a time.

Sections:

  • Current state — Building or not building? (selection)
  • What they are building / want to build — Short text input
  • Their goal — Short text input
  • Strengths — Selectable options (multi-select)
  • Weaknesses — Selectable options (multi-select)
  • Working style — Selectable options (single-select preferred)
  • Core values — Selectable options (multi-select, pick top 3)
  • Deal breakers — Non-negotiables in collaborators (multi-select or text)
  • Ideal collaborator — Short text input

Feel: The experience should feel guided and clean — not like a survey. Ruth and Gabriela are refining the exact questions.

Acceptance Criteria
  • Progress indicator shows current step out of total (e.g., "Step 3 of 9")
  • One section visible at a time — transitions between steps use a subtle fade
  • Back button available (not prominent) to revisit previous answers
  • Selectable options use pill/chip UI, not checkboxes
  • "Core values" enforces pick-3 limit with visual feedback
  • All responses stored as structured data, not free text blobs
  • Progress persists if user leaves and returns (session or account-level)
Screen 5 of 6

Commitment Screen

Prompt: "When will you earn your first dollar from this?"

Inputs: Date picker + optional short text: "What will make this real?"

CTA: "Commit" button (uses the deep blue commit button style).

This date is stored and used later for task guidance and timeline-based recommendations.

Acceptance Criteria
  • Date picker allows future dates only
  • Optional text field: max 200 characters
  • "Commit" button is visually distinct from standard "Continue" — signals weight/importance
  • Commitment date stored in user profile and surfaced on dashboard as "First Dollar Date"
  • Date is used by the task engine to calibrate urgency and recommendations
Screen 6 of 6

Transition to Dashboard

Animation: Simple, smooth transition (fade or slight motion). No heavy animation.

After the commitment screen, the user enters the main product experience — the dashboard.

Acceptance Criteria
  • Transition duration: 400–600ms
  • No loading spinner — if data needs processing, animate content in progressively
  • User lands on a fully populated dashboard (stage, first task, insight visible)
Main Product Experience
The dashboard should be minimal and structured. It answers three questions: Where am I? What should I do next? What matters right now?

1. Header

Displays: User name and Builder Type (a simple, system-generated label). The builder type is derived from onboarding inputs, never referencing underlying systems.

2. Current State (Anchor Section)

The anchor section gives the user a snapshot of where they are right now.

3. Next Moves (Action Engine)

3–5 clear, actionable tasks. Generated based on the user's stage, stated goals, strengths/weaknesses, and working style.

Tasks must be:

Must Have Tasks are displayed as interactive cards. Users can mark tasks complete. Completing a task generates the next one.

4. Alignment (People)

Show potential aligned users (if available). Include simple compatibility labels: Strong, Moderate, Potential Conflict.

Can be minimal or hidden if the user base is small. This section becomes more valuable as the platform grows.

5. Profile Refinement

A "Refine Your Profile" or "Profile Precision" section. If birth time is missing, show "Birth Time — Incomplete" with a soft pulsing/glow indicator and a CTA to add it. Indicator disappears once completed.

6. Insight (Bottom of Page)

Short, system-generated observations written in natural language. Example: "You move quickly in vision but benefit from structured execution."

Personalized using two layers: base pattern from birth data (date + time if available), then refinement from onboarding inputs (working style, strengths, weaknesses).

V1 approach: Rule-based logic. If no AI or advanced calculations are available yet, use onboarding inputs only. Birth data is stored for future intelligence layers.

Critical rules for insights:

How Concord Knows You

Stage System

Users are categorized into three stages that determine task recommendations:

StageDefinitionTask Focus
StartingNot yet in motion — has an idea but hasn't begun buildingClarity, first steps, commitment, validation
BuildingActively creating — has started but isn't generating revenueExecution, iteration, reaching first customers
EvolvingRefining and growing — has traction, looking to optimizeScaling, systems, delegation, growth strategy

Personalization Inputs

Tasks and insights are personalized based on:

Personalization Rules

What We Are (and Aren't) Building

V1 Technical Goals

Not Building in V1
  • Advanced AI or machine learning
  • Messaging system between users
  • Social feed or activity stream
  • Complex analytics or data visualizations
  • Payment processing or monetization features
  • Mobile native app (web-first, responsive)
Technical Appendix
Technical Specification
Everything below this line is for engineering. The recommended stack is Next.js 14+ with Supabase (Postgres + Auth + Edge Functions).

Recommended Stack

LayerTechnologyRationale
FrontendNext.js 14+ (App Router)Server components, file-based routing, Vercel deployment
StylingTailwind CSS + custom design tokensMatches style guide system, utility-first for rapid iteration
DatabaseSupabase (Postgres)Real-time subscriptions, Row Level Security, auth built-in
AuthSupabase AuthEmail/magic link, integrates with invite code system
HostingVercelGit-push deploys, edge functions, preview deployments
AnimationsFramer MotionDeclarative, performant, matches "subtle animation" requirement

Database Schema

-- Users table CREATE TABLE users ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), email TEXT UNIQUE NOT NULL, name TEXT NOT NULL, birth_date DATE NOT NULL, birth_time TIME, -- nullable, nudge if missing invite_code TEXT REFERENCES invite_codes(code), stage TEXT CHECK (stage IN ('starting', 'building', 'evolving')), builder_type TEXT, -- generated label created_at TIMESTAMPTZ DEFAULT now(), updated_at TIMESTAMPTZ DEFAULT now() ); -- Onboarding responses CREATE TABLE onboarding_profiles ( user_id UUID PRIMARY KEY REFERENCES users(id), current_state TEXT, -- 'building' | 'not_building' building_what TEXT, goal TEXT, strengths TEXT[], -- array of selected options weaknesses TEXT[], working_style TEXT, core_values TEXT[], -- max 3 deal_breakers TEXT[], ideal_collaborator TEXT, first_dollar_date DATE, first_dollar_what TEXT, -- "what will make this real" completed_at TIMESTAMPTZ ); -- Invite codes CREATE TABLE invite_codes ( code TEXT PRIMARY KEY, created_by UUID REFERENCES users(id), used_by UUID REFERENCES users(id), is_active BOOLEAN DEFAULT true, max_uses INTEGER DEFAULT 1, use_count INTEGER DEFAULT 0, created_at TIMESTAMPTZ DEFAULT now() ); -- Tasks (action engine) CREATE TABLE tasks ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), user_id UUID REFERENCES users(id), title TEXT NOT NULL, description TEXT, stage TEXT, -- which stage this task targets is_complete BOOLEAN DEFAULT false, sort_order INTEGER, created_at TIMESTAMPTZ DEFAULT now(), completed_at TIMESTAMPTZ ); -- Insights CREATE TABLE insights ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), user_id UUID REFERENCES users(id), content TEXT NOT NULL, source TEXT, -- 'onboarding' | 'birth_data' | 'combined' is_active BOOLEAN DEFAULT true, created_at TIMESTAMPTZ DEFAULT now() ); -- Compatibility scores CREATE TABLE compatibility ( user_a UUID REFERENCES users(id), user_b UUID REFERENCES users(id), score TEXT CHECK (score IN ('strong', 'moderate', 'potential_conflict')), reasons TEXT[], computed_at TIMESTAMPTZ DEFAULT now(), PRIMARY KEY (user_a, user_b) );

Row Level Security (RLS)

All tables must have RLS enabled. Users can only read/write their own data. Compatibility table allows read access for both user_a and user_b. Invite codes are publicly readable (for validation) but only writable by admins.

Endpoint Specification
MethodEndpointDescriptionAuth
POST/api/validate-codeValidate invite code, return statusPublic
POST/api/auth/signupCreate account after code validationPublic
POST/api/onboarding/personalSave name, DOB, birth timeUser
POST/api/onboarding/questionsSave structured onboarding responsesUser
POST/api/onboarding/commitSave first dollar date + commitment textUser
GET/api/dashboardReturn full dashboard state (profile, tasks, insight, alignment)User
PATCH/api/tasks/:idMark task complete, trigger next task generationUser
PATCH/api/profileUpdate profile (e.g., add birth time)User
GET/api/alignmentGet compatible users listUser

Validate Code Response

// POST /api/validate-code // Request { "code": "CONCORD-RUTH-001" } // Response (valid) { "valid": true, "remaining_uses": 1 } // Response (invalid) { "valid": false, "reason": "expired" }

Dashboard Response

// GET /api/dashboard { "user": { "name": "Alex", "builder_type": "Visionary Builder", "stage": "building", "birth_time_complete": false }, "current_state": { "building_what": "A coaching platform for creative founders", "goal": "Launch beta and get 10 paying users", "first_dollar_date": "2026-06-15" }, "tasks": [ { "id": "uuid", "title": "Define your first product offer", "description": "Based on your goal, start with a simple offer...", "is_complete": false } ], "insight": { "content": "You move quickly in vision but benefit from...", "source": "combined" }, "alignment": [ { "user": { "name": "Jordan", "builder_type": "Methodical Creator" }, "score": "strong" } ] }
Build Phases
Suggested phasing for implementation. Each phase is independently deployable and testable.
Phase 1 — Foundation
Project Setup + Auth + Invite Codes

Next.js project scaffold, Supabase setup, database schema, invite code validation, entry screen with door animation, Supabase Auth integration.

Must Have

Phase 2 — Onboarding
Full Onboarding Flow (Screens 2–6)

Manifesto screen, personal info collection, structured question flow with progress indicator, commitment screen, transition animation. All data persisted to Supabase.

Must Have

Phase 3 — Dashboard Core
Dashboard Layout + Current State + Tasks

Dashboard page with header, current state anchor section, task cards (action engine), task completion flow. Rule-based task generation from onboarding data.

Must Have

Phase 4 — Intelligence
Insights + Profile Refinement + Nudges

System-generated insights (rule-based V1), profile refinement section, birth time nudge with pulsing indicator, builder type generation.

Must Have

Phase 5 — Social
Alignment / Compatibility

Compatibility scoring between users (value alignment, working style match), aligned users display on dashboard with Strong/Moderate/Conflict labels.

Should Have

Phase 6 — Polish
Animation, Responsiveness, Edge Cases

Animation refinement (all transitions matching style guide specs), responsive design verification, empty states, error states, loading states, accessibility pass.

Must Have