lt; Ovto::Component
    def render
      o 'input', type: 'button', value: 'Hello'
    end
  end
end

MyApp.run(id: 'ovto')
</code></pre>
<p>It renders a button and does nothing else. Let's have some fun:</p>
<pre><code class="language-rb">require 'opal'
require 'ovto'

class MyApp &lt; Ovto::App
  COLORS = [&quot;red&quot;, &quot;blue&quot;, &quot;green&quot;]

  class State &lt; Ovto::State
    item :color_idx, default: 0
  end

  class Actions &lt; Ovto::Actions
    def update_color
      new_idx = (stat