OWL: A web framework for structured, dynamic and maintainable applications https://odoo.github.io/owl/
  • TypeScript 72.4%
  • JavaScript 22.8%
  • CSS 4.2%
  • HTML 0.4%
  • Python 0.2%
Find a file
Géry Debongnie 6b3659819d [REL] v3.0.0-alpha.38
# v3.0.0-alpha.38

 - [FIX] owl-runtime: don't access document at module load
 - [IMP] owl-core: add .type method
2026-06-22 11:21:04 +02:00
.github/workflows [REF] ci: rename deploy.yml to ci.yml 2026-06-09 10:20:25 +02:00
doc [IMP] owl-core: add .type method 2026-06-22 10:47:58 +02:00
packages [REL] v3.0.0-alpha.38 2026-06-22 11:21:04 +02:00
tools [FIX] playground: handle unicode in shared snapshots 2026-06-18 12:27:37 +02:00
.gitignore [REF] doc: reorganize a few pages 2026-06-09 16:51:11 +02:00
.jshintrc add demo application (benchmark) 2019-03-18 14:26:33 +01:00
COPYRIGHT [LEGAL] add copyright file 2019-10-01 20:44:39 +02:00
eslint.config.mjs [IMP] tooling: suppress dev mode noise in tests, fix eslint config 2026-04-15 11:18:28 +02:00
LICENSE [DOC] doc: update qweb.md 2019-05-03 16:19:33 +02:00
package-lock.json [REL] v3.0.0-alpha.38 2026-06-22 11:21:04 +02:00
package.json [IMP] build: skip sibling type builds when building owl.d.ts 2026-04-23 09:24:27 +02:00
README.md [DOC] doc: update documentation pages to fit better in website 2026-04-16 16:01:20 +02:00
tsconfig.base.json [REF] tooling: update to esbuild 2026-04-14 14:09:50 +02:00

🦉 Owl 🦉

A modern, lightweight UI framework for applications that scale

License: LGPL v3 npm version Downloads


Owl 3.0.0 Alpha: This is an alpha release. The API and features are subject to change without notice.


Try it now

The fastest way to discover Owl is the online playground. It features interactive examples, a live editor, and showcases all major features: reactivity, components, plugins, and more. It also includes guided tutorials and is the recommended way to learn about Owl.

What is Owl?

Owl is a modern UI framework (~30kb gzipped, zero dependencies) written in TypeScript, built by Odoo. It powers Odoo's web client, one of the largest open-source business applications, but is equally suited for small projects and prototypes.

Key features:

  • Signal-based reactivity — Explicit, composable, and debuggable state management
  • Plugin system — Type-safe, composable sharing of state and services
  • Class-based components — Familiar OOP patterns with ES6 classes
  • Declarative templates — XML templates with a clean syntax
  • Async rendering — Concurrent mode for smooth user experiences

Quick Example

import { Component, signal, computed, mount, xml } from "@odoo/owl";

class TodoList extends Component {
  static template = xml`
    <input placeholder="Add todo..." t-on-keydown="this.onKeydown"/>
    <ul>
      <t t-foreach="this.todos()" t-as="todo" t-key="todo.id">
        <li t-att-class="{ done: todo.done }">
          <input type="checkbox" t-model="todo.done"/>
          <t t-out="todo.text"/>
        </li>
      </t>
    </ul>
    <p t-if="this.remaining() > 0">
      <t t-out="this.remaining()"/> item(s) remaining
    </p>`;

  todos = signal.Array([
    { id: 1, text: "Learn Owl", done: false },
    { id: 2, text: "Build something", done: false },
  ]);

  remaining = computed(() => this.todos().filter((t) => !t.done).length);

  onKeydown(ev) {
    if (ev.key === "Enter" && ev.target.value) {
      this.todos.push({
        id: Date.now(),
        text: ev.target.value,
        done: false,
      });
      ev.target.value = "";
    }
  }
}

mount(TodoList, document.body);

This example demonstrates Owl's reactivity: todos is a signal, remaining is a computed value that updates automatically, and the UI reacts to changes without manual subscription management.

Documentation

The full documentation is available at odoo.github.io/owl/documentation.

For the Owl 2 documentation, see the owl-2.x branch.

Installation

npm install @odoo/owl

Or download directly: latest release

Devtools

The Owl devtools extension helps debug your applications with component tree inspection, state visualization, and performance profiling. Download it from the releases page.

License

Owl is released under the LGPL v3 license.