
Custom software is not a choice between buying or building from scratch. The most effective approach is to extend a strong existing product, customizing only what is unique while leveraging proven functionality for everything else.
Custom Software Does Not Mean Starting From Scratch
Many software decisions are framed as a binary choice. Either you adopt off-the-shelf software that is quick to implement but rigid and externally owned, or you build a custom solution that fits perfectly but requires significant time, cost, and ongoing maintenance.
In practice, this is a false choice. A third option often delivers better results: start with a strong existing product, ideally open source, and extend it only where your processes are truly unique. This approach captures most of the value of custom software without rebuilding what already exists.
We applied this approach to our own CRM. Here is what we learned.
Why Buying Is Not Enough
Buying software is the right default in most cases. Standard CRM systems cover the majority of common needs effectively, especially for typical sales workflows. Rebuilding these features rarely justifies the cost.
However, problems arise when your processes include specific requirements that standard tools cannot support well. At that point, you either adapt your workflow to fit the tool or pay more for higher-tier plans that still fall short. This often leads to manual workarounds layered on top of a system you are already paying for.
Why Building From Scratch Falls Short
Building a system from scratch seems appealing when existing tools do not fit. In reality, much of what makes a CRM functional is not unique. Features like contact management, activity tracking, permissions, integrations, and user interfaces are essential but not differentiating.
Developing these foundations consumes significant time and budget before any unique value is created. Many custom builds spend most of their resources replicating standard functionality rather than focusing on what makes the business different.
A Practical Approach
Instead of starting from zero, we used Twenty, an open-source CRM. It provided all core functionality out of the box, including contacts, companies, opportunities, activity tracking, and integrations, within a modern interface. Being open source and self-hosted ensured full control over data and avoided vendor lock-in.
We then extended the system with features specific to our operations. These included project and issue tracking, time tracking with timers linked to clients, workforce management, and additional small extensions.
All custom logic was added on top of the existing system without modifying its core. This allowed us to benefit from a mature foundation while tailoring the system to our needs.
The Result
This hybrid approach combines the strengths of both models:
-
Immediate access to a mature product with proven functionality.
-
Customization where it creates real value.
-
Full ownership of data without restrictive pricing models.
-
Flexibility to evolve without breaking upgrade paths.
The Takeaway
Custom software does not require starting from scratch. The most effective approach is often to build on top of a solid foundation and focus only on what differentiates your business.
The key questions are straightforward. Which parts of your process are truly unique? Where do existing tools force inefficient workarounds? And does your current stack allow extension or enforce limitations?
Answering these questions shifts the conversation from choosing between build or buy to combining both intelligently.
Bring Your Challenge and We Will Make It Work
One conversation is enough to clarify your situation and decide the next step together. Free, and without obligation.


