Skip to main content

Technologies

Technologies Chosen for the System, Not the Sales Deck

Every technology listed here is running in a named production system we built or maintain. Where we haven't shipped something in production, this page says so instead of listing the logo.

How we choose

Selection Principles

A stack is a maintenance commitment, usually for longer than the team that picked it. These are the rules we apply before adding anything to a client's system.

  • The system decides, not the trend

    We start from what the software has to do and who maintains it afterwards. A framework that suits the problem badly costs more than one that is unfashionable.

  • Boring where it counts

    PostgreSQL, Python and Linux carry almost everything we run. Novelty belongs at the edges, where replacing it later is cheap.

  • Someone else can maintain it

    We choose technologies with a real hiring pool and public documentation, so your system is not hostage to the team that wrote it, including us.

  • One system of record

    Data has one owner. Front ends, apps and stores read it over an API rather than keeping their own copy and reconciling later.

  • Upgrades are planned work

    Frameworks and ERPs move. We budget version upgrades rather than discovering them when a security release forces one.

  • We say when not to build

    Sometimes the answer is configuration, an existing product, or leaving a working system alone. That recommendation is part of the job.

In production

Business systems

The platforms that hold the operational truth: products, stock, orders, money and people.

  • Python

    The language behind Odoo modules, integrations and services. Nineteen of the twenty projects on this site run Python in production.

    19 of 20 case studies

  • PostgreSQL

    The database under every Odoo system we run, tuned, backed up and restored as part of delivery rather than as an afterthought.

    19 of 20 case studies

In production

Web

What people see, and how it stays fast while talking to a real backend.

  • OWL and QWeb

    Odoo's own front-end framework and template engine, used when the right place for a screen is inside the ERP rather than beside it.

    Aria Jewellers, Jo Ann's, Hi-Tech Alloys, Spicy Organic

In production

Mobile

Apps that do real work, usually against the same APIs the web uses.

  • React Native and Expo

    The right answer when the mobile app shares a language, components and a team with a React web product.

    Freiburger Bund (iOS and Android, EAS over-the-air updates)

In production

Content

Where editorial content lives when it should not live in the ERP or the codebase.

  • MeiliSearch

    Instant full-text search across large content sets, used where the CMS query layer is not what a search box should hit.

    Freiburger Bund (articles, protocols and job listings)

In production

Commerce

Storefronts and the operational systems behind them.

In production

APIs and integration

The contracts between systems, and the machinery that keeps them reliable.

  • REST, webhooks and queues

    Idempotent handlers, retries with backoff and scheduled catch-up jobs, because integrations fail and should recover without anyone noticing.

    Spicy Organic (Shopify), Opsio (Swedbank, Outlook)

  • Payments

    Stripe, Cashfree, Razorpay and Paytm EDC terminals wired into the ledger rather than reconciled by hand.

    WaveContact, MEP Emart, LittleQ, Aria Jewellers

  • Real-time and messaging

    Socket.IO for sub-second chat and presence, Firebase Cloud Messaging for push, WhatsApp where the customer conversation belongs next to the order.

    Freiburger Bund, Zealous, Aria Jewellers

In production

Infrastructure

Where the systems run, and how they get there.

  • Odoo.sh

    Odoo's own platform where managed infrastructure and staging branches are worth more than full control.

    ERP Happy (branches, builds and deployments)

  • Docker

    Reproducible environments for development and deployment, used on eight of the systems on this site.

    8 case studies

  • Object storage (R2, S3, MinIO)

    Media and documents served from S3-compatible storage with renditions, so apps and pages download the size they need.

    Ramdev Kangan, Freiburger Bund, and this website

Where it runs

Which Technology Is in Which Project

Read this the way we would in a technical evaluation: one row per production system, one column per technology, and a link to what the project actually did.

Technologies used in each production project
ProjectOdooNext.jsFlutterReact NativePayload CMSGraphQLDocker
Aria JewellersYes–No–No–No–NoYesYes
Baroda Hi-Tech AlloysYes–No–No–No–No–NoYes
Freiburger BundYesYes–NoYesYes–NoYes
Jo Ann'sYes–No–No–No–No–NoYes
LittleQYesYes–No–NoYesYesYes
Made It EasyYes–No–No–No–No–NoYes
PayRemitYesYesYes–No–No–No–No
Ramdev KanganYes–NoYes–No–NoYes–No
Spicy OrganicYes–No–No–No–No–NoYes
WaveContactYes–NoYes–No–NoYes–No
Wild CloudYes–No–No–No–No–NoYes

Projects whose only entry here is Odoo are left out, because a row of dashes tells you nothing. The full list is on the case studies page, and every stack on this page comes from the project's own record rather than from a capability list.

What we will not claim

Technologies Without a Page, and Why

A page here means we have run it in production and can answer hard questions about it. These are the ones that do not qualify yet, stated plainly.

  • Shopify, as a general service

    We integrate Shopify with Odoo and build headless storefronts on it, and both have their own pages. We do not present ourselves as a general Shopify agency, because theme and app development is not where our production evidence is.

  • Strapi and Directus

    We have not run either in production, so there is no service page. When we publish comparisons against Payload CMS they will say exactly that, and they will be architecture decisions rather than a pitch.

  • React Native

    Real production proof exists (the Freiburger Bund iOS and Android apps), but it is one project. A dedicated page follows when there is a second, rather than stretching one engagement into a capability claim.

  • AI features

    We build automation and integrations, including with AI services where a client asks for them. We are not positioning as an AI company, and we will not add a page for it until there is production work worth reading about.

Next step

Choose the Stack After the Problem, Not Before

Tell us what the system has to do, who maintains it and what it connects to. We will propose a stack with the reasoning, including the parts we would not build.