Skip to content
CrewForm — Startup Profile
Startup

CrewForm

Building a visual workflow canvas for AI agent orchestration

Agent builders & orchestration

About the startup

CrewForm is an open-source platform for orchestrating AI agent teams through a web UI. When we first launched, the "What's next" section mentioned an interactive workflow canvas. We shipped it. Here's how it works under the hood. ![CrewForm Visual Workflow Builder](https://raw.githubusercontent.com/CrewForm/crewform/main/.github/assets/pipeline-run-hero.gif) ## The problem In the original version, pipeline teams were configured through a dropdown-based step list. It worked, but it had real limitations: - You couldn't see the full flow at a glance - Rearranging steps meant tedious up/down clicking - Non-technical team members found it confusing - There was zero visual feedback during execution We needed a canvas where agents are nodes, connections are edges, and execution status updates in real-time. ## The stack Three pieces made this work: - **React Flow** — Canvas library. Nodes, edges, panning, zooming, selection, and minimap — all handled out of the box. - **Dagre** — Auto-layout engine. Given a directed graph, it computes x/y positions so nothing overlaps. - **Supabase Realtime** — Live execution state. The task runner pushes status updates, and the canvas highlights the active node instantly. ## Layout system: TB and LR One design decision that took a few iterations: directional layouts. Pipeline workflows naturally flow in one direction. Some people think top-to-bottom (like a flowchart), others think left-to-right (like a timeline). We support both. ```typescript const getLayoutedElements = (nodes, edges, direction = 'TB') => { const dagreGraph = new dagre.graphlib.Graph(); dagreGraph.setGraph({ rankdir: direction, nodesep: 80, ranksep: 100 }); dagreGraph.setDefaultEdgeLabel(() => ({})); nodes.forEach((node) => dagreGraph.setNode(node.id, { width: 220, height: 80 }) ); edges.forEach((edge) => dagreGraph.setEdge(edge.source, edge.target) ); dagre.layout(dagreGraph); // ... map positions back to React Flow nodes }; ``` The tricky part was **edge handles**. React Flow connects edges to specific handles (connection points) on each node — top, bottom, left, right. When you toggle from TB to LR, every edge needs its `sourceHandle` and `targetHandle` swapped: ```typescript function getHandleIds(direction: string) { return direction === 'LR' ? { sourceHandle: 'right', targetHandle: 'left' } : { sourceHandle: 'bottom', targetHandle: 'top' }; } ``` Without this, edges default to the first available handle and you get connections going the wrong direction. Obvious in hindsight — took a few rounds of debugging to catch. ## Inserting agents between steps This was the feature that turned the canvas from a visualisation into a real tool. Right-click any edge → **Insert Agent Here** → pick an agent → done. The new agent splits the edge into two, and dagre re-layouts everything automatically. Under the hood: 1. Remove the original edge (A → C) 2. Insert the new node (B) 3. Create two new edges (A → B, B → C) 4. Re-run dagre layout 5. Animate the transition with `fitView()` Simple in concept, satisfying in practice. ## Real-time execution When a pipeline runs, the canvas comes alive: - The active agent node gets a pulsing highlight - The camera auto-follows the executing node - A side panel streams the live transcript via SSE - Completed steps show a success indicator This is powered by Supabase Realtime subscriptions on the `team_runs` table. When the task runner updates a step's status, the canvas reflects it within milliseconds. ## Persisting layout preferences Small detail that matters: layout direction is saved per-team in the JSONB config column alongside the graph structure. When a user opens a team they set to LR last week, it opens in LR — no reconfiguration needed. One gotcha: we use `useRef` for shared layout state to avoid stale closures in React Flow callbacks. We hit that bug twice before learning the lesson — anything that edges or layout callbacks depend on should live in a ref, not plain state. ## What I'd do differently 1. **Ship the canvas earlier.** The dropdown config was a stepping stone, but users immediately understood the canvas better. Visual-first should have been the approach from day one. 2. **Use refs for callback-dependent state from the start.** React Flow callbacks capture closure values at creation time. If you're using layout callbacks with dagre, reach for `useRef` before `useState`. ## Try it The visual canvas is live and fully open-source: - ⭐ [GitHub](https://github.com/CrewForm/crewform) — star the repo - 🌐 [Live Demo](https://crewform.tech) — try it now - 📖 [Docs](https://docs.crewform.tech) - 💬 [Discord](https://discord.gg/TAFasJCTWs) If you've built anything with React Flow + dagre, I'd love to compare notes. And if you have ideas for the canvas — multi-select, copy-paste node groups, conditional branching — drop a comment or open an issue.

