Apps
An app folder is one App over the Startup's Nouns, its kind, its Personas and what each may call.
A folder in apps/ is one App: a kind, the Personas who use it, and what each may call. Its screens derive from the Nouns it mounts, as the app product describes.
apps/portal/app.mdxkind, mount, Personasleases/[lease]/view.mdxreplaces one derived screen
Reference
app.mdx is frontmatter only.
| Key | Type | Holds |
|---|---|---|
kind | saas | admin | directory | commerce | The App's shape |
mount | path | Where it serves; / by default, / for admin |
nouns | Noun names | The Nouns it shows |
personas | map | Each Persona and the Verbs it may call |
Examples
Minimal
---
kind: saas
nouns: [Lease]
---Leaseline
Leaseline declares a Lease Noun. Managers run every Verb; residents only read and answer.
---
kind: saas
mount: /app
nouns: [Lease]
personas:
manager: { may: [Lease.create, Lease.renew, Lease.notify] }
resident: { may: [Lease.get] }
---What it builds
The SoftwareBuilder compiles the folder and publishes it with App.publish.
- an
Appwith a list and a detail screen per Noun, and a form per Verb a Persona may call - an inbox of the Tasks waiting on the signed-in person
- authorization before any screen renders, from the Personas map
- the Event
App.published
Routing
| Path | Screen |
|---|---|
/app/ | The list |
/app/ | One record |
/app/ | The form for Lease.renew |
The same URL returns HTML, JSON or Markdown, by reader.