Build sophisticated chatbots visually, embed them anywhere without iframes, and own your data — fully self-hostable with a modular block system and 30+ integrations.
Typebot is a Fair Source chatbot builder that lets teams create advanced conversational interfaces through a drag-and-drop visual editor — no coding required for the core flow, with optional JavaScript scripting for power users. It goes far beyond simple Q&A bots, supporting branching logic, payment collection via Stripe, file uploads, A/B testing, and real-time analytics with drop-off tracking.
The platform ships as two separate Next.js applications — a builder for creating bots and a viewer for serving them — both deployable via Docker with a single compose file. Bots can be embedded anywhere as containers, popups, or chat bubbles using a lightweight JavaScript library that adds zero iframe overhead and negligible performance impact.
Typebot integrates natively with OpenAI, Anthropic, Google Sheets, Zapier, Make.com, Chatwoot, Stripe, Google Analytics, and Meta Pixel, plus a growing forge ecosystem that adds Groq, Mistral, Deepseek, ElevenLabs, Cal.com, NocoDB, and Zendesk blocks. Developers can also trigger bots programmatically via a documented REST API, making Typebot a viable backend for custom chat experiences.
The project is actively maintained by its solo founder with monthly releases (v3.17.2 at time of writing), a Discord community, and comprehensive documentation. Its Functional Source License grants full self-hosting rights with commercial use permitted for internal tools, converting to Apache 2.0 two years after each release.
Architecture
Typebot is structured as a Nx-managed monorepo containing two Next.js applications (builder and viewer) and roughly 35 independent packages organized by domain — blocks, bot-engine, forge, chat-api, chat-session, conditions, variables, results, and more. The bot-engine package is the core runtime: it processes a graph of typed block definitions, evaluates conditions and variables, executes integrations, and produces a stateless ContinueChatResponse that the viewer streams to the client. This strict separation between the editor data model, the runtime engine, and the serving layer means the viewer can be scaled independently of the builder, and the engine can be exercised in tests without a running HTTP server. The forge package adds an extensible integration registry: each third-party block (Anthropic, Groq, Cal.com, etc.) is defined as a typed BlockDefinition using a shared createBlock / createAction factory, registered in a central repository, and executed by the same engine path as built-in integrations.
Tech Stack Both applications are built with Next.js (App Router), styled with Tailwind CSS, and formatted with Biome. Bun is the package manager and script runner, with Node 24 as the runtime target. PostgreSQL handles persistent storage accessed through Prisma ORM with a schema-first approach; Redis provides session caching and pub/sub for real-time features; optional S3-compatible storage (MinIO or AWS S3) handles file uploads. The viewer API layer uses oRPC for type-safe server-to-client procedure definitions, replacing legacy REST handlers with a unified, end-to-end typed interface. The embed library is a separate Vite-built package that ships as a tiny vanilla JS bundle. Playwright covers end-to-end tests across the viewer app; Vitest handles unit and integration tests in the packages. Tolgee manages i18n strings in the builder, and Sentry captures runtime errors in both apps.
Code Quality
The codebase demonstrates comprehensive test coverage with Playwright end-to-end specs covering conditions, HTTP requests, file uploads, payments, analytics, redirects, and WhatsApp flows, plus Vitest unit tests for core packages like conditions, variables, and WhatsApp message conversion. Type safety is enforced throughout via Zod schemas — block options, chat API payloads, and session state are all parsed and validated at runtime boundaries. The @typebot.io/forge factory pattern enforces consistent block definitions at the type level, making it difficult to introduce a malformed integration block. Biome provides unified formatting and linting with a single config, and Husky runs affected checks on pre-commit. Error handling in the bot engine uses discriminated union responses rather than thrown exceptions, making error paths explicit and composable.
What Makes It Unique
Typebot’s most distinctive technical choice is treating the chatbot as a typed, stateless graph execution problem rather than a stateful conversation manager. Each continueBotFlow call receives the full session state, walks the graph forward, and returns a response — making the engine trivially testable and horizontally scalable. The forge block system lets third-party integrations be added as standalone packages with full TypeScript type safety in both the editor UI and the runtime executor, without touching core engine code. The zero-iframe embed library with its sub-kilobyte footprint and no external dependencies is a deliberate architectural choice that gives Typebot a meaningful edge over iframe-based competitors for performance-sensitive deployments.
Typebot is released under the Functional Source License (FSL-1.1-Apache-2.0). In plain terms, this grants you the right to use, copy, modify, and redistribute the software for any purpose that is not competing with Typebot’s own product or service offerings. Internal use — running it for your own team, clients, or applications — is explicitly permitted, including commercial contexts. Two years after each version is released, that version automatically relicenses to Apache 2.0, meaning older releases eventually become fully open source. The key restriction is that you cannot build and sell a competing chatbot SaaS platform on top of the code. For most self-hosters building internal tools or custom deployments, this license presents no practical constraints.
Running Typebot yourself requires operating two persistent Next.js applications (builder and viewer), a PostgreSQL database, and a Redis instance — the official Docker Compose file covers all four services. You are responsible for database backups, SSL termination (a reverse proxy like Caddy or nginx is expected in front of both apps), and keeping the Docker images updated with each monthly release. The apps are stateless compute-wise, so horizontal scaling the viewer for high-traffic bots is straightforward, but Redis and PostgreSQL become your availability bottlenecks. File upload support adds an S3-compatible bucket to the dependency list. Migration between versions is handled via Prisma schema migrations included in each release, though you must run them manually on upgrade.
The managed Typebot Cloud offering handles all of the above automatically — high availability, daily backups, zero-downtime deploys, and email support from the founder. The cloud tier also provides access to usage analytics across your workspace and priority issue response. Self-hosters get the same feature set as the cloud product but without managed uptime guarantees, automatic scaling, or dedicated support channels beyond the public Discord community.
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.
Developer Tools · Game Development · Design Tools
Free, MIT-licensed 2D and 3D game engine with one-click multi-platform export and no royalties.