Ledge.sh ist ein Notizbuch für Entwickler und DevOps, das Markdown-Dateien in Live-Befehlszeilen-Sitzungen umwandelt. Schreiben Sie eine Notiz, drücken Sie ⌘↩ auf einem Codeblock, und die Ausgabeströme erscheinen darunter. Die Shell läuft in einem persistenten Container, der an die Notiz angehängt ist, sodass ein cd-Befehl, eine exportierte Variable oder eine virtuelle Umgebung, die in einer Ausführung aktiviert wurde, in die nächste übernommen wird.
Das Unternehmen veröffentlicht wöchentliche Wachstums-Updates mithilfe von API-Aufrufen und SQL-Abfragen, die direkt aus der Notiz gezogen werden. Letzte Woche zeigte das Update 38 Upgrades: Newsletter 17, Dokumentation 12, Empfehlungen 9.
Anmeldungen nach Plan
Eine Abfrage zählt Anmeldungen nach Plan:
| Plan | Anzahl |
|---|---|
| Free | 1204 |
| Pro | 187 |
Eine weitere Abfrage zählt Upgrades nach Quelle:
sql
select source, count(*) as upgrades from accounts where upgraded_at >= now() - interval '7 days' group by source order by upgrades desc;
Abrechnungsbefehle
Das Unternehmen veröffentlicht außerdem die Rohbefehle, die zur Überprüfung der Abrechnung verwendet werden, einschließlich eines Curl-Aufrufs an die Stripe-API und einer pytest-Ausführung auf einer Testdatei für Rückerstattungen:
bash
curl -fsSL https://ledge.sh/server.sh | sh
python
import json
subs = json.load(open("subs.json"))["data"]
mrr = sum(s["plan"]["amount"] for s in subs) / 100
print(f"{len(subs)} subscriptions, +${mrr:,.0f} MRR")
Synchronisierung ohne Datenbank
Ledge-Notizen sind einfache Dateien in gewöhnlichen Ordnern. Sie synchronisieren sich mit iCloud Drive, Dropbox, git, Syncthing oder was auch immer Sie bereits verwenden. Es gibt keine Datenbank im Hintergrund.
Sperren verschlüsseln den Inhalt einer Notiz auf der Festplatte hinter einem Passwort. Agenten sehen diesen nicht, Synchronisierungsdienste übertragen Chiffretext, und das Lesen erfordert eine Entsperrung.
Was im Shell läuft
Die Shells unterstützen Python, Node, Ruby und PHP ab Werk. Ein redis-Block speist redis-cli, auf Staging oder Prod verwiesen durch die REDIS_URL der Notiz. TypeScript verwendet die Bun-Laufzeitumgebung, die im Lieferumfang der App enthalten ist, sodass ts-Blöcke ohne Installation ausgeführt werden können.
Backup und Wiederherstellung
Ledge legt alle Stunde eine verschlüsselte Kopie der Notizen in einem S3-kompatiblen Bucket ab. Eine Backup-Wiederherstellungs-Drillsatz verwendet die AWS-Schlüssel aus dem Bereitstellungsprofil:
bash
aws s3 ls s3://ledge-api-backups/nightly/ | tail -2
Was wir daraus machen
Die Gewohnheit des Unternehmens, Rohbefehle zusammen mit der Notiz zu veröffentlichen, ist ungewöhnlich nützlich. Jeder, der Ledge’s Wachstums-Updates liest, erfährt genau, wie die Zahlen berechnet wurden, nicht nur, was sie sind.
Das Tool selbst löst ein echtes Problem: das Beibehalten von Notizen, die laufenden Code enthalten, lesbar, teilbar und synchron über Maschinen hinweg, ohne den Kontext zu verlieren. Die Shell, die jeder Notiz beigefügt ist, bedeutet, dass ein cd-Befehl heute in die Ausführung von morgen übergeht, und eine Notiz, die auf einem Laptop beginnt, kann später auf einem Server ausgeführt werden, auf den über ssh zugegriffen wird.
Ledge liefert einen MCP-Server, der Claude Code verbindet und jedem MCP-Agenten ermöglicht, Ihre Notizen zu lesen, zu suchen, zu erstellen und zu bearbeiten. Das eröffnet einen Weg zur Automatisierung der Notizerstellung und -bearbeitung über das hinaus, was ein einzelner Benutzer eintippen kann.
Die Kombination aus einfachen Dateien, persistenten Shells und Synchronisierung ohne Datenbank bedeutet, dass Ledge plattformübergreifend funktioniert, ohne einen einzelnen Workflow vorzuschreiben. Die iPhone- und iPad-App liest, bearbeitet und führt aus, was sich auf dem Server befindet, und die Desktop-App ist nur ein Fenster zu demselben Server.
Ausgangsmaterial: „Show HN: Ledge.sh – Runnable Markdown Notes,” ledge.sh.
Das Notizbuch abonnieren.
Die besten Geschichten des Tages und jedes neue Urteil, in klarem Deutsch, um sieben im Postfach. Eine Mail am Tag, nicht mehr.

