Skip to Content

Platform Engineering

Running Five Businesses on One Odoo Instance

Ovoco needed a platform that could support multiple unrelated businesses without multiplying infrastructure costs. A govcon consulting firm, a media studio, a fire protection company, a freelance project manager, and a resale shop all needed websites, CRM, and back-office tools.

One server, five companies

I built a multi-company Odoo 18 deployment on a single VPS. Each business gets its own company record, website, domain, and data isolation. A restaurant owner browsing Whitewater Fire Protection's inspection services never sees anything from the consulting practice, and a GovCon teaming partner on ovoco.co never sees the fire protection CRM pipeline. Odoo's multi-company security rules handle the isolation, with custom ir.rules filling the gaps where the defaults fall short.

Multi-website theming

Odoo's multi-website architecture uses Copy-on-Write to scope views to specific websites, but theme modules don't follow the standard pattern. Each site needed its own color palette, typography, and layout without leaking styles to the others. I built custom theme modules for each site and worked through Odoo's theme asset registration to scope SCSS bundles per website.

CRM per business

Each site has its own CRM pipeline tuned to its business. Whitewater routes fire protection leads by service type and tracks Utah fire marshal certification expiry dates. The consulting site routes by service line. The media studio tracks creative projects. Same CRM engine, different configurations.

Specification-driven development

I used Spec Kit to manage the feature backlog across all five sites. Every module has a specification that documents what it does, why it was built that way, and what's still pending. Ten active specs across the platform, each one tracking deployed features against the original requirements. When a client site needs changes months later, the spec is right there in the repo next to the code.

The result

Five production websites, five CRM pipelines, and five sets of business logic running on one VPS with two Odoo workers. Adding a new business means creating a company, a website, a theme, and a domain, not provisioning new infrastructure.