Open-core workflow engine for building AI-powered automations in TypeScript that run natively inside Slack — no context switching required.
Bubble Lab is an open-core workflow engine that lets development and operations teams build, run, and self-host AI-powered automation workflows using TypeScript. The engine is built around the concept of ‘Bubbles’ — modular, type-safe integration nodes that encapsulate API calls, AI processing, database queries, and data transformations. Workflows are expressed as clean TypeScript classes extending the BubbleFlow base, giving developers full IDE support, error handling, and production-ready observability out of the box.
The platform ships as a monorepo with distinct layers: a core bubble library (over 60 service and tool integrations), a runtime engine that parses and executes BubbleScript, a local development studio (Bubble Studio) running on localhost:3000, and a Hono-based API server. At runtime, the BubbleRunner parses workflow scripts, resolves dependencies through a BubbleFactory, and executes steps sequentially with per-step logging of token usage, duration, and memory.
Bubble Lab’s hosted platform adds Pearl, a Slack-native AI operator that interprets natural language prompts to trigger and orchestrate these workflows inside Slack. The open-core repository is the execution layer that powers Pearl — but it can also be deployed independently, embedded in other products, or extended with custom Bubbles. This dual-track model means developers get complete control over workflow logic while the managed cloud handles Slack integration, multi-user collaboration, and execution history.
BubbleFlow, chain integration nodes with .action(), and get full type inference, IDE auto-complete, and Zod-validated parameter schemas across every step.AIAgentBubble integrates Google Gemini, OpenAI, and Anthropic via LangChain’s LangGraph, with streaming support, tool-call hooks (before/after), conversation history, and capability post-processing built in.http://localhost:3000 featuring a Monaco Editor, real-time execution feedback, step-by-step execution tracing, and a visual workflow editor backed by TanStack Router and React Query.create-bubblelab-app) - One command to scaffold a new project with pre-configured TypeScript, dependency setup, and working template flows (reddit-scraper, email summarizer, basic agent) ready to customize and run immediately.BubbleRunner, BubbleScript, BubbleInjector) that dynamically loads workflow files, resolves bubble dependencies, validates parameters against Zod schemas, and handles credential injection at runtime.Architecture
Bubble Lab is organized as a Turborepo-managed monorepo with strict package boundaries between the core bubble library, the runtime engine, shared schemas, and application layers. The central design pattern is a plugin-based bubble system: every integration implements a common IBubble interface with Zod-validated schemas, and the BaseBubble abstract class provides lifecycle management, parameter validation, credential resolution, and structured result handling. The BubbleRunner runtime parses BubbleScript files through BubbleScript and BubbleInjector components, resolves bubble classes through BubbleFactory, and executes plans as sequential steps with full variable state management. Shared schemas defined in @bubblelab/shared-schemas are the contract between API, UI, and runtime layers, ensuring that data structures validated at the API boundary are the same types consumed by the execution engine — a design that eliminates an entire class of runtime type mismatches.
Tech Stack The monorepo is managed with pnpm and Turbo, with explicit build dependency ordering ensuring that shared-schemas, bubble-core, and bubble-runtime are always built before application layers. The Bubble Studio frontend runs Next.js with React 19, TanStack Router for client-side routing, React Query for server state, and Monaco Editor for in-browser workflow authoring. The API server uses Hono with automatic OpenAPI generation via Zod-to-OpenAPI. The AI Agent Bubble uses LangChain’s LangGraph for multi-turn conversation and tool-calling support, integrating Google Gemini, OpenAI GPT, and Anthropic Claude as interchangeable model backends. Local and self-hosted deployments use SQLite for workflow state; production deployments are containerized via Docker Compose with Railway for cloud hosting. TypeScript 5.8.3 is enforced across all packages with strict settings.
Code Quality
The codebase demonstrates strong engineering discipline through comprehensive testing spanning unit tests, integration tests, and schema validation layers. Tests are co-located with source files and use Vitest as the runner, with dedicated fixtures and helper utilities like expectValidScript that validate the BubbleScript parser’s output after execution — a particularly demanding integration test pattern. Error handling is structured through a typed exception hierarchy (BubbleError, BubbleValidationError, BubbleExecutionError) rather than untyped throws, and all API boundaries use Zod schemas for runtime validation. The codebase enforces a consistent discriminated union pattern for bubbles with multiple operations, and ESLint with TypeScript-ESLint strict rules plus Husky pre-commit hooks enforce formatting and lint standards at commit time.
What Makes It Unique The most distinctive technical choice is the BubbleScript execution model: workflows are authored as TypeScript source files that the runtime dynamically parses, analyzes for bubble dependencies, injects credential and context bindings into, and executes — combining the developer experience of writing plain TypeScript with the runtime flexibility of a script interpreter. The capabilities system adds a second layer of extensibility, allowing cross-cutting behaviors (like memory, context window management, or custom post-processing) to be registered as capability providers and applied to any AIAgentBubble without modifying the bubble itself. The dual-path architecture — open-core engine runnable independently plus hosted Pearl platform — is deliberately designed so the engine is not a simplified demo but the actual production code Bubble Lab runs internally, making the self-hosted version a genuine peer to the managed offering rather than a stripped-down variant.
Bubble Lab is licensed under the Apache License 2.0, which is permissive and business-friendly. You can use it commercially, modify the source, distribute it, and embed it in proprietary products without triggering copyleft obligations. The license requires attribution — you must preserve the copyright notice and license text — but imposes no restrictions on how you build on top of the engine. The Bubble Lab platform, Pearl, and the hosted cloud infrastructure are separate proprietary products not included in this repository, so teams self-hosting get the open-core execution engine only.
Running Bubble Lab yourself requires Node.js 20+, pnpm, and either Bun or a compatible runtime for the API server. The standard setup is a Docker Compose deployment with separate containers for the Bubble Studio frontend, the Hono API server, and a SQLite database for workflow state. For production workloads you are responsible for database backups, container uptime, scaling the API under load, and maintaining SSL termination via the bundled nginx configuration. The CI pipeline uses GitHub Actions and the monorepo Turbo build graph, which you would need to adapt for your own infrastructure. AI features require external API keys (Google Gemini by default, with OpenAI and Anthropic as alternatives) that you provision and manage yourself.
Compared to the managed Bubble Lab platform, self-hosters give up access to Pearl — the Slack-native AI operator — as well as the managed integrations marketplace, team collaboration features, execution history dashboards, and hosted observability. The commercial platform also handles Slack OAuth and bot configuration, which require non-trivial setup if you want to replicate that integration yourself. There is no paid self-hosted tier that unlocks additional features; the open-core repository is the complete execution engine, and teams needing Pearl’s Slack-native experience or managed infrastructure should evaluate the hosted platform at app.bubblelab.ai.
Automation · Productivity · AI Assistants
Build, deploy, and run autonomous AI agents that automate complex multi-step workflows using a visual block-based graph editor.
No Code Platforms · AI Development · Developer Tools
Visual LLM workflow platform with RAG pipelines, agent capabilities, and model management for building production AI applications.
AI Code Assistants · AI Development
Orchestrate an army of AI coding agents—Claude Code, Codex, Gemini CLI, and more—running simultaneously in isolated git worktrees from a single Electron desktop app.