Reconciling product roadmaps across 30 user interviews without losing track of hidden dependencies

0 to 1 Product Strategy•Spatial Systems•Shipped
Scribe System Overview
Visit Live App
3 min read • 45 sec skim
01 / ORIGIN

The Evolution of Scribe: 3 MVP iterations before context

Before landing on rigid hierarchical columns, Scribe underwent three distinct prototypes. Each iteration tested a different mental model—from unconstrained AI connection graphs to qualitative storytelling, before narrowing into rigid strategic hierarchy for decision-makers.

Iteration 01

MVP 1 — AI Connection Map Generator

Unconstrained Force Graph

The initial concept allowed users to input raw notes and let an automated AI engine construct a force-directed graph based on word co-occurrences and semantic links.

MVP 1 Light Theme Graph
MVP 1 Dark Theme Graph
User Feedback & Initial Reactions
"What do I use it for?""Looks cool, but how do I read it?""Can I try it?""Okay... (confusion personifies)"
Conclusion

The map looked visually impressive, but failed to serve a practical purpose. The UI provided no direction, turning navigation into an exhausting game of detective.

New Direction

The tool needed a specific purpose. The UI must drastically reduce cognitive load rather than increase it.

Iteration 02

MVP 2 — Storytelling & Qualitative Journey Maps

Story of the Little Match Girl

Chose storytelling as the core direction—taking complex qualitative data (like stories, user interview transcripts, and narrative arcs) and representing them as interactive cluster journey maps.

MVP 2 Qualitative Storytelling Canvas
MVP 2 Qualitative Storytelling Canvas
MVP 2 Qualitative Storytelling Canvas
MVP 2 Qualitative Storytelling Canvas
User Feedback
"I am putting in more effort...""Looks cool""What are you using it for?""Can I try it?"
Conclusion

Slightly more useful than MVP 1, but as a tool it still lacked a clear, indispensable purpose. Users felt they were putting in excessive effort decoding visual layouts.

New Direction

Scrap visual gimmicks entirely. Focus on a specific niche problem for users who need to make high-stakes decisions from dense data.

Iteration 03

MVP 3 — Multi-Data Link & Connection Analyzer

Targeting Thinkers & PMs

Pivoted away from creative writers toward thinkers, product managers, and researchers—synthesizing complex data inputs, 50-page research papers, and technical requirements into linked analytical graphs.

Multi-Cluster Analysis
Dense Link Graph
In-Depth Stakeholder Interview Insights
UX Professor

"This looks useful enough but you still need to find a better use case for it. Write a research paper on this..."

IBM Product Manager

"I will use it if it reduces my effort and saves me time. I don't understand the specific context... I'd rather use normal AI."

Automobile Designer

"I don't want to read all that and either way I don't feel like it helped me."

Conclusion

It was significantly better than previous iterations, but unconstrained graphs still lacked a singular focus to replace traditional AI chat windows in daily workflows.

Final Breakthrough to Scribe

Scrap free-form physics graphs entirely. Constrain D3 to snap nodes into fixed 300px hierarchical columns (Pillars → Clusters → Leaves) tailored specifically for strategic roadmap stress-testing.

02 / CONTEXT

Scribe is a local-first, visual note-taking environment designed to solve this specific problem.

It was built as a solo project, meaning I needed a stack that allowed for rapid prototyping without heavy backend infrastructure (Next.js, Tailwind, D3.js, and local IndexedDB).

Scribe System Overview
03 / THE REAL PROBLEM

Linear documents hide cross-phase interdependencies.

I was trying to reconcile a product roadmap across 30 different user interviews, technical constraints, and design requirements. I kept losing track of how a feature in Phase 2 would break a constraint we discovered in Phase 1.

Linear documents (like Notion or Google Docs) hide interdependencies. You can link pages, but you cannot see the structural connections. I needed a way to map out complex logic visually without it turning into an unreadable mess.

The Problem: Linear Docs vs Multi-Dimensional Dependencies
04 / THE WORKFLOW

See Scribe in Action: From raw data to spatial synthesis

A step-by-step walkthrough of how unstructured thoughts are transformed into structured, interactive decision maps.

01. API Setup (BYOK)

Friction by design. Users bring their own API keys to guarantee absolute data privacy and zero vendor lock-in.

02. Document Upload

Ingesting unstructured data, PRDs, and user interviews to prepare for multi-document synthesis.

03. Graph Generation

Selecting multiple sources to generate a unified graph, surfacing hidden cross-document interdependencies.

04. Spatial Workbench

