Welcome to hello-manifesto.
This repository is the onboarding project for first-time Manifesto users.
If this is your first Manifesto project, start here.
By the end of this project, you should be able to:
- define a simple MEL domain
- activate a Manifesto runtime
- bind runtime snapshots to Vue UI
- dispatch intents from UI events
- make one confident feature update and verify it
- Node.js (LTS)
pnpm(recommended)
# 1. clone
git clone https://github.com/manifesto-ai/hello-manifesto.git
cd hello-manifesto
# 2. install
pnpm install
# 3. run
pnpm devThen open the local dev URL (usually http://localhost:5173).
pnpm dev: run local dev serverpnpm build: type-check + production buildpnpm preview: preview build artifacts locally
.
├─ src/
│ ├─ App.vue # Vue UI + Manifesto snapshot binding
│ ├─ main.ts # App entry
│ ├─ style.css # Styles
│ └─ domain/
│ ├─ hello.mel # MEL domain
│ └─ hello.domain.ts # Manual generated typings
├─ CONTRIBUTING.md # Onboarding contributor guide
├─ START_HERE.md # First-run onboarding instructions
├─ README.md
└─ package.json
src/domain/hello.mel:
domain HelloDomain {
state {
hello: string = "Hello, World!"
counter: number = 0
}
computed doubled = mul(counter, 2)
computed canDecrement = gt(counter, 0)
action increment() {
onceIntent {
patch counter = add(counter, 1)
}
}
action decrement() available when canDecrement {
onceIntent {
patch counter = sub(counter, 1)
}
}
}
In App.vue, runtime is created and activated, and the initial snapshot is read from getSnapshot().
As state changes, subscriptions update Vue refs (counter, doubled, canDecrement).
increment / decrement are dispatched via dispatchAsync(createIntent(...)).
- Run
pnpm devand confirm the counter and doubled value update correctly. - Change the initial
hellotext inhello.meland confirm runtime snapshot updates. - Add one computed value (for example
isEven = mod(counter, 2) == 0). - Add one action that increments by 2.
- Submit your change using the PR template.
- If
pnpm installfails, confirm Node.js and pnpm versions. - If UI does not update after dispatch, check subscriptions in
App.vue.
See CONTRIBUTING.md for workflow and review checklist.
See START_HERE.md for the next concrete tasks after this project.
