DEV Community

GoodWork Labs
GoodWork Labs

Posted on

Why We Rebuilt Our Internal Tool from Scratch And What I Learned

At my previous company, we spent three years trying to make Salesforce, Zapier, and a handful of SaaS tools work together as a unified CRM plus operations platform. We had 14 active integrations, two dedicated engineers on "glue work," and a Slack channel called #zapier-is-on-fire.
Eventually, we stopped patching the gaps and built our own internal tool. That experience changed how I think about the build vs buy decision entirely.
This isn't a "custom software is always better" argument. It's an honest breakdown of where off the shelf apps genuinely fail technically and what you're actually signing up for when you choose either path.

The Hidden Cost of "Good Enough"
Off the shelf apps are often marketed on time to value. You can be up and running in a day. That's real. But what vendors don't talk about is the compounding cost of workaround code.
Every integration point between two SaaS tools is a potential failure surface. Webhooks go missing. API rate limits get hit at the worst times. Schema changes on one platform silently break pipelines in another. According to MuleSoft's 2023 Connectivity Benchmark Report, organizations manage an average of 900+ applications, but fewer than 30% are integrated. That fragmentation has a real engineering cost it just doesn't show up on the vendor's pricing page.

Where Off-the-Shelf Apps Break Down Technically
1. The integration layer becomes your responsibility anyway
Most platforms offer APIs, but "has an API" and "integrates well" are very different things. You'll often find:

  • Inconsistent data models: One tool stores customer IDs as integers, another as UUIDs, a third as compound strings like acct_US_00123. Your ETL layer has to handle all of them.
  • Eventual consistency problems: If you're syncing data between a CRM, a billing tool, and a support platform, you'll hit race conditions. A customer updates their email in one place — how long before all three systems agree?
  • Webhook reliability: Most SaaS webhooks have no guaranteed delivery. You need to build your own reconciliation jobs to catch missed events which means you're already writing custom infrastructure.

With a custom app, you own the data model from day one. There's no translation layer. A field is a field.
2. Scalability is governed by the vendor's architecture, not yours
Off-the-shelf tools are built for the median use case. When your usage pattern is anything but median, you'll hit artificial ceilings:

  • API rate limits that don't scale linearly with your tier (common in tools like HubSpot, Zendesk, and Airtable)
  • Batch job limits that force nightly syncs instead of real-time processing
  • Storage caps that turn into surprise upgrade conversations

Custom apps let you make deliberate scaling decisions. You choose between horizontal scaling and vertical scaling based on your actual read/write patterns. You decide when to introduce caching, CDNs, or queue-based architectures and you're not dependent on a vendor roadmap to get there.
3. Security posture is largely out of your hands
Multi tenant SaaS tools are lucrative targets precisely because a single breach can expose data from thousands of customers. As an individual customer, you have no visibility into their internal security practices beyond what's in their SOC 2 report.
More concretely:

  • You can't enforce custom** field-level encryption** if the vendor doesn't support it.
  • You often can't restrict data residency (important for GDPR, HIPAA, and other compliance frameworks) unless you're on an enterprise plan.
  • Audit logs in many tools are shallow they tell you that something changed, not always how or from what context.

For industries like fintech, healthtech, and legal tech, these aren't nice-to-haves. They're requirements. Custom apps let you build compliance in from the start role-based access, full audit trails, field-level encryption, and proper data residency controls.

The Real Decision Framework
Before choosing between custom and off-the-shelf, I'd suggest running through these questions:
1. Is your workflow genuinely standard?
If you're doing straightforward sales CRM, HR onboarding, or basic project management — off-the-shelf tools are probably fine. The workflow is standard because most businesses do it the same way.
2. How many integration points do you need?
Under 3–4 integrations, SaaS tools usually compose reasonably well. Beyond that, you're entering "glue code" territory. At some point, the glue is your product, and you should own it.
3. What's your data sensitivity?
If you're handling PII, financial data, or health records, vendor risk assessment becomes a real engineering and legal concern. Custom apps give you direct control over where data lives and who can touch it.
4. Is your use case on the vendor's roadmap?
This one bites hard. If the feature you need is "coming in Q3," you're now dependent on someone else's sprint cycle. Custom development means you ship what you need, when you need it.

What Custom Development Actually Looks Like
People often imagine "custom app" means a massive multi-year project. It doesn't have to be.
A practical starting point is a strangler fig pattern: keep the off-the-shelf tool running, but start building custom modules around the edges where it fails you. Gradually migrate. You avoid a big-bang rewrite while incrementally reclaiming control.
A typical early investment might look like:

  • A custom API gateway that normalizes data between your existing tools
  • A lightweight internal dashboard built on something like Next.js + Postgres that replaces one heavily-customized SaaS view
  • A background job system (e.g., BullMQ, Temporal, or Sidekiq) that handles the reconciliation logic you'd otherwise leave to flaky webhooks

None of this requires throwing away your existing stack on day one.

The ROI Framing I Actually Believe
Custom apps cost more upfront. That's true. But the ROI conversation changes when you factor in:

- Engineering hours spent on workaround code (often invisible in budgets because it's just "eng time")
- Vendor price increases as you scale (SaaS pricing is often seat-based or usage-based, and it compounds)
- Lost velocity when you can't ship features because they depend on a vendor's API constraints
The companies I've seen get the most value from custom development weren't trying to avoid SaaS tools entirely. They were strategic about where they needed control and built custom exactly there.

Practical Takeaways

  • Don't rewrite everything. Identify the one or two workflows where the off-the-shelf tool creates the most friction and start there.
  • Model the full integration cost before you sign a contract. Count the engineering hours required to maintain every API connection.
  • If compliance is in scope, involve your security and legal teams in the build-vs-buy decision early don't let it become a retrofit.
  • The strangler fig pattern is your friend for migrations. Incremental is almost always better than big bang.

Top comments (0)