Inspiration

  • Team brainstorms splinter into side-questions and dead-ends; tracking why we pivoted is painful.
  • Git solves this for code—Cactus aims to solve it for knowledge exploration.

What it does

  • Visual canvas where every node = pivot / topic you want to dig into next
  • Branch, merge, replay exploration paths just like Git commits
  • Color-linked chat threads keep discussion context tethered to the exact node
  • Timeline diff viewer shows how questions evolved and who made each change

How we built it

  • Frontend: React + TypeScript, React Flow for graph, TailwindCSS for styling
  • Backend: FastAPI (Python) + WebSockets for real-time sync
  • Workflow engine: Temporal.io for durable branching history
  • Data: PostgreSQL for graphs & chat logs, Redis pub/sub for low-latency updates
  • AI layer: OpenAI embeddings for auto-summaries and upcoming semantic search
  • DevOps: Docker, GitHub Actions CI/CD, Fly.io deployment

Challenges we ran into

  • Mapping recursive graph edits to idempotent Temporal workflows
  • Keeping node colors ↔ chat threads perfectly synchronized
  • Preventing state payload bloat—solved with delta patches + compression

Accomplishments we’re proud of

  • Sub-second branching/merging across multiple clients
  • Workflow history replay functioning end-to-end
  • Inline, AI-suggested node names editable by users

What we learned

  • UX for nested graphs needs progressive disclosure & keyboard shortcuts
  • Temporal demands thinking in long-running, failure-safe steps
  • Delta updates over WebSockets beat REST for collaborative canvases

What’s next for Cactus

  1. Robust context storage – content-addressable, hash-versioned node data
  2. Semantic search – vector search across all pivots and chats
  3. Cleaner UI – lighter theme, collapsible sidebars, keyboard-first nav
  4. Export to Markdown/Jira/GitHub issues
  5. Role-based access controls & contribution analytics
Share this project:

Updates