CatalogoVita personale ›Benessere

Tracker abitudini quotidiane — con streak automatico

Costruire un'abitudine è questione di costanza, e vedere la propria serie di giorni consecutivi — lo «streak» — è il modo più semplice per restare motivati. Qui segni ogni volta che fai un'abitudine (bere due litri d'acqua, leggere venti minuti, meditare) e l'app calcola da sola da quanti giorni di fila la stai rispettando, senza account né dati che lasciano il dispositivo.

▶ Usa questa app

abitudinistreaktracker abitudinicostanzabenessere

Cosa registra

  • es. Bere 2L d'acqua, Leggere 20 minuti

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.

  1. Usala subito. Premi «Usa questa app»: si apre subito nel tuo browser, già pronta, con i dati salvati solo sul tuo dispositivo.
  2. I tuoi dati restano tuoi. Tutto è memorizzato in locale sul dispositivo, separato per ogni app: niente account, niente server, niente da configurare.
  3. Rendila tua. Il testo qui sotto è l'app per intero: copialo, cambia campi, viste e parole, e le modifiche diventano subito interattive.
  4. 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
# 🔥 Tracker abitudini quotidiane

Costruire un'abitudine è questione di costanza, e vedere la propria serie di
giorni consecutivi — lo «streak» — è il modo più semplice per restare
motivati. Qui segni ogni volta che fai un'abitudine (bere due litri d'acqua,
leggere venti minuti, meditare) e l'app calcola da sola da quanti giorni di
fila la stai rispettando, senza account né dati che lasciano il dispositivo.

::::form{path="checkin" id="fch"}
::input{form="fch" field="abitudine" placeholder="es. Bere 2L d'acqua, Leggere 20 minuti" required="true"}
::input{form="fch" field="data" type="date" legend="Data" help="il giorno in cui l'hai fatta, di solito oggi" required="true"}
::add-form{form="fch" path="checkin" label="Segna fatto"}
::::

## Streak per abitudine

:::python{data="checkin"}
```
from datetime import date, timedelta

righe = data["checkin"]
per_abitudine = {}
for r in righe:
    ab = r.get("abitudine")
    d = r.get("data")
    if ab and d:
        per_abitudine.setdefault(ab, set()).add(date.fromisoformat(d))

if per_abitudine:
    oggi = date.today()
    for ab in sorted(per_abitudine):
        giorni = per_abitudine[ab]
        cursore = oggi
        nota = ""
        if cursore not in giorni:
            nota = " (non ancora segnata oggi)"
            cursore = cursore - timedelta(days=1)
        streak = 0
        while cursore in giorni:
            streak += 1
            cursore = cursore - timedelta(days=1)
        print(f"🔥 {ab}: {streak} giorni di fila{nota}")
else:
    print("Segna la tua prima abitudine per iniziare a costruire lo streak.")
```
:::

## Storico check-in

:::table{path="checkin" headers="Abitudine,Data" deletable="true" editform="fch"}
{abitudine} | {data}
:::

Più abitudini diverse puoi seguire tutte insieme qui: basta usare lo stesso
nome ogni volta che le segni, per far crescere lo streak invece di iniziarne
uno nuovo.