Web Application

Stack

  • Framework: Next.js 14 App Router (app/ directory structure).

  • Language: TypeScript.

  • Styling: Tailwind CSS + custom utilities in web/src/app/globals.css.

  • UI Primitives: src/components/ui/ (notably button.tsx, fade-in.tsx, interactive-tile.tsx). Reuse these to maintain styling and animations.

Key Entry Points

  • src/app/layout.tsx – Global HTML shell, fonts, metadata.

  • src/app/page.tsx – Landing page composition (Hero, Mission, News, Dashboard Preview, Verification, Roadmap, Call-to-Action, Footer).

  • src/app/api/ – Server routes for submissions (submissions/route.ts) and dashboard snapshots (dashboard/route.ts).

Core Components

Component
Path
Notes

Hero

src/components/hero.tsx

Mission statement, stats placeholders, invite/contact CTAs.

NavBar

src/components/nav-bar.tsx

Desktop + mobile menus; ensures navigation labels match anchors.

MissionSection

src/components/mission-section.tsx

Describes research pillars and waitlist messaging.

NewsSection

src/components/news-section.tsx

Placeholder cards for future live signals.

DashboardPreview

src/components/dashboard-preview.tsx

Teases features expected in the dashboard experience.

VerificationProcess

src/components/verification-process.tsx

Renders the eight-step diligence pipeline, submission form, and agent assistant.

OptionalKycCard

src/components/optional-kyc-card.tsx

Initiates third-party KYC sessions to unlock the public “doxxed” badge.

RoadmapSection

src/components/roadmap-section.tsx

Timeline of 2025–2026 deliverables.

CallToAction

src/components/call-to-action.tsx

Invite program CTA.

DataSubmissionForm

src/components/data-submission-form.tsx

Handles intake POST to /api/submissions with 24-hour retention messaging.

AgentAssistant

src/components/agent-assistant.tsx

Deterministic FAQ assistant for verification questions.

API Routes

  • Accepts mission details, email, links, metrics, and notes.

  • Stores payload in an in-memory store with auto-expiry after 24 hours.

  • Returns success/error messaging used by the front-end form.

  • (Internal) Lists pending submissions for monitoring while the app runs.

  • Provides aggregated metrics, pipeline status, asset snapshots, and recent verification events for the future dashboard UI.

  • Upserts an asset record and/or records a verification event with validation on stage and status.

  • POST /api/kyc/initiate

    • Creates a pending Persona session and returns a secure verification link; updates the asset’s KYC status to pending.

  • POST /api/kyc/callback

    • Simulates the Persona webhook to mark sessions verified, pending, or failed, updating the dashboard store accordingly.

Development Commands

Run these inside web/:

  • npm run dev – Launch local dev server at http://localhost:3000.

  • npm run lint – ESLint + TypeScript checks (must pass before commits).

  • npm run build – Production build (Netlify executes the same command).

Note: Ensure Node/npm are installed and on the PATH. On Windows, a portable Node binary can be added via environment variables if system install is restricted.

Content Parity Checklist

When editing copy or structure in web components:

  1. Mirror the change in Android (MainActivity.kt) and iOS (ContentView.swift).

  2. Update documentation (README.md, relevant /docs files).

  3. Confirm navigation anchors still match labels (Mission, Verification, Assets, Roadmap).

  4. If new CTAs are added, reuse the Button component and ensure they target approved channels (mailto / X profile).

Last updated

Was this helpful?