A knowledge management app I conceived, specified, and directed into existence using AI as a development partner. Every architecture decision, feature, and design token came from me — the implementation was AI-assisted.
A second-brain app I designed for how a neurodivergent mind actually works — fast capture, nonlinear connections, AI on demand, no friction. Conceived and directed; AI-assisted implementation.
Notion, Obsidian, Apple Notes — they all require you to decide where something lives before you can capture it. For ADHD brains, that decision cost is exactly where things go to die. By the time you've found the right folder, the thought is gone.
I needed a system that could capture first and organize later — ideally never. One that could surface forgotten things at the right moment, connect ideas across contexts, and bring AI in without leaving the app.
"The best second brain isn't a filing system. It's a thinking partner that remembers everything and surfaces the right thing at the right time."
I specified that Synapse should be a single JSX file — a deliberate constraint. No bundler, no dependency sprawl, no CI/CD setup needed. Drop it in a project, it runs. That decision shaped everything: it forced extreme modularity within a flat file, with every component cleanly namespaced and every visual token in one design system object I defined.
localStorage caps at 5MB and blocks the main thread. IndexedDB is async, handles binary blobs (images, audio), and can store gigabytes. The tradeoff is API complexity — wrapped in a clean async abstraction so components never touch it directly.
Every color, font size, radius, shadow, and spacing value lives in one DS object at line 11. No Tailwind classes, no CSS variables scattered across files. Any visual change happens in one place and propagates everywhere.
Redux adds a build dependency and boilerplate. React's built-in context + useReducer gives the same predictable state flow for a single-page app. 21 action types cover every state transition with full type safety via string constants.
A single callAI() function routes to Claude, GPT-4, Gemini, or Perplexity based on user config. Links auto-route to Perplexity for web grounding. Provider swap requires zero changes to any component — only the config changes.
A regex pattern list distinguishes questions/commands from thoughts. "how do I..." routes to AI chat pre-filled. "reminder to call..." creates a card. One input, two destinations, no mode switching.
The XP/level system (Seedling → Mastermind) tracks actual cognitive work: cards created, reviews completed, streaks maintained. It's not there to drive retention — it's there to make the heavy cognitive lift of processing your backlog feel like progress.
One card at a time. Keep, Archive, or Delete. Processes the full review queue with no paralysis from seeing everything at once. Designed specifically for the "I have 200 things I haven't processed and I can't start" state.
7 card types: Note, Link, Image, Video, Voice, Doc, Chat. Paste, drag-drop, URL detection, file upload. QuickCaptureBar always visible.
15 tools per card: rename, rewrite, tag, set due date, link to other cards, generate checklists, estimate time, speak summary via TTS.
Draggable node graph of card connections. AI suggests related cards based on content similarity. Manual connections also supported.
Up to 5 priority tasks with completion tracking, priority levels, and progress bar. Cards can be added to focus from anywhere in the app.
Searches title, content, tags, OCR text from images, AI insights, and themes. Scored by match quality — exact first, fuzzy last.
Cards with due dates plotted on a calendar grid. Full month view with click-to-open. Integrates with Focus system.
Rapid-fire multi-line capture for unloading everything at once. Each line becomes its own card. Designed for overwhelm states.
Gamified level system, XP bar, daily streak, stats grid. Tracks active cards, pinned, review queue, and archived items.
Users configure their preferred AI provider in Settings. The same components work regardless of which model is active. Auto-routing sends link cards to Perplexity (if configured) for real-time web grounding.
The global AI Chat panel is context-aware — it knows all cards, focus tasks, and tags when answering questions. The per-card NodeChat agent has 15 discrete tools that call the same provider abstraction.
Synapse started as a personal need and became a full product specification. I directed an AI to implement my vision — which meant I had to think like a system architect before a single line was written. Every decision had to be articulated clearly enough for AI to execute correctly. Vague direction produces vague software.
The most important UX insight: friction at capture kills the system. Every feature in Synapse is downstream of that principle. The AI integration, the gamification, the Triage Mode — all exist to reduce the cost of processing information, not to add complexity.
This project sits at the intersection of product thinking and AI-directed development — a working model of how designers can ship software without traditional engineering resources. The design system, the architecture decisions, the feature priorities — those were mine. AI was the implementation partner.
Directing AI to build something taught me that clarity of thought is the real skill. If you can't specify it precisely, you don't actually understand what you want.