The spec isn't documentation for you to memorize — it's a prompt for the model. Describe what you want. The AI writes Mere. You open the file. That's the whole workflow.
Open your AI of choice — Claude, ChatGPT, Gemini. Write a plain-English description of your app.
Paste this into your prompt. The spec is the entire grammar — sigils, elements, state, actions. The model needs one reference pass and it knows the format.
→ mere.semanticintent.dev/spec.htmlThe model produces a .mp.html file. Copy the output, save it as anything.mp.html, open it in any browser. It runs immediately — no install, no build step.
Ask the model to change things. "Add a fourth screen for weekly stats." "Make the streak reset at midnight." Each iteration is a new file. No compilation between changes.
When it's ready, submit it. The store runs mere check automatically — if it passes, it's live. Your package gets an MP- identifier and a permanent URL.
Every data relationship in any Mere app is one of these four things. Include them in your prompt — the model will use them correctly.
Bind an element to a state value. Displays the value, or iterates a list.
<heading @title>Sync an input field with a state value. Typing updates state instantly.
<field ~email>Invoke a named action on click. Actions are plain text — one statement per line.
<button !save>Describe what an element should become. For the AI compositor — ignored at runtime.
<screen ?"Show inbox">Copy this, paste it into your AI, replace the last line with your description.
You are building a Mere workbook — a .mp.html file that runs as a local app in any browser. The Mere spec is at: https://mere.semanticintent.dev/spec.html Rules: - The root element is <workbook theme="..."> - State goes in <state>, computed values in <computed>, actions in <actions> - Screens go in <screen name="..."> elements - Use sigils: @ to read state, ~ for two-way binding, ! to invoke actions - Available themes: classic-light, proton-mail, brutalist - Add persist to any state value to survive browser closes - No JavaScript — only Mere elements and sigils Build me: [DESCRIBE YOUR APP HERE]