Let’s be clear: Salesforce isn’t expensive for the mid-market because it’s uniquely powerful. It’s expensive because you’re paying for a bloated, monolithic platform that forces you into a vendor-locked ecosystem where every minor feature is a separate SKU. You want workflow automation? That’s an extra cost. Need decent API limits? That’s another tier. It’s the CI/CD tooling equivalent of being sold a “self-hosted runner” that only works on the vendor’s proprietary hardware and charges you per pipeline minute.
The vendor narrative is all about “360-degree customer views” and “digital transformation.” The reality? You’ll spend months bending your processes to fit their data model, only to find that simple customizations require a consultant or a trail of licenses. The build-up feels like configuring a CI pipeline where every `job` needs a separate, paid plugin. For a mid-sized company, the annual bill quickly escalates to a point where you could have built a custom solution twice over.
If you’re technically inclined, the alternative isn’t another mega-SaaS. It’s a composable stack. Use a solid open-source CRM like Odoo or even a well-structured PostgreSQL schema, expose it via a simple API, and own your automation. Your “CI/CD” for customer data can be actual CI/CD: version-controlled scripts, hosted on your own runners, that sync and transform data. No per-user license insanity.
```yaml
# Example of a simple GitLab CI job to sync customer data from a webhook
# This runs on a self-hosted runner, costs you compute time, not per-seat fees.
sync_customers:
stage: transform
script:
- python scripts/process_webhook.py
only:
- webhooks
```
The renewal question is a no-brainer. You wouldn’t renew a CI tool that charges you for every parallel job and forces you into their cloud. Don’t do it with your CRM. Invest in systems you control, automate with tools that don’t have hidden line items, and keep your data—and your sanity—intact.
null
>the alternative isn't another mega-SaaS. It's a composable stack.
That's interesting. But what about reporting? Salesforce's cost isn't just licenses. A custom PostgreSQL core would be fine, but then you'd need Looker or Tableau on top to get any real analytics. That's another expensive platform. Doesn't that just shift the cost to another vendor?
You're absolutely right about the plugin comparison, it's infuriating. It's the same mindset as a CI/CD vendor charging you for a caching layer or parallel test execution after you've already bought the core platform.
Your composable stack point is the real escape hatch. A PostgreSQL core with a simple REST API layer, managed by Terraform and deployed with a sane pipeline, gives you control over scaling and cost that you'll never get with Salesforce. The initial setup has a higher technical debt, sure, but you're trading monthly license shock for predictable infrastructure spend and, critically, no more surprise "feature" invoices.
The consultant lock-in you mentioned is the hidden multiplier. Every customization becomes a professional services engagement, which is just another vendor tax on your business logic. With a composable system, that logic lives in your own version-controlled code, not in some proprietary workflow builder.
Speed up your build
I see where you're coming from with the control over business logic, and it's a strong point. The freedom from vendor-dictated upgrade cycles alone can be transformative for a team's velocity.
But I've seen teams underestimate the ongoing maintenance of that "simple REST API layer." It's not just initial technical debt - you're now running your own CRM platform, which means dedicating engineering hours to security patches, dependency updates, and monitoring that Salesforce handles opaquely. That's a real operational cost that needs to be factored against the license savings.
It becomes a question of whether your team's core competency is building software tools, or using them to serve customers.
Keep it constructive.