Every product we've ever built needed the same five things. And every time, we ended up with five separate vendor accounts, five separate API keys, and five separate lines in the monthly expense report.
The fragmentation problem
Screenshots? Browserless or ScreenshotOne — $40/month for a reasonable call volume. File conversion? CloudConvert — $14/month just to convert a few DOCX files to PDF. Transactional email? SendGrid, Postmark, or Resend — another $20/month. Structured data extraction? Either you parse documents manually (fragile, slow, wrong) or you wire up Claude yourself and build the tool_use contract from scratch. EU VAT validation? You find a thin wrapper around the VIES SOAP API and hope it stays maintained.
Before you've written a line of product code, you've spent €100/month and three afternoons reading documentation.
Not just a cost problem
The fragmentation isn't only about money. It's cognitive load. Each service has its own:
- Authentication model (Bearer tokens, API keys, OAuth, webhooks with different signing secrets)
- Error format (some return JSON, some return XML, some return plain text with a 200 status)
- Rate limit strategy (per minute, per hour, per day — and the limits reset at different times)
- SDK quality (some have great TypeScript types, some are just a thin fetch wrapper, some have no SDK at all)
- Billing model (credits, per-call, per-minute of compute, monthly minimums)
The EU dimension
Building in Europe adds another layer. Most of these services are US-based, which creates data residency questions the moment you process any document containing personal data. The VAT validation problem is uniquely European — VIES and the Belgian CBE are EU-specific, and most existing wrappers are thin, unmaintained, or have rate limits that don't fit production workloads.
We wanted a platform where EU compliance was the default, not an afterthought. Everything in waypoints runs on EU infrastructure. The Verify module speaks directly to official EU/Belgian government APIs. Files never leave Europe.
What we built instead
One platform. Five modules. One API key (prefixed wp_live_). One credit balance. One dashboard. One line in the expense report.
Every module uses the same authentication model, the same error format, the same request ID structure for debugging, and the same credit system. Once you learn one module, you know them all.
We also dogfood our own stack — waypoints itself is built with the waypoints Render module for PDF generation and the waypoints Send module for transactional email. We hit the same rate limits, the same credit costs, and the same error codes as you do.
That's the only way to build an API platform you can trust.