Discover Odoo
The Odoo Community Association, From India's #1 OCA Contributor
The OCA maintains thousands of free modules that fill gaps in standard Odoo. Used well they remove custom development you would otherwise pay for and maintain. Used carelessly they become an upgrade problem. We contribute to those modules, so this is what we have learned about telling the two apart.
- OCA member 2025 and 2026
- Contributor, not just consumer
- LGPL and AGPL
- Version-branched
Reviewed by Bhavesh Selarka, COO & Co-Founder, Heliconia Solutions · Odoo 16 Functional Certification · Odoo Partner · Updated
Proof
Clients
Businesses that run on what we built
The short answer
What Is the Odoo Community Association?
The OCA is a non-profit association that maintains free, open-source Odoo modules and the conventions behind them. It is independent of Odoo S.A. Its modules are community-maintained rather than vendor-supported, published per Odoo version on GitHub, and free to use on Community or Enterprise. It is not an Odoo product, not a support contract and not a guarantee of fit.
For a business, the practical value is simple: before anyone writes a custom module, there may already be a maintained one that does the job, reviewed by people who work on Odoo every day. That's cheaper to adopt and cheaper to keep than code written once for you.
The catch is that "free" describes the licence, not the total cost. An OCA module still has to be evaluated, tested against your data, and carried across every version upgrade. The checklist below is what we run before we recommend one, and it's what we'd want a partner to run for us.
Where we stand in it
Our Odoo Community Expertise
We are an OCA member and the association's leading contributor from India. That matters to you for one practical reason: an opinion about whether a community module is production-grade is worth more from someone who has reviewed and fixed them than from someone who has read the README.
- OCA contributor · India
- #1
- Years in the Odoo ecosystem
- 14+
- Projects delivered
- 60+
- Countries served
- 17+
Membership and contribution are separate things. Membership is a subscription anyone can take out. Contribution is code that other people merged, and it is the half that tells you whether a partner actually knows the modules they recommend.
Who is who
Odoo S.A., Community Edition, the OCA and the App Store
These four are routinely confused, and the confusion leads to bad decisions about support and licensing.
| Entity | What it is | Who maintains it | What it costs |
|---|---|---|---|
| Odoo S.A. | The Belgian company that develops Odoo and sells the Enterprise edition | Odoo S.A. | Enterprise is a per-user subscription, Community is free |
| Odoo Community edition | The open-source core of Odoo, released under LGPL v3 | Odoo S.A., with community contributions | No licence fee. You pay for hosting, implementation and support |
| Odoo Community Association (OCA) | An independent non-profit publishing free add-on modules and coding conventions | Volunteer maintainers, partners and contributors | Free. Support is community-based or from your partner |
| Odoo Apps marketplace | Odoo's store for third-party apps, mostly commercial | The individual publisher of each app | Usually paid per app and per version |
Practical consequence: an OCA module has no vendor SLA. If it breaks in production, the people who fix it are your partner or your own team, which is exactly why the evaluation below matters.
Before you commission code
Why We Check OCA Before Writing Custom Modules
The cheapest custom module is the one you never write. This is what checking first actually buys you.
Someone already solved it
Recurring needs (extra reporting fields, stock behaviours, partner data, document layouts, accounting helpers) often have a maintained OCA module already reviewed by people who work on Odoo daily.
It is maintained beyond us
A module with active maintainers gets ported to the next Odoo version by the community. Code we write for you is ported by whoever you pay to port it.
Fewer Enterprise gaps
On Community, OCA covers a meaningful share of what Enterprise apps do. That can change the edition decision, which is worth real money.
Conventions you can read
OCA modules follow published conventions, so any competent Odoo developer can maintain them. Our own modules follow the same conventions for the same reason.
A review trail
Pull requests, issues and tests are public. You can see how a module is maintained before you depend on it, which is not true of most commercial apps.
Less code to own
Every custom module is a permanent liability at upgrade time. Adopting a maintained one moves that liability to a community that has already accepted it.
Our checklist
How We Evaluate an OCA Module Before Recommending It
- Licence: LGPL or AGPL, and whether the choice affects how you can use or distribute your own code around it
- Maintainers: who is named, whether they are active, and whether more than one person is involved
- Version support: a branch for your Odoo version, and whether the previous version was ported promptly
- Dependencies: which other OCA repositories it pulls in, because you adopt those too
- Tests: whether the module has meaningful tests and whether continuous integration is passing on your branch
- Issue activity: open bugs, how long they stay open, and whether anyone answers them
- Security implications: access rules, record rules and anything that touches authentication, payments or personal data
- Upgrade path: what it would take to move it to the next Odoo version if the community does not
- Fit against your actual data: installed on a copy of your database and tested with your volumes, never judged from the README
The four answers
Adopt, Contribute, Fork or Build?
Once a module is evaluated there are four honest outcomes, and only one of them is "write something new".
| Outcome | When it is right | What you own afterwards |
|---|---|---|
| Adopt as-is | It does the job on your version, is maintained, and its dependencies are acceptable | Configuration and a version-pinned dependency |
| Adopt and contribute back | It is close, and your change is generally useful. We submit it upstream so the community maintains it | Nothing extra: your change lives in the module |
| Fork deliberately | Your change is specific to you, or upstream will not take it. Fork with a clear reason and an owner | A fork you must maintain across upgrades, tracked as such |
| Build your own module | Nothing maintained exists, or the fit is poor enough that adapting it costs more than writing it | A module written to OCA conventions so any partner can maintain it |
We record which of these four applies to every third-party module in your system, so at upgrade time nobody has to guess where a piece of code came from.
Version upgrades
What Happens to OCA Modules When Odoo Moves a Version
Inventory
Every third-party module in the database is listed with its origin (OCA, marketplace, ours) and its role, before anything is planned.
Check the branch
For each OCA module, is there a branch for the target version? Many are ported by the community within months of a release, some never are.
Decide per module
Ported and healthy: adopt the new branch. Not ported but needed: port it ourselves and offer it upstream. No longer needed: drop it, which is often the right answer.
Test on a copy
The upgrade is rehearsed on a copy of production with your data and your volumes, module by module, before a date is agreed.
Go live and feed back
Cutover with a rollback path. Where we ported a module, we contribute it back so the next business does not repeat the work.
In our projects
How OCA Shows Up in Systems We Run
- 01
Flintu runs the OCA product_manufacturer module alongside client-specific customisations on a self-hosted Odoo 18 Enterprise deployment, which is the ordinary pattern: standard core, a maintained community module, custom code only where the business is genuinely specific.
- 02
On Community projects, OCA is what makes the edition viable. Our foundry client runs enterprise-grade access control and reporting on Odoo 16 Community, with the gaps filled by community and custom modules rather than a licence.
- 03
We write our own modules to OCA conventions so that another partner could maintain them after us. That is a continuity decision, not an aesthetic one.
- 04
Heliconia is an OCA member (2025 and 2026) and the #1 OCA contributor in India, which is why our judgement about which modules are production-grade comes from working on them rather than from reading their README files.
- 05
We do not publish a longer list of module names than our project records support. If you want the exact module inventory for a system we run, ask and we will send it.
The honest limits
What OCA Does Not Give You
- 01
No support contract. A community module has no SLA and no vendor to escalate to. Your partner or your team is the support.
- 02
No guarantee of fit. A module that solves the problem in general may not solve it for your data volumes, your localisation or your process.
- 03
No compliance guarantee. Localisation and statutory behaviour must be verified for your country, whatever the module claims.
- 04
No promise of a port. Most popular modules are ported to new Odoo versions quickly. Niche ones sometimes are not, and then it is your cost.
- 05
Not automatically better than custom. Adapting a poor-fitting module can cost more than writing a small one that does exactly what you need.
- 06
Not a substitute for testing. Every module we recommend is installed on a copy of your database and tested before it reaches production.
What clients say
In Their Words
Heliconia's Odoo Enterprise implementation, along with third-party system integration, has optimized our processes. Their expertise has been a game-changer.
Vladimir VukovicCEO, Mevalon Produkte
Heliconia delivered an impeccable Odoo Enterprise implementation with seamless integration. Their expertise has revolutionized our operations.
Kartson KrayChairman, TIMmunity GmbH
Questions
OCA Questions, Answered Directly
Are OCA modules free?
Yes, the modules are free and open source, published under LGPL or AGPL depending on the repository. What is not free is the work around them: evaluating, testing against your data, configuring, and carrying them across version upgrades.
Are OCA modules official Odoo modules?
No. The OCA is an independent non-profit, not part of Odoo S.A. Its modules are community-maintained add-ons rather than Odoo products, which is why there is no vendor support channel behind them.
They are also different from the paid third-party apps on the Odoo Apps marketplace, which are maintained by their individual publishers.
Can OCA modules run on Odoo Enterprise?
Yes. Enterprise is built on the same Community core, so OCA modules generally install and run on it, and plenty of Enterprise systems use them. Check for overlap first: if an Enterprise app already covers the need, adding a community module on top usually creates a maintenance problem rather than solving one.
Who supports an OCA module in production?
Whoever maintains your system. In practice that is your partner or your in-house team, with the community as a channel for bugs and fixes upstream. When we recommend a module we take responsibility for it in our support scope, which includes porting it if the community does not.
What happens to OCA modules during an Odoo version upgrade?
Each one is checked for a branch on the target version. Healthy and ported: adopt the new branch. Needed but not ported: we port it and offer it upstream. No longer needed: remove it, which is frequently the right call after a few years.
The upgrade is rehearsed on a copy of production before any date is committed.
Should we use OCA modules or ask you to build custom ones?
Check OCA first, always. We write a custom module when nothing maintained fits, or when adapting an existing one would cost more than a clean build. When we do write one, it follows OCA conventions so it is maintainable by anyone, including a partner who is not us.
How this page is maintained
Sources, Assumptions and Review
What this page assumes
- CONFIRM before launch: the "#1 OCA contributor in India" claim now in the H1. The OCA publishes contributor activity per repository rather than a national ranking, so this needs a stated, checkable basis (for example merged pull requests over a named period, with the query that produces it) or it should be softened to "among the leading contributors from India". The public GitHub profile for our lead contributor shows merged-PR achievements but no ranking.
- CONFIRM: OCA membership years (2025 and 2026) against the membership record.
- Module availability and maintenance vary by Odoo version and by OCA repository. Everything on this page describes how we evaluate, not a guarantee about any specific module.
- Licences differ per repository (LGPL or AGPL). The licence of a module you adopt should be checked against how you intend to use and distribute your own code.
- Named module evidence is limited to what our project records document. We do not list modules we cannot evidence.
Primary sources
- Odoo Community Association (odoo-community.org) (checked 23 September 2026)
- OCA repositories on GitHub (checked 23 September 2026)
- Odoo Community licence, LGPL v3 (checked 23 September 2026)
- Odoo Apps marketplace (checked 23 September 2026)
Change log
- Reframed from a module explainer to the association plus our standing in it: the contribution claim moved into the H1, a credentials band added with the OCA marks, and the ranking claim recorded as a CONFIRM item with the basis it needs.
- First published. Entity table, evaluation checklist, adopt/contribute/fork/build decision and upgrade process.
Reviewed by Bhavesh Selarka, COO & Co-Founder, Heliconia Solutions, on . Spotted something out of date? Tell us and we will correct it.
Next step
Ask Before You Commission a Custom Module
Send us the requirement and your Odoo version. We will tell you whether a maintained OCA module already covers it, what adopting it would involve, and what it would cost to carry across your next upgrade.