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.

Example

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

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

  increment() {
    this.state.value++;
  }
}

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