OWL Framework

Mysterious OWL: A web framework for structured, dynamic and maintainable applications

Why OWL?

XML based

Templates are based on the XML format, which allows interesting applications. For example, they could be stored in a database and modified dynamically with xpaths.

Templates compiled in the browser

This may not be a good fit for all applications, but if you need to generate dynamically user interfaces in the browser, this is very powerful. For example, a generic form view component could generate a specific form user interface for each various models, from a XML view.

No toolchain required

This is extremely useful for some applications, if, for various reasons (security/deployment/dynamic modules/specific assets tools), it is not ok to use standard web tools based on npm.


import { mount, Component, useState } from "owl";

class Counter extends Component {
  setup() {
    this.state = useState({ value: 0 });

  increment() {

mount(Counter, document.body);
  <t t-name="Counter">
    <button t-on-click="increment">
      Click Me! [<t t-esc="state.value"/>]