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
- Robust context storage – content-addressable, hash-versioned node data
- Semantic search – vector search across all pivots and chats
- Cleaner UI – lighter theme, collapsible sidebars, keyboard-first nav
- Export to Markdown/Jira/GitHub issues
- Role-based access controls & contribution analytics
Log in or sign up for Devpost to join the conversation.