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 { mount, Component, useState } from "owl";

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

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

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