Skip to Content
Custom Development

We build the 5% that configuration cannot reach.

Custom Odoo modules, integrations, portals and applications — scoped carefully, because every line of custom code is something to maintain.

Our position

Custom code is a liability. Sometimes it is the right liability.

Every hour of custom development is an hour somebody maintains through every future version upgrade, forever. So our default is to configure rather than build, and roughly 95% of what we deliver is standard Odoo set up properly.

The remaining 5% matters. Some requirements genuinely cannot be met by configuration, and where the commercial case is real we build — carefully, documented, and in a way that survives upgrades.

What we build

Where custom work is usually justified

Odoo modules

Custom models, workflows, reports and views built to Odoo conventions so they upgrade cleanly rather than breaking annually.

Integrations

Payment gateways, logistics providers, banks, marketplaces and legacy systems — connected with proper error handling, not a script that fails silently.

Customer portals

Client-facing interfaces on top of Odoo data. Order tracking, document access, approvals, self-service.

Web applications

Where the requirement sits outside Odoo entirely. Built with modern frameworks, connected back to the ERP through the API.

Mobile

Field data capture, warehouse scanning, approvals on the move. Native where it needs to be, web where it does not.

API layers

Clean, documented interfaces so your systems can talk to each other without anyone re-keying data.

Process

How we scope custom work

Challenge the requirement

The first question is whether standard Odoo can do it, or whether the process could change instead. Often the answer is yes, and that saves you money.

Quantify the case

What does the manual alternative cost per year? If custom development does not pay back inside a sensible period, we say so.

Specify precisely

A technical specification you approve before anyone writes code. Vague scope is how development projects overrun.

Build and review

Iterative, with working software to look at rather than status reports about progress.

Document and hand over

Code, technical documentation and a walkthrough. Your system, not ours.

What we will push back on. Rebuilding standard Odoo functionality because it works slightly differently to your old system. Replicating a process that exists only because your previous software forced it. Features requested by one person that nobody else will use.

Technical

What we work with

Odoo stack

  • Python, Odoo ORM, XML/QWeb
  • OWL for frontend components
  • PostgreSQL
  • Odoo REST and JSON-RPC APIs
  • Odoo.sh, Docker, self-hosted

Beyond Odoo

  • JavaScript, TypeScript, React, Vue
  • Node.js and Python services
  • Flutter for mobile
  • REST and GraphQL APIs
  • AWS, GCP, self-managed infrastructure
Questions

Questions about custom development

Why do you push back on customisation?

Because every hour of custom code is an hour somebody maintains through every future version upgrade, forever. Roughly 95% of what we deliver is standard Odoo configured properly. The remaining 5% is genuine, and we build it carefully.

Will custom modules break when Odoo upgrades?

Not if they are built to Odoo conventions — inheriting rather than overriding, using the ORM properly, avoiding assumptions about core behaviour. Badly written modules break annually. That is a code quality problem, not an inherent Odoo problem.

Do we own the code?

Yes. You receive source, technical documentation and a walkthrough. Odoo is open source and your database is standard PostgreSQL — you can change partner or self-host without renegotiating anything.

How do you price custom work?

Against an approved technical specification. Vague scope is how development projects overrun, so we specify precisely before anyone writes code. Anything outside the specification is a change request, priced and agreed separately.

Can you integrate Odoo with our existing systems?

Usually. Payment gateways, logistics providers, banks, marketplaces and legacy systems are all routine. What matters is proper error handling — an integration that fails silently is worse than no integration.

Have a requirement configuration cannot meet?

Tell us what you need. We will tell you honestly whether it needs building or whether Odoo already does it.

Book a discovery call