Products · Build a dot
Developer overview
What a dot is, how its pages work, what's in a dot's project and what stays stable while Dot is in beta.
A dot is a mini app inside Dash, Monime's money app for Sierra Leone. Meter top-ups in Bo, Lungi ferry tickets, a Freetown cookshop menu: each can be a dot that people open from Dash, with nothing to install.
You build dots with Dot, Monime's framework, and the Monime CLI. Each dot belongs to a business's Space, its account on Monime, and you work on the dot as a member of that Space. If you're new to dots, start with the quickstart, then build a ticket dot in the tutorial.
How a page works
A dot is a set of pages. Each page has a view (view.dml, markup a lot like HTML), a state (its data) and a controller (TypeScript that changes the state when someone taps or types).
<View>
<Text variant="title">{{ count }} taps</Text>
<Button onClick="increment">Tap me</Button>
</View>export default definePage({
initialState: { count: 0 },
mutations: {
increment: (state) => ({ count: state.count + 1 }),
},
});{{ count }} shows the state's count and updates when it changes. The button runs increment, a mutation. Pages and state explains mutations, and the actions that do slower work like calling your server.
What's in a project
| File or folder | What it holds |
|---|---|
dot.json | Name, version, permissions and the hosts the dot calls |
dot.ts | The list of pages and the theme |
pages/ | A folder for each page |
statics/ | Images and your own icons |
.env | Public settings |
.dot/ | Types the CLI writes. Leave them alone |
Project configuration goes through each one.
What's stable in the beta
These won't change during the beta: Dash's calls and error codes (Dash API 1.0), payments, the dot.json fields and permissions, definePage and defineDot. They can gain new options in 1.x releases, but nothing is removed or changed. Components aren't frozen. They can gain props and change how they look, so check your pages after you update Dot. See Versions, and What changed in Dot for each release.