Document
Part of the Tally
Document: part of the Tally suite, on the shared “studio-en” data.
data space «studio-en» — this micro app reads and writes the suite’s shared data space.
What it records
- Document number (e.g. 2026-042)
- Description
- Quantity
- Unit price (€)
The other micro apps in the same suite
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
# 🧾 Document
## Header
::input[docnum]{placeholder="Document number (e.g. 2026-042)" legend="Number"}
::select-from[billto]{from="clients" label="name" value="name" legend="Billed to"}
::input[docdate]{type="date" legend="Date"}
## Lines
::::form{path="lines" id="frg"}
::input{form="frg" field="item" placeholder="Description" required="true"}
::input{form="frg" field="qty" type="number" placeholder="Quantity" required="true"}
::input{form="frg" field="price" type="number" placeholder="Unit price (€)" required="true"}
::add-form{form="frg" path="lines" label="Add line"}
::::
::::card{id="documento" title="Document"}
**No.** :value[vnum]{ref="#docnum"} — **to:** :value[vint]{ref="#billto"} — **dated** :value[vdata]{ref="#docdate"}
:::table{path="lines" headers="Item,Qty,Price,Subtotal" deletable="true" editform="frg" search="false" pagesize="0"}
{item} | {qty} | € {price} | € {qty*price}
:::
**Net amount: € :sum[imp]{path="lines" field="qty*price"}** ·
VAT 22%: € :sum[ivaval]{path="lines" field="qty*price*0.22"} ·
**Total: € :sum[tot]{path="lines" field="qty*price*1.22"}**
::::
::print{target="documento" label="Print / PDF"}
> Finished a document? Print it or save it as PDF, then clear the lines with
> the trash bins to start the next one. Each app version keeps its own data.