๐Ÿงฉ

Odoo

Odoo is an open-source suite of business applications โ€” CRM, inventory, accounting, e-commerce, HR, manufacturing, and more โ€” built by Odoo S.A. and its community, that snap together into a full ERP system. It ranks #16 in trending tech at roughly 2.1% usage share. It's trending because small and medium businesses want one connected platform instead of a patchwork of disconnected SaaS tools, and Odoo offers a free Community edition alongside a paid Enterprise tier with hosting and support.

Quick facts
Type: Open-source ERP / business applications suite
Made by: Odoo S.A.
License: Open-source Community edition (LGPL-3) + paid Enterprise edition
Language/Platform: Python backend, XML/JavaScript frontend; self-hosted or Odoo cloud
Primary use case: Connected business management โ€” CRM, inventory, accounting, and e-commerce in one system
Jump to: ExampleGetting startedBest for

Example

Odoo customization is done by writing Python modules whose models inherit from models.Model, with fields declared declaratively.

from odoo import models, fields, api

class LibraryBook(models.Model):
    _name = "library.book"
    _description = "Library Book"

    name = fields.Char(string="Title", required=True)
    author = fields.Char(string="Author")
    available = fields.Boolean(string="Available", default=True)
    borrower_id = fields.Many2one("res.partner", string="Borrowed By")

    @api.depends("borrower_id")
    def _compute_status(self):
        for record in self:
            record.available = not record.borrower_id

Getting started

Odoo runs great in Docker for local development, using the official image plus a Postgres database.

# run a local Postgres database for Odoo
docker run -d --name odoo-db -e POSTGRES_PASSWORD=odoo -e POSTGRES_USER=odoo postgres:16

# run Odoo linked to that database
docker run -d --name odoo -p 8069:8069 --link odoo-db:db odoo:17

# then open http://localhost:8069 to create your first database
Best for: Small and medium businesses that want one connected system for sales, inventory, accounting, and HR instead of juggling separate tools โ€” especially teams comfortable customizing Python modules for industry-specific workflows.