← Selected work · 2026

Unfog.

A visual thinking tool that turns nonlinear ideas into structured briefs and clearer AI collaboration, designed for the messy middle between idea and execution.

Year
2026
Role
Owned product direction, system architecture, AI workflow design & frontend implementation
Stack
React, Next.js, TypeScript, Supabase, OpenAI / Anthropic
Status
In active development

Overview

Unfog is a tool for people who think in fragments (founders, designers, engineers, writers) and want to get from a tangled cluster of thoughts to a structured brief without losing the original texture of their thinking. It sits between a notebook, a whiteboard, and a writing assistant.

Problem

Most AI products treat thinking as a single linear conversation. But real thinking is non-linear: half-formed claims, contradictions, references, arrows pointing back. Existing tools either flatten that into a chat log, or hide it behind a beautiful canvas with no way out to a clear deliverable.

Constraints

  • Must work for solo users on day one. No team-collab dependency
  • Latency budget tight enough that AI feels like assistance, not a wait
  • The output had to be readable by humans and machines
  • Small team, no funding runway to over-engineer the backend

Decisions

  • Chose a typed node graph over a free-form canvas. Briefs become deterministic transforms of the graph, not generated artifacts
  • Picked structured outputs over chat conversation, so AI assists thinking instead of replacing it
  • Deferred team collaboration in v1 to keep the solo-user experience honest
  • Kept the orchestration layer provider-agnostic, so the model under the system can change without product churn

Approach

I started with a system map, not a UI. Inputs: messy notes, references, voice. Process: clustering, structuring, summarizing, briefing. Outputs: structured briefs, prompts, and continuous context for downstream LLM use. Once the flow was honest, the interface mostly designed itself.

Implementation

Next.js front-end with a canvas built around a typed node graph. Supabase for persistence. A thin orchestration layer over multiple LLM providers with structured-output schemas so the UI never has to parse free-form prose. Briefs are deterministic transforms of the graph, not generated artifacts, so they’re reproducible and reviewable.

Result

Early users report the loop from “cluster of thoughts” to “something I can actually share or hand to an AI” collapsing from hours of reformatting to minutes. The product’s primary metric isn’t engagement. It’s how often a session ends with a brief the user actually used.

Reflection

The hardest part wasn’t AI. It was deciding what the system refuses to do. Every feature I cut made the remaining ones clearer. If I were starting over, I’d invest in the eval harness even earlier; the rest of the product gets faster once you can measure whether a change makes thinking clearer or just prettier.

Working on something similar?

If you’re shaping an AI-native product and want a thinking partner across product and implementation, I’m open to a conversation.