
Meshes
Event routing and delivery for SaaS — no integration code.
I've been building SaaS products for close to two decades. Every single one eventually hit the same wall: customers expect integrations with HubSpot, Salesforce, Mailchimp, Intercom — and suddenly you're maintaining a separate code path for each one.
Every time, the answer was the same — hand-roll webhook handlers, bolt on retry logic, manage OAuth tokens per customer, debug silent failures at 3am, maintain it forever. Thousands of lines of code that aren't your product.
I finally got tired of rebuilding the same plumbing and built Meshes so I could reuse it myself.
Meshes is the outbound integration layer for SaaS. Your app emits one product event (contact.created, payment.failed, subscription.cancelled) and Meshes handles routing, retries, fan-out, and delivery to every downstream tool your customers use. You configure field mappings and routing rules in the dashboard or API — not baked into your app.
The part that matters most if you're building multi-tenant SaaS: every customer gets their own workspace with isolated connections, credentials, rules, and event history. You ship one integration layer. Each tenant gets their own routing config.
What's live today:
• 11+ integrations (HubSpot, Salesforce, Intercom, Mailchimp, ActiveCampaign, Resend, Slack, Zoom, AWeber, MailerLite, webhooks)
• Fan-out routing — one event, multiple destinations, one API call
• Automatic retries with exponential backoff and dead letter capture
• Field mapping to destination-specific fields including custom fields
• Per-workspace credential management (OAuth, API keys, token refresh)
• Event logs with full per-destination delivery visibility and replay
• Node.js SDK, Go SDK, and REST API
Free Developer tier is 100 events/month — enough to prove the flow before production.
Happy to answer questions about the product or the experience of building B2B infrastructure as an indie founder.
About
I kept hand-rolling the same webhook retry logic across every project. Eventually I just productized it cause I needed it for multiple projects at the same time.

Comment