Employment record / chapter file
Baseloop
- 70%cheaper to run
- 200 → 3,000+concurrent runs
- 0downtime taken
Baseloop (baseloop.io) lets go-to-market teams build data-enrichment workflows in plain language: describe what should happen to your accounts and leads, and an agent assembles the workflow, enriches records from 40+ data sources, and syncs the results back to HubSpot, Salesforce, Attio, or Pipedrive. Where Clay makes you wire every column by hand, Baseloop builds the table from one prompt. I joined seven months into my CTO role at Veedoo, working alongside the CEO and lead developer Kevin.
- CedarJS
- GraphQL
- Trigger.dev
- Self-hosted Supabase
- Coolify
- Hetzner
Migration ledger — the SaaS stack against the self-hosted one
Migrated against live production — real users, real data, no downtime taken
The migration that paid for itself
The SaaS stack was costing $700–800+ a month and throttling the product: Supabase's 2XL tier at roughly $410, Trigger.dev Pro capped at 200 concurrent runs when the workload needed 1,000 — with another $160 in concurrency bundles, per-second compute charges, and invocation fees on top.
I led the move to self-hosted infrastructure on Coolify and Hetzner: Supabase on a dedicated CCX43, the Trigger.dev webapp on a CPX52, and four CPX42 workers — €205 a month, roughly 70% cheaper, now clearing 3,000+ concurrent runs with no artificial ceiling.
Live, with real users on board
The migration ran against production — real users, real data, no downtime budget. That meant reading Trigger.dev's Go and TypeScript source when the docs ran out, and catching the failure modes nobody writes about: Postgres sequence resets, auth sessions that must survive the move, storage file permissions that don't.
Published so nobody suffers twice
Three open-source artifacts came out of that work: coolify-trigger-v4 (Docker Compose for distributed Trigger.dev v4 on Coolify, from single-server to multi-worker tiers), supabase-sync (an npm CLI that migrates schema, data, auth users with password hashes intact, storage, roles, and sequences — no forced credential resets), and latest-supabase-coolify-template (auto-generated JWTs and production Postgres tuning for 200–500 concurrent users and 10GB+ databases).
Product engineering
Alongside infrastructure I build the product itself in CedarJS — a TypeScript framework with Laravel-like conventions: GraphQL APIs, auth, jobs, and migrations, batteries included.
Who was there.
Kevin Goncear Co-founder, Baseloop Taoufiq has shown exceptional development skills, standing out as an early adopter of AI-era tools.