What's New in Odoo's JavaScript Framework
Reported By
Faisal

Prepared by Faisal · Codeox Technologies
The Big Picture, in One Line
Odoo rebuilt the entire front-end of the website (the part that powers e-commerce, forms, and page building) almost from scratch, while the core back-office framework stayed mostly stable with a lot of smaller, useful upgrades — especially around speed and offline support.
Two Frameworks Living Side by Side
A lot of people assume Odoo only has one JavaScript framework, called Owl. That's not quite right. There are really two different systems working together, and understanding the split helps explain why some things changed a lot this year and others barely changed at all.
Owl is Odoo's component system — think of it as similar in spirit to React. It's used to build the apps we work in every day: Sales, Accounting, Inventory, CRM, and so on. The website works differently: pages are rendered by the server first, and then a lighter layer of JavaScript is "attached" on top to add behavior like pop-ups, sliders, or add-to-cart buttons. Because these two things work so differently, Odoo has always needed two separate approaches — but this year they closed the gap significantly.
The Website Got a Complete Rebuild
This was the headline change. For years, the website side of Odoo relied on something called "Public Widgets" — an older, clunkier way of attaching JavaScript behavior to web pages. It worked, but it felt disconnected from the rest of Odoo's codebase, which made it harder for developers to move between website work and back-office work. Odoo has now replaced Public Widgets entirely with a new, lightweight system called "Interactions."
What are "Interactions"?
Think of Interactions as a stripped-down, simpler cousin of Owl — built specifically for websites. It's not meant to replace a full app interface; it's meant to attach small bits of behavior (like a click handler, a counter, or showing/hiding something) onto pages that are still rendered by the server. The benefit: website code and app code now speak a much more similar language, and in the future Odoo could even offer super-lightweight pages that don't need the whole framework loaded at all.
A Rebuilt Website Builder
On top of the new Interactions system, Odoo also rebuilt the entire drag-and-drop Website Builder — the tool clients use to design their pages — using Owl. Around 30 developers worked on this. The good news for us: the underlying technology changed, and the options panel has a new syntax for developers, but existing custom snippets (the building blocks clients already use) should keep working without needing to be rebuilt.
The Back-Office (Web Client): Fewer Big Changes, More Quiet Wins
Unlike the website, the core web client — the part behind Sales, Accounting, Inventory, and every other back-office app — barely changed on the surface. Odoo confirmed that Owl itself had fewer than 20 commits in the entire year. That's good news for us: it means our customizations and modules are unlikely to break because of this layer. Instead, the real effort went into making Odoo faster and more resilient, especially around offline use.
Caching and "Offline Mode"
Odoo has been quietly building a caching system so the app can remember data it already fetched, instead of always waiting on the server. Developers can now mark specific data calls to be cached — either in memory (RAM) or on disk — and choose how often that cache should refresh.
Faster-Feeling Screens (Optimistic Rendering)
Because of this caching work, Odoo can now show a screen immediately using the last-known data, fetch the real data in the background, and quietly update the screen only if something actually changed. In practice, this makes the app feel noticeably snappier, even though the underlying request still happens. It's worth noting Odoo was clear that this is not full offline editing yet — you generally can't create or change records with no internet connection today. It's about making things feel fast and staying usable when the connection is slow or briefly drops.
Small Changes That Are Easy to Love
Alongside the big rebuilds, there were several smaller improvements that are worth flagging because clients and users will notice them directly.
- Middle-click / Ctrl-click now works properly across the interface — for example, opening a task from the Project view in a new browser tab, something that wasn't possible before Odoo 19.
- Bottom-sheet pop-ups on mobile: mobile pop-ups now open as a "bottom sheet" (sliding up from the bottom of the screen) by default, which is a much more natural pattern on phones.
- jQuery removed from the rebuilt website code. It's technically still bundled for backward compatibility, but any custom code we've written that depends on it will need to be reviewed at some point going forward.
- A mini "date language" for filters: filters can be written as plain expressions like "today", "-monday", or "now -5M" instead of complex code — much easier to read and set up.
- A new /doc endpoint gives a browsable, always-up-to-date reference of every model and field in a given Odoo instance — handy for scoping integrations or writing technical documentation for clients.
Why This Matters for Us
For our day-to-day project work, the practical takeaways are:
- Existing website snippets and customizations should keep working, but any custom module that hooks into the old Public Widget system or relies on jQuery in the website layer will eventually need a review when we touch those projects again.
- Back-office customizations (the bulk of our work — CRM, Accounting, Inventory, MRP) are on a much more stable foundation this year, since Owl itself changed very little.
- Clients running on newer Odoo versions should feel a noticeably snappier, more mobile-friendly interface without us having to do anything extra.
- The new /doc endpoint could genuinely save us time during requirement-gathering and technical scoping on new engagements.
The Balancing Act
Odoo's own developers were upfront that this kind of change is never risk-free. Every rewrite risks breaking someone's customization, but standing still isn't an option either — the codebase has to evolve to stay maintainable and to keep adding the features clients ask for.
Bottom Line
This year's release is really a story in two halves: a major, ground-up rebuild of the website and page-builder technology (Interactions and the new Website Builder), paired with a quieter, more conservative year for the core back-office framework that focused on speed, caching, and small quality-of-life fixes. For our clients, that should mean a faster, more modern experience with minimal disruption to existing customizations — with the main thing to watch being any older website-layer code that leaned on Public Widgets or jQuery.