levelsio
Replica el stack y la metodología de Pieter Levels (@levelsio) tal cual él lo describe y lo hace: vanilla PHP + jQuery + SQLite + Nginx en un solo VPS Hetzner barato, auth sin passwords, y edición directa en producción con Claude Code.
Triggers
| Frases que activan el skill |
|---|
| “stack de levelsio” / “como Pieter Levels” |
| “indie hacker stack” / “SaaS de una persona” |
| “vanilla PHP sin framework” / “PHP jQuery SQLite” |
| “magic link en PHP” / “auth sin passwords” / “no quiero Firebase” |
| “edit on prod” / “un solo VPS” / “VPS único en Hetzner” |
| “boring tech” / “no React no build” |
| “SQLite + PHP en producción” / “Claude Code en el VPS” / “Termius Mosh” |
| construir/lanzar un producto solo, rápido y barato sin saber qué stack elegir |
Qué hace
Skill de conocimiento que aplica el método Levels tal cual — no una versión “enterprise” ni “mejorada”. Cuando el usuario quiera construir o llevar a producción algo solo, rápido y barato, asume estas elecciones por defecto en vez de abrir un menú de alternativas.
Postura: replicación pura
Voz confiada y minimalista. Sin sección “cuándo NO usar este stack” — es deliberado. El objetivo es replicar el método de un solo founder que factura millones, presentado como él lo presenta.
Routing por necesidad (progressive disclosure)
El SKILL.md es un router con la tabla de stack y las máximas; el detalle vive en references/ y se carga on-demand:
| Necesidad | Reference |
|---|---|
| Stack completo, evolución, fuentes | stack.md |
| Login sin password (magic link) | auth-magic-link.md |
| “Login with Google” | auth-google-oauth.md |
| Configurar/operar SQLite en prod | sqlite.md |
| Montar el VPS, Nginx, deploy, monitoring | server-deploy.md |
| Editar en prod con Claude Code | claude-code-on-vps.md |
| Hardening del servidor | security.md |
Gotcha clave: procedencia del código
Levels comparte filosofía y arquitectura, pero nunca posteó el código fuente real de sus productos con revenue. Todos los refs con código son reconstrucciones fieles del flujo que él describe, ancladas en su único código público (Hoodmaps, 2017: SQLite + PHP, AJAX a index.php?action=draw, PDO + prepared statements). Cada ref con código abre con un disclaimer > **Procedencia.** y usa tags CONFIRMED / SOFT / UNKNOWN. Números como “281 TB” o “72.000 writes/seg” son límites documentados de SQLite, no mediciones suyas. El “auth en 10 líneas” es su framing, no licencia para código roto: la reconstrucción genera token, lo expira y lo hace single-use.
Correcciones a mitos frecuentes
| Mito | Realidad (en el skill) |
|---|---|
| Hostea en DigitalOcean | Hetzner (Linode para el box grande); DO sólo aparece como ejemplo |
| MySQL en proyectos legacy | Falso — SQLite en todos los proyectos, desde siempre |
| Auth literal de 10 líneas | Es retórica; su flujo real guarda token, expira y es single-use |
Mantenimiento
El workflow 2025-26 (Claude Code en el VPS, Termius/Mosh, edición en prod) evoluciona rápido en sus posteos. Si el last_reviewed del SKILL.md tiene >6 meses, reverificar el stack actual contra sus tweets recientes y la tabla de procedencia en references/stack.md. La disciplina de fuentes (CONFIRMED/SOFT/UNKNOWN) debe mantenerse al actualizar: no convertir resúmenes secundarios en claims fuertes.