Alternatives to CrewForm

Browse category →

Reviewed matches are labeled. Other suggestions come from a shared subcategory, use case, source listing or the same category. Compare features and current plans before choosing.

Product

AgentX 2.0

Create your custom cross-platform multi-agent AI team

Krome AI Agent

Build, connect, and deploy AI agents effortlessly

Skills Lookup

Discover and install open-source AI agent skills

Pulze

Build AI agents and workflows, no coding needed

MemMachine

Build Agents that Learn, With Memory that Lasts.

Celesto AI

Fastest way to deploy AI Agents with secure integrations

Starships.ai

Hire AI agents to scale your business

Fleece AI

Autonomous AI agents for no-code workflow automation

Browse category →

Selected by category and available use-case details. A topic match does not establish equivalent features.

Product

souls.zip

Production-tested AI agent souls and teams

GoNeuron

Build, publish, & earn from AI agents, starting in minutes!

LiveContext

Build AI agents and automate workflows without code

RunAgent

Secured, reliable AI agent deployment & integration at scale

DXT - Find Awesome MCP Servers

DXT is leading AI Agent platform. Browse 15,000+ MCP servers

ClawTrace

Sub-ms agent orchestration and telemetry

Recently added in Agent builders & orchestration

Browse category →

Added to this directory in the past 30 days. Dates refer to the directory listing, not the product launch.

Product

SkipCalls

AI-Powered Voicemail and Call Assistant

Shinkai: Local AI Agents

Build AI agents in seconds—private, powerful, and open-source.

XSAF

Extra Small Agent Framework

QX Labs

build agents, flows and grids that work across your tools

Explore expertise in AI & Automation

See all →

Profiles grouped by topic. This does not confirm an offer, availability or a connection to this profile.

Profile

Alexander Kireyev

AI/LLM automation, chatbots & web products · Founder of Timeline Studio · Available for projects

MAKE MONEY WITH AI

Welcome to Make Money With Ai your guide to finding real AI jobs, remote work, online side hustles, and digital income opportunities.

Prompt Engineer 48

🧠 The AI revolution isn't waiting.

Media about AI & Automation

See all →

Shows and channels grouped by topic. A recommendation does not mean this profile was featured or endorsed.

Show

Exploring Language Models

Newsletter · Maarten Grootendorst

The Art of the Realizable

Newsletter · Maxim Raginsky

Molecular Modeling Club

Newsletter · Chaitanya K. Joshi

Founder stories from AI & Automation startups

See all →

Retold founder accounts from startups in the same category, each linked to the original.

Story

Wade Foster charged $100 after building the integration a forum asked for

Wade Foster says Zapier's first paying customer was Mixergy's Andrew Warner, billed $100 into an unfinished beta after Wade found a stale PayPal-to-Highrise plea and then shipped Wufoo-to-AWeber instead, taking the money

Chatbase's college founder published a $64,000 MRR ladder, not a yearly run-rate

Yasser Elsaid told Indie Hackers that Chatbase, started as ChatGPT for PDFs, reached $64,000 monthly recurring revenue by 13 May 2023 after a viral tweet, with most cash on a $399 plan.

FounderPal sold strategies as one-time payments, not subscriptions

Sveta Bay says Marketing Strategy Generator brought around $10,000 a month in one-time payments after a second MVP earned $60,000 in six months. Dan Kulkov later said that paid product made around $100,000 in ten months.

Prompt Genie shipped on a Friday and called 30 days five figures, not MRR

Kushank Aggarwal says a Carrd-and-PickAxe ChatGPT prompt generator went from idea to first paid user in four days and to five-figure revenue in 30 days via organic TikTok and Instagram, then slowed with wrapper-like chur

Browse AI & Automation categories

See all →

Subcategories in the same part of the directory, with the number of listed products.

Category

AI assistants & chatbots

3,823 listed products

Machine learning platforms

542 listed products

AI models & APIs

493 listed products

Workflow automation & integrations

394 listed products

LLMOps & evaluation

194 listed products