1. Mailtest, a deliverability tool we built because email kept silently failing
Email is the single most common thing that breaks on a self-hosted Odoo. Quotes don't arrive. Password resets bounce. The customer never gets the invoice. So we shipped Mailtest, a real product that captures any SMTP message, shows it in a clean inbox UI, and tells you exactly why it would land in spam.
Point your Odoo outgoing mail server at the Mailtest inbox we give you, send a test, and you get a SpamAssassin score, an SPF check, a DKIM verdict, and a DMARC alignment report. No more guessing whether your DNS is right. No more waiting for a customer to say "I never got it".
SPF: pass DKIM: pass (rsa-sha256, 2048 bits) DMARC: pass (alignment: relaxed) SpamAssassin: 0.4 (threshold 5.0)
2. Public API v1, finally
The most-asked feature of the year. The Public API is now live and stable. Every action you can do in the dashboard, you can now do over REST. Create environments. Trigger deploys. Read logs. Manage webhooks. Wire it into your CI, your internal tools, or a custom dashboard.
JWT auth with scoped tokens, idempotency keys on every write, and a full OpenAPI 3.1 spec so your favourite client generator just works. We dogfood it: the OEC.sh dashboard itself uses the same endpoints you do.
curl -X POST https://api.oec.sh/v1/deploys \ -H "Authorization: Bearer $OECSH_TOKEN" \ -H "Idempotency-Key: deploy-2026-05-06-001" \ -d '{"environment_id":"env_42","ref":"main"}'
3. Connect-As is now on Starter
Connect-As lets a teammate or a partner agency log into a customer's Odoo as that customer, with full audit logging, without ever sharing a password. We launched it Agency-only last quarter. As of v1.34, it's available on the Starter plan and up.
Every Connect-As session is logged across orgs. The customer sees who connected, when, and for how long. The auditor sees the same trail. You stop emailing passwords around. Support tickets that used to take 30 minutes of credential dance now take 30 seconds.
4. Zero-downtime deployments, for your Odoo and ours
Deploys used to take Odoo offline for the duration of the build and module update. No longer. We rolled out blue-green and rolling deployment strategies for customer environments, with health-checked cutover via Traefik. Choose the strategy per environment.
The same engine ships the OEC.sh control plane itself. We deploy the platform multiple times a day now, in business hours, with zero customer impact. If the new version fails its health checks, traffic stays on the old one. You don't notice. We don't scramble.
For comparison-shoppers, this is the gap that made teams pick Odoo.sh over self-hosted setups. See our Odoo.sh comparison for the full breakdown.
5. AI Dev Sidecar goes multi-VM
AI Dev Mode launched in February with Claude Code, Cursor, and OpenAI Codex pre-wired into a project terminal. In March we made it multi-VM. Spin up an isolated dev VM per developer, each with its own sidecar, all sharing the same project addons via secure mounts.
Provisioning logs now stream to the browser in real time over SSE. You can watch your VM come up, see the sidecar attach, and start typing in under 90 seconds. We also added MCP server support so the AI tools have direct access to your Odoo schema and data.
Want to try it? Start with the vibe-coding Odoo guide, then dive into the Odoo MCP setup or the Cursor walkthrough.
6. Cloudflare Tunnel for any server, anywhere
A long-running customer request: "our Odoo server lives behind a corporate firewall with no inbound ports, can OEC.sh manage it?" Now, yes. Connect via Cloudflare Tunnel and the server initiates an outbound connection. No port forwarding. No VPN gymnastics. No public IP needed.
Two modes. Bring your own Cloudflare account, or let us run a platform-managed tunnel for you with built-in health checks and automatic reconnection. Both modes work for NAT'd boxes, home labs, on-prem racks, and anything in between.
Step-by-step setup is over on the Cloudflare Tunnel guide.
7. Automation Rules, the workflow engine
The legacy auto-deploy config has been replaced with a proper workflow engine. Build rules that fire on any event in the platform: a push to main, a backup completing, a server going Degraded, a webhook arriving. Then chain actions: deploy, run a script, send a Slack message, open a helpdesk ticket.
A templates gallery ships with 10 best-practice rules, including push-to-deploy, scheduled backups with verification, and auto-rollback on failed health checks. The pipeline UI shows each step running live via SSE so you can watch the rule fire.
If you had auto-deploy configured, we migrated it for you on first login. Nothing to do.
8. Quick Connect, the BYOS one-liner
Adding an existing server is now one command. Paste it into any Ubuntu or Debian box and the server installs Docker, Traefik, the OEC.sh agent, then auto-deploys an Odoo project with sensible defaults. From bare VPS to running Odoo in five minutes.
Re-runnable. If you upgrade the server, change the hostname, or want to refresh the agent, run it again. It's idempotent and won't clobber your data.
curl -fsSL https://oec.sh/connect.sh | bash -s -- --token $OECSH_TOKEN
9. PostgreSQL 17 with pgvector, pg_trgm, and unaccent
The version selector dropdown now goes up to PostgreSQL 17. New environments default to it. Existing environments can upgrade in place via the dashboard. The deployment system is now version-aware so module installs and migrations pick the right pg_dump and pg_restore binaries.
pgvector is bundled by default. Build AI features in your Odoo modules without wrestling with extension installation. pg_trgm and unaccent ship enabled too, so trigram search and accent-insensitive lookups just work.
For the full benchmark of why PG17 matters, see our PostgreSQL tuning guide.
10. Native odoo-bin backup and restore
We replaced our custom dump pipeline with Odoo's own odoo-bin commands. This sounds boring until you operate a backup at scale. The native path is dramatically more reliable on large databases, handles unusual filestore layouts correctly, and matches exactly what Odoo expects on restore.
For files over 500 MB, restore is now VM-autonomous. The VM streams the backup directly from object storage to disk, runs odoo-bin restore locally, and reports back. The control plane never holds the file. Memory pressure on the platform side dropped to almost nothing, and multi-gigabyte restores stopped timing out.
Bonus shipped this quarter
Ten more wins that didn't need their own headline but absolutely earned a mention.
- Cloudflare for SaaS custom domains. Customers add a single CNAME, we handle the rest. SSL is auto-issued and renewed.
- Slack, Teams, and Discord webhooks. Native formatters for each platform. Pretty messages out of the box, no "raw JSON" eyesore.
- Helpdesk system in-app. Open a support ticket from any page in the dashboard, with automatic context attached.
- Subscription guard improvements. Defense-in-depth checks across the API and the worker fleet so plan limits hold even under unusual access patterns.
- Recursive addons path detection. Drop nested addons folders anywhere in your repo. We find them. No more hand-tuning paths.
- queue_job auto-detection. If your project uses OCA queue_job, we wire up the worker container automatically.
- Per-environment image update policy. Pin production. Auto-track edge on staging. Per environment, not per project.
- Container env vars editor. Edit env vars in the UI with validation, history, and secret masking. No more SSH-and-vim.
- Language selector in environment creation. Pick a default Odoo language during initial creation instead of changing it later.
- Webhook delivery log and auto-pause. Every webhook attempt is logged with status and response. Endpoints that fail repeatedly auto-pause so you can fix them without spamming the receiver.
What's next
Three things on the runway for the rest of 2026.
First, deeper agency tooling. Connect-As was the start. Next is a unified billing rollup, multi-org dashboards, and a partner portal so agencies can manage 20+ customers without context-switching.
Second, more cloud providers. Linode, OVH, and Vultr support is in QA. Alibaba Cloud is in design. We are also working on a generic VPS adapter for the long tail of regional providers.
Third, performance benchmarks. We are running cross-cloud, cross-version benchmarks of Odoo 17, 18, and 19 on every supported provider, with reproducible methodology. Expect public results before the end of Q3.
Try the new stuff
Free plan covers one server, three environments, and two projects. Mailtest, Public API, zero-downtime deploys, PostgreSQL 17, automation rules, and Cloudflare Tunnel are all available on Free. Connect-As starts on Starter at $19/mo. AI Dev Sidecar is on Pro at $39/mo.