Automated spatial arrangement snaps nodes into rigid hierarchical columns, removing manual drag-and-drop fatigue.

05. Intelligence Copilot

Conversing with the data logically while maintaining visual context of the entire graph structure.

06. Export & Handoff

Packaging insights into portable, linear markdown formats for easy distribution to wider teams.

05 / KEY DECISIONS
DESIGN 1/3

Forcing hierarchical columns over free-form graphseliminating unnavigable graph hairballs

Most note-taking apps with graphs (like Obsidian) use force-directed layouts. They look cool, but they turn into useless 'hairballs' once you have more than 50 notes.

Rationale & Trade-off

Decision: I constrained the D3 physics engine to snap nodes into fixed 300px columns based on their hierarchy (Pillars -> Clusters -> Leaves). Trade-off: Users lose the ability to place notes anywhere they want on an infinite canvas, but the structure remains legible and organized even with hundreds of nodes.

Forcing hierarchical columns over free-form graphs
DESIGN 2/3

Client-side storage over cloud databaseszero-latency storage & complete data privacy across desktop & mobile

Scribe stores all data in the browser using IndexedDB.

Rationale & Trade-off

Trade-off: It prevents easy multi-device syncing out of the box, but it allowed me to bypass complex authentication flows, ship faster, and guarantee 100% privacy for users working with sensitive strategic data.

Client-side storage over cloud databases
DESIGN 3/3

Bring-Your-Own-Key (BYOK) for AI featurestwo-pass semantic extraction with zero vendor lock-in

Instead of charging a subscription for AI credits, users paste in their own OpenAI or Claude keys, or connect to a local Ollama instance.

Rationale & Trade-off

Trade-off: It adds friction to the onboarding process, but it keeps the app free to host and ensures user data isn't being silently scraped by a middleman server.

Bring-Your-Own-Key (BYOK) for AI features
06 / DESIGN SYSTEM & ARCHITECTURE

Engineering-Grade System: Tactical Noir & 3-Tier Tokens

Scribe is powered by a fully documented, standalone Design System. To ensure seamless developer handoff, the UI is built on a strict 3-tier token architecture with a 7-State machine testing protocol (Hover, Active, Disabled, Loading, Error, etc.), moving beyond Figma mockups into production-ready schemas.

FOUNDATIONS

Color Palette & Contrast Hierarchy

WCAG 2.1 AA / AAA
#ff4d00
Scribe Flame
Primary Action / Focus
#32d74b
Bauhaus Mint
Verified Flow / Success
#ff453a
Red Team Crimson
Adversarial / Error
#0a84ff
Market Blue
External / Ingest
#bf5af2
Deep Violet
Neural Lenses / Ethics
#fbbf24
Oracle Amber
AI Heuristics / Insights
FOUNDATIONS

Typography Ladder

DISPLAY // PLAYFAIR 32PX / 900

Spatial Intelligence for Complex Systems

HEADING // DM SANS 20PX / 700

Micro Workbench & D3 Dynamic Cable Routing

BODY // DM SANS 14PX / 400

Unhappy paths, logic gaps, and systemic friction revealed spatially. Run adversarial personas across 30 simulated agents.

TELEMETRY BADGE // JETBRAINS MONO 10PX / 900
TSOT-COMP-3012 // VERIFIED
Scribe System Iteration
07 / UI COMPONENTS

High-Fidelity Interaction: Beyond Standard Patterns

To support the complexity of algorithmic spatial synthesis, Scribe demanded bespoke UI components. From live telemetry HUDs to interactive docks, the interface merges technical density with tactile, low-latency ergonomics.

07.1 // System Cartridge Dock

The primary instrument dock for adding lenses, connecting datasets, and managing workspace snapshots. It uses a horizontal sliding model with dynamic active states.

SystemDock
Oracle Lens
Swamp Lens
Strategist
Local Store
07.2 // Swarm Persona Matrix

Adversarial simulation packages for stress-testing product ideas. Each package uses a distinct color identity mapped to specific system behaviors.

10 AI PERSONASACTIVE

The Red Team

Critical analysis, edge-case vulnerability discovery, and systemic friction resistance.

8 AI PERSONAS

The Bauhaus Council

Utility, essentialism, and industrial ergonomics without decoration waste.

6 AI PERSONAS

The Market Movers

Business economics, distribution flywheels, and monetization sovereignty.

6 AI PERSONAS

The Deep Thinkers

Ethics, epistemic humility, and long-term societal resilience models.

07.3 // Spatial Telemetry & Strategist

