Catalog ›Professionals ›Practice & clients
AI
Dossier — case files and deadlines
Your practice's case files in order: statuses, deadlines on the calendar and documents you find again by searching for meaning.
📊 Overview📁 Cases⏰ Deadlines📎 Documents
data space «dossier-en» — the suite’s glue: on your device, multi-user with one invite (link or QR), end-to-end encrypted.
What it records
- Case subject
- Client
- Status...
- Notes
- Document title
Composed of 4 micro apps
One job each, over the same data: every micro app reads and writes the shared data space “dossier-en” (with your consent, asked on first open). Everything stays on your device — and with a single invite the whole suite goes multi-user, end-to-end encrypted.
How it works
This is a Reactive app: a plain text document that your browser turns into a working app — forms, live data, tables, statistics and even charts, with nothing to install or configure.
- Use it right away. Hit “Use this app”: it opens right in your browser, ready to go, with data saved only on your device.
- Your data stays yours. Everything is stored locally on your device, kept separate for each app: no account, no server, nothing to set up.
- Make it your own. The text below is the entire app: copy it, tweak fields, views and words, and your changes become interactive instantly.
- Share it as a file. An app is a simple file: save it, export it or share it with a link; and with encrypted collaboration several people edit the same data in real time.
The app’s source
# 🗂️ Dossier
Your practice's case files in order: statuses, deadlines on the calendar and documents you find again by searching for meaning.
:::::page{title="Overview" icon="📊"}
## The practice at a glance
:::grid{cols="2"}
**Open cases**
:count[npra]{path="cases"}
---
**Documents on file**
:count[ndoc]{path="documents"}
:::
## Cases by status
:::if-empty{path="cases"}
*No cases yet: open one from the Cases page.*
:::
:::group-by{path="cases" field="status" as="list"}
**{title}** — {client} · due {deadline}
:::
:::::
:::::page{title="Cases" icon="📁"}
## Case files
::::form{path="cases" id="fpr"}
::input{form="fpr" field="title" placeholder="Case subject" required="true"}
::input{form="fpr" field="client" placeholder="Client" required="true"}
:::select{form="fpr" field="status" placeholder="Status..."}
- Open
- In progress
- On hold
- Closed
:::
::input{form="fpr" field="deadline" type="date" legend="Next deadline"}
::input{form="fpr" field="notes" placeholder="Notes"}
::add-form{form="fpr" path="cases" label="Open case"}
::::
:::table{path="cases" headers="Case,Client,Status,Deadline,Notes" deletable="true" editform="fpr"}
**{title}** | {client} | {status} | {deadline} | {notes}
:::
:::::
:::::page{title="Deadlines" icon="⏰"}
## The deadlines calendar
:::calendar{path="cases" field="deadline"}
{title} ({client})
:::
:::sort{path="cases" field="deadline" order="asc" as="list"}
{deadline} — **{title}** · {status}
:::
:::::
:::::page{title="Documents" icon="📎"}
## Archive with semantic search
Attach deeds, contracts and PDFs: they stay in your browser and you can search
them by MEANING, not just exact words (on-device AI).
::::form{path="documents" id="fdo"}
::input{form="fdo" field="title" placeholder="Document title" required="true"}
::select-from{from="cases" form="fdo" field="case" label="title" value="title"}
::file{form="fdo" field="attachment" maxkb="500"}
::add-form{form="fdo" path="documents" label="File it"}
::::
:::list{path="documents" deletable="true"}
**{title}** — {case} · {attachment}
:::
::ai-search{rag="documents.attachment,documents.title"}
:::::