v0.1 — open format

A workbook format
for apps.

A .mp file contains screens, state, behavior, theme, and data. Open it — it runs. Send it — it travels. No server, no account, no build step.

hello.mp — live workbook open ↗
The idea

The file is the app.

Most app formats are deployment artifacts — they depend on a server, a runtime, an account, a build pipeline. Mere is different. A .mp file is a complete, self-contained, executable artifact. It declares its own screens, state, actions, and theme. The runtime is embedded. Nothing is left out.

The name is the philosophy. A mere is a lake — still, bounded, self-contained. Mere means only, just — it's merely a file. That is enough.

The language

Five sigils. That's the grammar.

Mere extends HTML attributes with five sigil prefixes. They describe every possible relationship between an element and the workbook's state.

@ read

One-way binding. Reads state into the element. Updates when state changes.

~ two-way

Bidirectional sync between an input element and a state value.

! action

Invokes a named action on click. Arguments follow after with.

? intent

Annotation for AI composers. Describes what an element should become.

Anatomy

A complete workbook.

Everything in one file. Screens, state, actions, theme — nothing implicit.

<!-- tasks.mp — a complete Mere workbook -->
<workbook theme="proton-mail">

  <state>
    <value name="tasks" type="list" value="[]" />
    <value name="new-task" type="text" value="" />
  </state>

  <actions>
    <action name="add-task">
      <add-to list="tasks">
        <field key="title" value="@new-task" />
      </add-to>
      <clear target="new-task" />
    </action>
  </actions>

  <screen name="home">
    <header>
      <heading>Tasks</heading>
      <badge @tasks>items</badge>
    </header>
    <form>
      <field ~new-task placeholder="New task…" />
      <button !add-task>Add</button>
    </form>
    <card-list @tasks>
      <card><heading @item.title /></card>
    </card-list>
  </screen>

</workbook>

Ready to build?

Install the CLI, write your first workbook, open it in a browser. No framework, no server, no ceremony.