DealDeck-3

Type: Software Status: In Progress (M1 + M2 + M3 complete; live on TestFlight) Deadline: Open-ended (App Store launch is the near-term milestone) Created: 2026-06-09

What is this?

Third iteration of DealDeck. New core loop, reoriented around news rather than gameplay as the primary surface. Details of the loop will emerge as we build.

Sibling to (not replacement of) the existing dealdeck (Expo v1) and dealdeck-native projects — runs as a parallel experiment informed by user learnings from the first two.

Motivation

User learnings from v1 / native iteration pointed away from gameplay-first framing. The thesis to test: a news-first surface is the right entry point for the elite VC / growth-equity audience, and the collection / portfolio mechanics work better as a downstream layer rather than the hook.

What does success look like?

Near-term: App Store launch.

Beyond that, success criteria intentionally TBD — let the new core loop crystallize before locking metrics.

Technical

  • Stack: Expo SDK 56 / React Native 0.85 / React 19.2 / Expo Router 6 / TypeScript
  • Repo: ~/projects/dealdeck-3/djt53/dealdeck-3 (private)
  • Deploy target: iOS App Store (EAS account: dijit)
  • Intended users: Elite VC / growth-equity audience (same target as v1)
  • Backend: Shared with v1 — Supabase project euogsdojqtejmbzxdzyi (org ujqbacxhxubidtadmngo). Additive schema: reads card_catalog, writes user_state.card_ids + card_saved_at. v1-only tables (arena, quiz, hotlist, pods) stay dormant. Logo.dev token inherited from v1.

Design language

Neobrutalist (per eliza.cool reference): cream bg, pure-black 3px borders, hard offset shadows (no blur), saturated primary-ish accents (red #ff6b6b, yellow #ffd93d, green #6bcf7f, blue #74b9ff), small sticker rotations on chip-style elements. Fonts: Space Grotesk + Space Mono. Single bright surface (no dark mode).

Palette + Neo primitives live at src/constants/theme.ts.

Relationship to prior iterations

  • dealdeck (v1): Expo/RN, gameplay-first card-collecting loop, in progress
  • dealdeck-native: native iOS exploration
  • dealdeck-3 (this): Expo/RN, news-first reframing, parallel experiment

Treat all three as live until v3 either proves the news-first thesis or doesn’t.

Milestones

Detailed breakdown lives in tasks.md.

#MilestoneState
M1Foundations — scaffold, theme, primitives, tab shell, pack/deck/modal flows✅ Complete
M2Real data + persistence — Supabase, auth/OTP, user_state, logo.dev, B&W Skia logos, app icon✅ Complete
M3TestFlight prep — EAS Build, Apple Dev setup, bundle ID, ASC entry, first build live, welcome onboarding swipe + cold-start splash with shared-element brand morph✅ Complete
M3.5Polish + iteration on top of M3 — Pulse rewrite, search, curated packs, rumors woven into feed, tap stamp rollout, edge-to-edge, refresh, OTA pipeline, FeedSwipeableCard✅ Complete
M4Ingest rework — redesign v1 pipeline from first principles; endpoints stay, plumbing changesFuture
M5Heterogeneous feed — rumors + card_mentions landed in v3 Feed; investor chips + voting + companies extraction still aheadIn Progress
M6Curated packs (sector + location) — Tier 1 themes shipped; Tier 2/3 need taxonomy workIn Progress
M7Deal detail modal polish — widen data path, round + company facts blocks, share, source link, unsaveFuture
M8Dark mode (post-TestFlight) — theme context + dynamic stylesheets across ~25 filesFuture
M9Notifications — Phases 1-4 mostly done (permission flow, token capture, evolution trigger + queue + notify-round Edge Function + 30s pg_cron + deep linking + Profile settings row). Remaining: rumor digest worker, receipts cleanup, EXPO_ACCESS_TOKEN secretIn Progress
M10Intel pipeline (cloud) — X tweets → classified → proposed writes → human review → v1 + v3 feeds (rumors + mentions). Slice 1 + 1.5 + 2 done; Slice 3 (hardening) aheadIn Progress

Core conceptual model

A card = a company at a point in time (e.g. Seed Raise of Foo). The Feed and the Deck are two views of the same card_catalog table — Feed is the temporal view (ORDER BY added_at DESC), Deck is the user’s saved subset. Future feed types (rumor, intel) will sit alongside cards as additional event types ABOUT a company — formalised via the companies table extraction in M5.