Every Odoo installation ends up calling a handful of American services — a CAPTCHA here, a signature provider there. Each one is a data transfer, a consent banner and a dependency you did not choose. Sovereign Apps replaces them with modules that run entirely on your own server.
Odoo ships integrations for Google reCAPTCHA and Cloudflare Turnstile. The app store is full of DocuSign connectors. All of them work well. All of them send your visitors and your documents to a third country, set cookies you have to disclose, and require an account with a vendor who can change terms and pricing at will.
For most of these services there is a self-hosted equivalent that is just as good. What has been missing is the piece that connects it to Odoo. That is what we build.
| Typical integration | Sovereign Apps | |
|---|---|---|
| Where visitor data goes | To the vendor, usually outside the EU | Nowhere — it stays on your server |
| Cookies and fingerprinting | Yes, and you must disclose them | None |
| Vendor account | Required — keys, quotas, rate limits | None |
| Ongoing cost per request | Metered or capped by a free tier | Zero |
| If the vendor changes terms | You adapt or migrate | Nothing happens |
Replaces reCAPTCHA on website forms with a self-hosted proof-of-work challenge. One checkbox, no image grids — which is also what WCAG 2.2 AA and the European Accessibility Act ask for.
Electronic signatures through your own DocuSeal instance instead of DocuSign. Send, pre-fill and receive signed documents without the document ever leaving your infrastructure.
Not yet on the Odoo Apps Store. The modules are in preparation for publication. If you want to try one before it is listed, write to us — we would rather have early feedback than a perfect launch.
| No outbound calls | A module either works without contacting anyone, or it talks only to a server you operate. There is no middle option and no telemetry. |
|---|---|
| Fail closed | A misconfigured security module rejects rather than waves through. If a signing key is missing, verification fails — it does not silently pass. |
| Measure before you block | Anything that can reject a visitor ships in monitor mode first. You see in the log what would have been blocked before anything is. |
| Vendored code stays readable | Third-party libraries are included unmodified and reviewable, never minified into an opaque blob. |
| Tests that can fail | Every security-relevant behaviour has a test that fails when the behaviour is removed — including the replay, expiry and forged-signature cases. |
| Accessibility is not optional | Anything a visitor interacts with works with a keyboard and a screen reader. Under the EAA this is law, not courtesy. |
Questions, a module you would like to see, or an Odoo installation with a dependency you want removed — florian@neuhuber.net.