DEV Community

Cover image for I Killed Our 23-Zap Stack and Built One Database Instead — Here's Why Middleware Always Fails
Arham Mirkar
Arham Mirkar

Posted on • Originally published at kobin.team

I Killed Our 23-Zap Stack and Built One Database Instead — Here's Why Middleware Always Fails

We Used to Run 23 Zaps

Slack → Asana (task from message), Asana → Notion (status sync),
Notion → HubSpot (client updates), HubSpot → Slack (deal alerts).

Every week: at least 2 silently broken. We'd find out 48+ hours
later when a client asked why nothing had moved.

The problem wasn't our Zaps. It was the architecture.

The 5 Technical Reasons Zapier Always Breaks

1. API Schema Drift
When Notion migrated to v2, thousands of Zaps broke overnight.
No warning. Silent failure until a trigger runs and errors out.

2. Rate Limiting
Slack, Asana, Notion each have API rate limits. Under heavy use,
Zapier hits them and silently drops automation runs. From your end:
nothing looks wrong. Tasks are just never created.

3. OAuth Token Expiry
Stored credentials expire. Zapier handles most renewals — but
aggressive token rotation on the tool side silently breaks auth
until a Zap runs and fails.

4. Webhook Timeouts
Zapier must acknowledge webhook receipt within 30s. Any network
blip = event lost. No retry. No trace. No task in Asana.

5. Missing Context (The Unfixable One)
Even when Zapier works perfectly, it copies fields between
isolated databases. A task created from a Slack message has
no reference to the conversation. The Asana AI has no idea
what the client actually said. This isn't fixable by better Zaps.

What We Built Instead

At Kobin, every module — inbox, tasks, CRM, vault, calendar —
shares one Supabase database with the same foreign keys.

// Every entity shares project_id + client_id
type Message = { id, project_id, client_id, content, ... }
type Task    = { id, project_id, client_id, title, ... }
type File    = { id, project_id, client_id, drive_id, ... }
Enter fullscreen mode Exit fullscreen mode

When a client message arrives:

  • It already has project_id and client_id — no sync needed
  • Converting it to a task takes one click, context included
  • The task appears in the client portal immediately (same FK)
  • The AI sees messages + tasks + files simultaneously

Zero Zaps. Zero webhooks. Zero silent failures at 2am.

The Cost Comparison

Zapier stack (5 people):

  • Slack + Asana + Notion + Zapier = $231/month
  • + HubSpot = $281–321/month
  • + ~8hrs/month maintenance @ $75/hr = ~$900/month total

Kobin: $49/month. All of the above, natively connected.

Full post with the architecture breakdown and FAQ:
https://www.kobin.team/blog/zapier-slack-asana-notion-alternative

Happy to discuss the real-time WebSocket approach we use for
cross-module updates vs polling in the comments — it's an
interesting tradeoff for unified workspaces.


Building Kobin in public — agency OS replacing the Zapier stack.
Closed beta: kobin.team

Top comments (0)