Tally — preventivi e fatture semplici
Preventivi e fatture senza gestionale: righe con i conti fatti da soli, totale e IVA in automatico, stampa o PDF con un clic.
spazio dati «studio» — il collante della suite: sul tuo dispositivo, multi-utente con un invito (link o QR), cifrato end-to-end.
oppure aprila come app unica
Si integra con: Compass — stesso spazio dati.
Cosa registra
- Numero documento (es. 2026-042)
- Descrizione
- Quantità
- Prezzo unitario (€)
- Ragione sociale
- Partita IVA / CF
- Indirizzo
Composta da 2 micro app
Un compito ciascuna, sugli stessi dati: ogni micro app legge e scrive lo spazio dati condiviso «studio» (col tuo consenso, chiesto alla prima apertura). Tutto resta sul tuo dispositivo — e con un solo invito l'intera suite diventa multi-utente, cifrata end-to-end.
Le micro app condivise sono il ponte tra le soluzioni: gli stessi dati alimentano anche Compass.
Come funziona
Questa è un'app Reactive: un semplice documento di testo che il browser trasforma in un'app funzionante — moduli, dati dal vivo, tabelle, statistiche e persino grafici, senza installare né configurare nulla.
- Usala subito. Premi «Usa questa app»: si apre subito nel tuo browser, già pronta, con i dati salvati solo sul tuo dispositivo.
- I tuoi dati restano tuoi. Tutto è memorizzato in locale sul dispositivo, separato per ogni app: niente account, niente server, niente da configurare.
- Rendila tua. Il testo qui sotto è l'app per intero: copialo, cambia campi, viste e parole, e le modifiche diventano subito interattive.
- Condividila come file. Un'app è un semplice file: salvalo, esportalo o condividilo con un link; e con la collaborazione cifrata più persone modificano gli stessi dati in tempo reale.
Il testo dell'app
# 🧾 Tally
Preventivi e fatture senza gestionale: righe con i conti fatti da soli, totale e IVA in automatico, stampa o PDF con un clic.
:::::page{title="Documento" icon="🧾"}
## Intestazione
::input[numero]{placeholder="Numero documento (es. 2026-042)" legend="Numero"}
::select-from[intestatario]{from="clienti" label="nome" value="nome" legend="Intestato a"}
::input[docdata]{type="date" legend="Data"}
## Righe
::::form{path="righe" id="frg"}
::input{form="frg" field="voce" placeholder="Descrizione" required="true"}
::input{form="frg" field="qta" type="number" placeholder="Quantità" required="true"}
::input{form="frg" field="prezzo" type="number" placeholder="Prezzo unitario (€)" required="true"}
::add-form{form="frg" path="righe" label="Aggiungi riga"}
::::
::::card{id="documento" title="Documento"}
**N.** :value[vnum]{ref="#numero"} — **a:** :value[vint]{ref="#intestatario"} — **del** :value[vdata]{ref="#docdata"}
:::table{path="righe" headers="Voce,Qta,Prezzo,Subtotale" deletable="true" editform="frg" search="false" pagesize="0"}
{voce} | {qta} | € {prezzo} | € {qta*prezzo}
:::
**Imponibile: € :sum[imp]{path="righe" field="qta*prezzo"}** ·
IVA 22%: € :sum[ivaval]{path="righe" field="qta*prezzo*0.22"} ·
**Totale: € :sum[tot]{path="righe" field="qta*prezzo*1.22"}**
::::
::print{target="documento" label="Stampa / PDF"}
> Finito un documento? Stampalo o salvalo in PDF, poi svuota le righe con i
> cestini per iniziare il prossimo. Ogni versione dell'app ha i suoi dati.
:::::
:::::page{title="Clienti" icon="👥"}
## Anagrafica
::::form{path="clienti" id="fcl"}
::input{form="fcl" field="nome" placeholder="Ragione sociale" required="true"}
::input{form="fcl" field="piva" placeholder="Partita IVA / CF"}
::input{form="fcl" field="indirizzo" placeholder="Indirizzo"}
::input{form="fcl" field="email" type="email" placeholder="Email"}
::add-form{form="fcl" path="clienti" label="Aggiungi cliente"}
::::
:::table{path="clienti" headers="Cliente,P.IVA,Indirizzo,Email" deletable="true" editform="fcl"}
**{nome}** | {piva} | {indirizzo} | {email}
:::
:::::