Tactical floating HUD overlays, camera controls, coordinate readouts, and spatial resonance indexes mapped over the infinite canvas.

ROOT CONCEPT
Market Liquidity Protocol
VERIFIED OUTCOME
Zero-Knowledge Settlement
1,248 NODES INDEXED

Heuristic recommendation feed with expandable empirical rationale and 2-step verified canvas mutation.

Strategic Recommendation
EU Art. 14 // Human-in-the-Loop
94% CONFIDENCE

Cluster 4 exhibits high adversarial resistance. Recommend splitting into two decoupled micro-workbenches to isolate failure modes.

Empirical Rationale Ledger

Evaluated against Red Team personas. 4/5 models flagged single-point-of-failure in current node wiring.

08 / COMPONENTS & COMPLIANCE

Production-Ready UI: From Atoms to EU Regulation

A robust design system isn't just about aesthetics; it's about handling unpredictable edge cases and strict legal requirements. Scribe's UI kit was built to gracefully manage missing data, text overflows, and mandatory statutory metadata required for AI products.

07.1 // Component Set (Atoms)
Step-Gate Mode
Require human confirmation before mutations
07.2 // Edge Cases & Resilience

7-State Component Machine

Every interactive atom (buttons, nodes, inputs) is mapped across 7 distinct states: Default, Hover, Active, Disabled, Loading, Error, and Success, preventing broken interactions.

Unpredictable LLM Outputs

Strict multiline truncation (line-clamp) and flex-wrap policies ensure that overly verbose AI-generated titles or missing schemas never break the structural grid.

Zero-Data Graceful Fallbacks

When the user has no API key or the local IndexedDB is wiped, the UI gracefully downgrades into an empty state providing clear wayfinding instead of fatal errors.

07.3 // EU AI Act Compliance

Every AI-generated output is wrapped in statutory transparency metadata. Scribe implements Articles 13, 14, and 50 of the EU AI Act directly at the component level to ensure TSOT compliance.

Art. 50 — Algorithmic Transparency Badges

EU AI Act Art. 50 // Algorithmic Spatial Synthesis
Art. 14 // Human-in-the-Loop Verified

Art. 14 — Step-Gate Confirmation

Step 1 of 2: Review the AI's proposed action before confirming execution. You retain full override authority.

Art. 13 — Spatial Epistemic Ledger (Provenance Audit)

Spatial Epistemic Ledger96% Confidence

Synthesized via deterministic 2-pass pillar-cluster hierarchy. Zero external telemetry custody. Full BYOK client-side execution.

Latency: Damped (90%)•EU Risk Class: Limited•Human Override: VERIFIED
09 / WHAT DIDN'T WORK

Continuous physics caused distracting canvas jitter. We replaced live simulation with discrete drop snapping.

My first attempt at the "Oracle" view used a standard physics simulation where notes repelled each other. When users tried to drag notes to group them, the physics engine fought back, causing the entire map to constantly jiggle and re-adjust. It was incredibly distracting.

I had to rip out the continuous simulation and write a custom collision-detection script that only calculates physics when a node is actively dropped, snapping it to a strict 40px grid.

Iteration Prototype 1
Iteration Prototype 2
Iteration Prototype 3
Iteration Prototype 4
Iteration Prototype 5
Iteration Prototype 6
Iteration Prototype 7
Iteration Prototype 8
10 / OUTCOMES

Beta Launch: Organic traction & adoption

Scribe was launched as a private beta to validate the core assumption: that users prefer structural friction over generative fluff when dealing with complex system design. The response validated this hypothesis entirely.

350+Active Beta Users
173Waitlist Signups
DailyPersonal Usage
11 / REFLECTIONS

Need for Deep Domain Understanding

Designing for strategic thinkers required deep immersion in PRDs, roadmap friction, and non-linear thinking patterns rather than superficial templates.

Learning the Art of Prioritization

As a solo builder, enforcing rigid columns and local IndexedDB eliminated months of backend complexity while delivering instant performance and complete privacy.

Designing to Reduce Cognitive Load

"Ease of Use" shouldn't eliminate constructive friction. Scribe has a learning curve, but that friction acts as a forcing function for clearer architectural thought.

Future Technical Considerations
01. Progressive Spatial Disclosure

Implementing level-of-detail (LOD) zoom to display macro strategy clusters at wide viewports and reveal leaf cards only as the user zooms into specific clusters.

02. WebGL Canvas Scalability

Transitioning the D3 DOM rendering pipeline to a WebGL/Pixi.js layer to guarantee silky 60fps interaction during large-scale dataset navigation.