Inspiration
Most workflow automation tools — Zapier, Make, n8n — treat every step as an isolated box: trigger fires, API call happens, data moves on. That model works fine for simple integrations, but it falls apart the moment you want reasoning baked into a workflow instead of just plumbing.
We wanted to see what happens if you replace the "isolated API step" model with a shared workspace where AI agents actually collaborate — reading each other's outputs, building on each other's reasoning, and passing context downstream the way a team of humans would in a group chat. That's the core idea behind Kryptonite: a visual, drag-and-drop canvas where nodes aren't just functions, they're autonomous agents with a live transcript.
What it does
Kryptonite is an open-source workflow automation platform built around three ideas:
- Visual canvas. Built on React Flow, you drag out triggers (cron, webhook, Stripe, Google Forms), AI agent nodes, and action nodes, and wire them into multi-branch graphs.
- Multi-agent collaboration via Band.ai. Every workflow run that touches an AI node spins up a live Band room. Agents post their prompts, intermediate thoughts, and outputs into a shared transcript, and downstream nodes pull context forward using Handlebars templating (e.g.
{{openaiAgent.text}}). It's less "function chaining" and more "agents talking to each other in a room." - Model flexibility for free. AI nodes run through OpenRouter, so a workflow can mix Llama 3.3, DeepSeek R1, and Gemma 3 with automatic fallback chains — all on free-tier models, so anyone can run the whole thing without paying for API access.
On top of that: 30+ native nodes across triggers, AI/agent execution, messaging (Slack, Discord, Telegram, WhatsApp, Twitter/X, Instagram, LinkedIn, Notion), notifications (Resend, Twilio), and data utilities (summarization, classification, text splitting + vector store for RAG).
How we built it
- Frontend: Next.js 15 + React Flow for the canvas, Tailwind CSS v4 for styling.
- Backend: Node execution happens server-side via
/api/workflows/[id]/nodes/[nodeId]/execute-step, so credentials and API keys never touch the client. - Execution engine: A topological-sort based runner (
src/lib/run-workflow.ts) analyzes the graph, groups independent nodes into parallel execution levels, and resolves Handlebars expressions against upstream outputs before running each step. - Timeout mitigation: Vercel serverless functions cap out at 10s (Hobby) / 300s (Pro), which is a hard wall for long multi-agent reasoning chains. We built a standalone VPS worker (
worker/server.ts) that the Vercel route can delegate to whenWORKER_URLis configured, so long-running workflows aren't capped by serverless limits. - Auth & data: Better Auth handles JWT session cookies and credential encryption; Neon serverless Postgres (via Prisma) stores workflow graphs, run history, and node state.
- Scheduling: Cron-based triggers use
cron-parsercombined with Inngest for reliable recurring execution.
Challenges we ran into
- Serverless timeouts vs. multi-agent reasoning loops. A workflow with several chained agents easily blows past Vercel's function limits. Splitting execution across a "fast path" (self-call) and a "slow path" (VPS worker) — decided per-workflow based on whether
WORKER_URLis set — took several iterations to get right without duplicating state. - Context passing between agents. Getting Handlebars-style templating to reliably resolve nested/partial outputs from upstream nodes (especially across parallel execution levels) required rethinking how the merged state payload was structured.
- Free-tier model reliability. Free OpenRouter models occasionally rate-limit or go cold; building automatic fallback chains so a workflow doesn't just die mid-run was necessary to keep the whole thing usable without a paid API key.
- Security boundaries. Making sure node execution — especially arbitrary HTTP Request nodes — stays server-side and rate-limited so the visual builder can't be turned into an SSRF vector.
What we learned
- Treating AI agents as participants in a shared, persistent transcript (rather than stateless function calls) makes multi-step reasoning workflows dramatically easier to debug and reason about.
- Topological execution planning is the right abstraction for "some nodes can run in parallel, some can't" — much cleaner than manually sequencing everything.
- Serverless platforms are great until your workflow needs to think for more than a few seconds; having an escape hatch (the VPS worker) instead of forcing everything into short-lived functions matters a lot for real agentic workloads.
What's next for Kryptonite
- More native integrations (calendar, CRM, and payment nodes)
- A visual debugger that replays a workflow run node-by-node against its Band room transcript
- Shared/marketplace workflow templates so people can fork and remix each other's agent graphs
Built With
- better-auth
- cron-parser
- discord-api
- handlebars.js
- inngest
- jwt
- neon
- nextjs
- node.js
- openrouter
- postgresql
- prisma
- react
- react-flow
- resend
- slack-api
- stripe
- tailwindcss
- telegram-api
- twilio
- typescript
- vercel
Log in or sign up for Devpost to join the conversation.