Ledge.sh es un bloc de notas para desarrolladores y DevOps que convierte archivos Markdown en sesiones de línea de comandos activas. Escribe una nota, presiona ⌘↩ en un bloque de código, y los flujos de salida aparecen debajo. La shell se ejecuta en un contenedor persistente adjunto a la nota, de modo que un comando cd, una variable exportada o un virtualenv activado en una ejecución se lleva a la siguiente.
La empresa publica actualizaciones semanales de crecimiento utilizando llamadas de API y consultas SQL extraídas directamente de la nota. La actualización de la semana pasada mostró 38 actualizaciones: newsletter 17, docs 12, referrals 9.
Inscripciones por Plan
Una consulta cuenta las inscripciones por plan:
| Plan | Conteo |
|---|---|
| Gratis | 1204 |
| Pro | 187 |
Otra consulta cuenta las actualizaciones por fuente:
sql
select source, count(*) as upgrades from accounts where upgraded_at >= now() - interval '7 days' group by source order by upgrades desc;
Comandos de Facturación
La empresa también publica los comandos de facturación sin procesar utilizados para verificar la facturación, incluyendo una llamada curl a la API de Stripe y una ejecución de pytest en un archivo de prueba de reembolso:
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")
Sincronización Sin una Base de Datos
Las notas Ledge son archivos planos en carpetas comunes. Se sincronizan con iCloud Drive, Dropbox, git, Syncthing o cualquier otro que ya utilice. No hay una base de datos aparte.
El bloqueo cifra el cuerpo de una nota en el disco mediante una frase de contraseña. Los agentes nunca la ven, los servicios de sincronización transportan el texto cifrado y leerla requiere una apertura.
Lo que se Ejecuta en los Shells
Los shells soportan Python, Node, Ruby y PHP de forma nativa. Un bloque de redis alimenta redis-cli, apuntando a staging o producción según la REDIS_URL de la nota. TypeScript utiliza el runtime Bun incluido en la aplicación, por lo que los bloques ts se ejecutan sin instalar nada.
Respaldo y Restauración
Ledge coloca una copia cifrada de las notas en un bucket compatible con S3 cada hora. Un ejercicio de restauración de respaldo utiliza las claves de AWS del perfil de implementación:
bash
aws s3 ls s3://ledge-api-backups/nightly/ | tail -2
Lo que Hacemos de Esto
El hábito de la empresa de publicar comandos sin procesar junto con la nota es inusualmente útil. Cualquiera que lee las actualizaciones de crecimiento de Ledge aprende exactamente cómo se calcularon los números, no solo cuáles son.
La herramienta en sí misma resuelve un problema real: mantener las notas que contienen código en ejecución legibles, compartibles y sincronizadas en diferentes máquinas sin perder contexto. El shell adjunto a cada nota significa que un comando cd hoy se extiende a la ejecución de mañana, y una nota que comienza en una computadora portátil puede ejecutarse más tarde en un servidor accedido a través de ssh.
Ledge incluye un servidor MCP que conecta Claude Code y permite a cualquier agente MCP leer, buscar, crear y editar sus notas a través de él. Eso abre un camino para automatizar la creación y edición de notas más allá de lo que un solo usuario puede escribir.
La combinación de archivos planos, shells persistentes y sincronización sin una base de datos significa que Ledge funciona en diferentes plataformas sin forzar un único flujo de trabajo. La aplicación de iPhone y iPad lee, edita y ejecuta lo que está en el servidor, y la aplicación de escritorio es solo una ventana a ese mismo servidor.
Material fuente: “Show HN: Ledge.sh – Runnable Markdown Notes,” ledge.sh.
Recibe El Cuaderno.
Las mejores historias del día y cada veredicto nuevo, en español claro, en tu correo a las siete. Un correo al día, nada más.

