A manifesto against execution fees, vendor lock-in, and software that exists to harvest your workflows into someone else's moat.
The automation market is a toll road. Zapier charges per task. Make charges per operation. n8n wants you on their cloud. Every platform counts your executions, gates features behind tiers, and stores your workflows on infrastructure you don't control.
Then came the AI gold rush. Suddenly every no-code tool bolted on a "magic AI" button — a thin wrapper around the OpenAI API that sends your business data to a third party, charges you a premium for the privilege, and calls it innovation.
This isn't automation. It's dependency.
Business communication fails when work disappears into inboxes. An account owner goes on PTO, support opens a ticket nobody outside the company can see, a thread grows to forty replies, and nobody knows the current state. That is not a people problem. It is an architecture problem.
lxzl treats email as an entry point, not the place where accountable work should live. A workspace invitation, account verification, password reset, quota warning, or security notice can use email because those are system moments. Primary collaboration belongs inside shared workspaces, attached to docs, boards, calendars, workflows, owners, status, and history.
When an organization says it works through lxzl, the promise is simple: the work will not vanish into a black hole. You come into the shared space once, then both sides can see what exists, who owns it, what is blocked, and what changed.
lxzl runs wherever you need it — self-hosted on your own server, deployed to a VPS, or hosted by us. One Bun process. One SQLite file. No sprawling cloud infrastructure, no container orchestrators, no message queues. Whether you run it locally or we run it for you, your data stays yours.
There are no execution limits. No per-task pricing. No "upgrade to Pro for webhook triggers." The architecture is the same whether it's on your laptop or serving your whole team.
Ollama runs as the default AI provider — Gemma 4, Llama 3.3, DeepSeek R1 with no API key and no cost. Self-hosted users keep prompts on their own hardware. Hosted users get the same models without managing GPU infrastructure.
When you choose to use Anthropic or OpenAI, that's your decision with your key. When you connect MCP servers, they run on your terms. The AI works for you, not for an ad platform's training pipeline.
This is the difference between a tool and a trap.
Every node opens a config panel. Dropdowns, field pickers, visual condition builders. You point and click. No expression syntax, no YAML, no JSON templates to hand-edit. If your upstream node outputs a customer_email field, you click it — it inserts.
Every node has a Script Override toggle. Flip it and write JavaScript that replaces the node's built-in behavior entirely. Full access to the data context. 5-second sandboxed execution. No ceiling on what you can do — and no lock-in to a visual paradigm that breaks at the edges.
lxzl is built with Svelte 5, SvelteKit, and Bun. The execution engine is a real DAG walker — Kahn's algorithm for topological sorting, parallel groups via Promise.all, delta-snapshot metadata that scales with what handlers actually write.
This is software engineering. Not a chatbot output with a logo on it.
You don't need a migration plan. You don't need an infrastructure team. Self-host it or sign up for the hosted version — either way you're running in minutes, not weeks.
bun install && bunx --bun vite dev or use the hosted platformProcess webhooks from Stripe. Pipe customer data through an LLM for classification. Send Slack alerts on anomalies. Sync inventory between two APIs on a schedule. One Bun process handles it all — whether that's on a $5/month VPS, your office server, or our infrastructure.
No Kubernetes. No Redis. No DevOps hire. No vendor invoice that scales with your success.
40+ node types. 200+ workflow templates. MCP plugin support for connecting external tool servers. The handler registry, schema system, and DAG engine are all designed to be extended — add a node type in a single file with defineNodeType().
The architecture is documented. The code is readable. The execution model is deterministic. You can trace exactly what happens when a workflow runs, because the engine is a pure function (nodes, edges) → FlowContext, not a black box hidden behind an API.
lxzl exists because automation should be infrastructure you control, not a subscription you're trapped in. Self-host it or let us host it — the architecture, the data model, and the escape hatches are the same either way.
Open the Dashboard →