Compass — CRM leggero
Il CRM che sta in un file: clienti, trattative e attività, con il quadro sempre davanti. Tutto resta sul tuo dispositivo.
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: Tally — stesso spazio dati.
Cosa registra
- Nome o ragione sociale
- Referente
- Telefono
- Oggetto della trattativa
- Valore (€)
- Stato...
- Cosa fare (chiamata, visita, invio offerta...)
- Attività (es. software, ristorazione)
Composta da 5 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 Tally.
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
# 🧭 Compass
Il CRM che sta in un file: clienti, trattative e attività, con il quadro sempre davanti. Tutto resta sul tuo dispositivo.
:::::page{title="Cruscotto" icon="📊"}
## Il quadro in un colpo d'occhio
:::grid{cols="3"}
**Clienti**
:count[nclienti]{path="clienti"}
---
**Trattative**
:count[ntrattative]{path="trattative"}
---
**Pipeline (€)**
:sum[pipeline]{path="trattative" field="valore"}
:::
## Pipeline per stato
:::if-empty{path="trattative"}
*Nessuna trattativa ancora: aprine una dalla pagina Trattative.*
:::
:::group-by{path="trattative" field="stato" as="list"}
**{titolo}** — {cliente} · € {valore}
:::
:::::
:::::page{title="Clienti" icon="👥"}
## Anagrafica clienti
::::form{path="clienti" id="fcli"}
::input{form="fcli" field="nome" placeholder="Nome o ragione sociale" required="true"}
::input{form="fcli" field="referente" placeholder="Referente"}
::input{form="fcli" field="telefono" placeholder="Telefono"}
::input{form="fcli" field="email" type="email" placeholder="Email"}
::add-form{form="fcli" path="clienti" label="Aggiungi cliente"}
::::
:::table{path="clienti" headers="Cliente,Referente,Telefono,Email" deletable="true" editform="fcli"}
**{nome}** | {referente} | {telefono} | {email}
:::
:::::
:::::page{title="Trattative" icon="💼"}
## Pipeline commerciale
::::form{path="trattative" id="ftr"}
::input{form="ftr" field="titolo" placeholder="Oggetto della trattativa" required="true"}
::select-from{from="clienti" form="ftr" field="cliente" label="nome" value="nome"}
::input{form="ftr" field="valore" type="number" placeholder="Valore (€)"}
:::select{form="ftr" field="stato" placeholder="Stato..."}
- Contatto
- Proposta
- Negoziazione
- Vinta
- Persa
:::
::input{form="ftr" field="chiusura" type="date" legend="Chiusura prevista"}
::add-form{form="ftr" path="trattative" label="Registra trattativa"}
::::
:::table{path="trattative" headers="Trattativa,Cliente,Valore,Stato,Chiusura" deletable="true" editform="ftr"}
**{titolo}** | {cliente} | € {valore} | {stato} | {chiusura}
:::
Valore complessivo: **€ :sum[vt]{path="trattative" field="valore"}**
:::::
:::::page{title="Attività" icon="✅"}
## Da fare, sul calendario
::::form{path="attivita" id="fatt"}
::input{form="fatt" field="data" type="date" required="true" legend="Quando"}
::input{form="fatt" field="cosa" placeholder="Cosa fare (chiamata, visita, invio offerta...)" required="true"}
::select-from{from="clienti" form="fatt" field="cliente" label="nome" value="nome"}
::add-form{form="fatt" path="attivita" label="Pianifica"}
::::
:::calendar{path="attivita" field="data"}
{cosa} · {cliente}
:::
:::sort{path="attivita" field="data" order="asc" as="list" deletable="true"}
{data} — **{cosa}** ({cliente})
:::
:::::
:::::page{title="ATECO" icon="🏷️"}
## Il codice ATECO giusto, dai dati ufficiali
Cerca l'attività economica del cliente nella classificazione ATECO 2025
(dati open): scrivi una parola e trovi codice e descrizione da riportare in
anagrafica o in fattura. La ricerca si aggiorna mentre scrivi.
::input[od_ateco]{placeholder="Attività (es. software, ristorazione)"}
::od-query{into="od_ateco_ris" sql="SELECT CODICE_ATECO_2025 AS codice, PREFLABEL_IT AS descrizione FROM voc_istat_ateco_2025 WHERE PREFLABEL_IT ILIKE '%' || '{#od_ateco}' || '%' ORDER BY codice" limit="30"}
:::table{path="od_ateco_ris" headers="Codice,Descrizione" search="false" pagesize="8"}
{codice} | {descrizione}
:::
:::::