TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
Persönliche Aufgabenverwaltung nach Getting Things Done. Alle Daten bleiben auf dem Gerät.
Translation pending
ProductivityTypeScript · JavaScriptGitHub @quillmeshOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Getting Things Done App
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Persönliche Aufgabenverwaltung nach Getting Things Done von David Allen. Installierbare Web-App (PWA) für Android, iPad und Windows. Die Daten liegen auf dem Gerät; zwischen Geräten werden sie verschlüsselt über ein privates GitHub-Repository abgeglichen. • Live-App (echte Daten): https://wuscha93.github.io/head-space/ • Test-App (Beispieldaten, kein Sync): https://wuscha93.github.io/head-space/test/ Neue Versionen landen zuerst in der Test-App und kommen erst nach Freigabe in die Live-App.Read the full README ↗
Persönliche Aufgabenverwaltung nach Getting Things Done von David Allen. Installierbare Web-App (PWA) für Android, iPad und Windows. Die Daten liegen auf dem Gerät; zwischen Geräten werden sie verschlüsselt über ein privates GitHub-Repository abgeglichen.
Neue Versionen landen zuerst in der Test-App und kommen erst nach Freigabe in die Live-App.
N)| Was | Wo | Schutz |
|---|---|---|
| Aufgaben, Projekte | Gerät (IndexedDB) | bleibt lokal |
| Sync-Daten | privates Repo head-space-data | AES-256-GCM, Schlüssel aus Passphrase (PBKDF2-SHA256, 600'000 Runden) |
| Sync-Schlüssel | Gerät | als nicht exportierbarer Schlüssel gespeichert |
| GitHub-Token | nur auf dem Gerät | Fine-grained Token, nur für head-space-data, nur „Contents“ |
| App-Code | öffentliches Repo head-space | enthält keine Daten |
Die App lädt keinen fremden Code (keine Abhängigkeiten) und erlaubt per Content-Security-Policy nur Verbindungen zu sich selbst und zu api.github.com.
head-space-databun run build.mjs # baut dist/ und preview/kopf-frei.html
bun test # Unit-Tests in 1 s (Logik, Darstellung, alte Daten, Sync-Zufallstests, Verschlüsselung)
tests/run.sh # alles: Typen, Unit-Tests, End-to-End-Tests (Playwright Test, Ordner e2e/)
tests/run.sh projekte sync # Typen, Unit und nur e2e/projekte.spec.mjs und e2e/sync.spec.mjs
E2E_WEBKIT=1 tests/run.sh # zusätzlich WebKit (Safari-Kern) für @webkit-Tests, so läuft es auf GitHub
Jeder Push wird zuerst vollständig getestet und nur bei Erfolg veröffentlicht (GitHub Actions → GitHub Pages):
Branch test → Test-App, Branch main → Live-App. scripts/build-site.sh baut beide zusammen (Live nach site/, Test nach site/test/).
Geöffnete Apps zeigen danach „Neue Version verfügbar“.
Die Daten sind ein Ereignis-Log: Jede Änderung ist ein Ereignis, der Zustand entsteht durch Abspielen. Damit bestehende Daten bei jedem Update weiter funktionieren:
normalizeItem / normalizeProject (src/store.ts).DB_VERSION in src/db.ts) sind nur additiv: neue Speicher anlegen, nie löschen.kopf-frei.json, events/*.json) hat eine Versionsnummer. Eine ältere App lehnt neuere Formate ab, statt sie falsch zu lesen.node scripts/alte-daten-einfrieren.mjs <commit> <version>); tests/unit/alte-daten.test.ts prüft, dass jede neue Version sie genau so liest.src/
types.ts Datenmodell (Eintrag, Projekt, Ereignis)
db.ts IndexedDB, additive Migrationen
store.ts Ereignis-Log → Zustand, Aktionen, Backup, Kompatibilitätsregeln
sync.ts Verschlüsselter GitHub-Sync
crypto.ts Verschlüsselung (Web Crypto API)
icons.ts Kontext-Symbole
notes.ts Release Notes lesen („Was ist neu“ nach einem Update)
ui.ts Ansichten, Dialoge, Einstellungen
main.ts Start, Service Worker, Update-Hinweis
styles.css, cards.css Gestaltung
public/ Manifest, Service Worker, Icons
tests/unit/ Unit-Tests (bun test), alte Datenstände in tests/unit/alte-daten/
RELEASE-NOTES.md Neuerungen je Version (wird in die App eingebaut)
e2e/ End-to-End-Tests (Playwright Test), Aufbau in docs/TESTKONZEPT.md
.github/workflows/veroeffentlichen.yml Build und Veröffentlichung