Cómo operar varias empresas con $10K de ingresos mensuales usando un stack de $20 al mes
(stevehanov.ca)- Estrategia de bootstrapping para operar varias empresas SaaS con más de $10K de MRR con costos de infraestructura por debajo de $20 al mes, usando un solo VPS, el lenguaje Go, SQLite y una GPU local
- En lugar de AWS o una orquestación compleja en la nube, ejecutar todos los servicios en un único VPS de 5 a 10 dólares, concentrándose en procesar solicitudes y no en administrar infraestructura
- Elegir Go como lenguaje backend para obtener un proceso de despliegue extremadamente simple: compilar a un único binario y desplegarlo en el servidor sin gestionar dependencias
- Ejecutar VLLM en una GPU local (RTX 3090) para llevar a cero el costo del procesamiento por lotes de IA, y usar modelos frontier solo en funciones orientadas al usuario a través de OpenRouter
- Incluso sin capital de riesgo, si los costos se mantienen prácticamente en cero, se puede asegurar una runway prácticamente infinita y ganar suficiente tiempo para encontrar product-market fit
Estrategia de operación de servidores lean
- La forma común de lanzar una web app en 2026 es aprovisionar un clúster de EKS, una instancia de RDS y un NAT Gateway en AWS, lo que puede generar gastos de más de $300 al mes incluso sin un solo usuario
- Como alternativa, rentar un VPS de 5 a 10 dólares al mes en Linode o DigitalOcean y operar todo en un solo servidor
- Incluso 1 GB de RAM puede ser suficiente si se usa bien, y si hace falta margen extra se puede usar un swapfile
- Si solo hay un servidor, se puede saber exactamente dónde están los logs, por qué ocurrió un crash y cómo reiniciarlo
- La razón para elegir un VPS en vez de AWS es mantener costos predecibles y una arquitectura simple
Por qué elegir Go
- Python o Ruby consumen la mitad de la RAM solo con arrancar el intérprete y administrar workers de gunicorn
- Go ofrece mucho mejor rendimiento para trabajo web, tiene un sistema de tipos estricto y, para 2026, es un lenguaje que los LLM pueden razonar con mucha facilidad
- La ventaja clave de Go es la simplicidad del proceso de despliegue: compilar toda la aplicación en un solo binario enlazado estáticamente, construirlo en la laptop, enviarlo al servidor con
scpy ejecutarlo - No hace falta sufrir el infierno de dependencias de
pip installni usar entornos virtuales, y aun así se puede implementar un servidor web de nivel producción sin frameworks inflados - Solo con la biblioteca estándar de Go es posible escribir un servidor capaz de procesar decenas de miles de solicitudes por segundo
IA local: llevar a cero el costo de los trabajos por lotes
- Si tienes una tarjeta gráfica en casa, ya es como si tuvieras créditos ilimitados de IA
- Al construir eh-trade.ca, se necesitó investigación bursátil cualitativa a gran escala analizando reportes trimestrales de miles de empresas, y usar la API de OpenAI habría podido costar cientos de dólares
- En su lugar, se ejecutó VLLM en una RTX 3090 (24 GB de VRAM) comprada por $900 en Facebook Marketplace, eliminando la necesidad de pagarle a un proveedor de IA
- Ruta de actualización para IA local:
- Empezar con Ollama: se configura con un comando de una sola línea (
ollama run qwen3:32b), permite probar varios modelos al instante y es ideal para iterar prompts - Pasar a producción con VLLM: Ollama se vuelve un cuello de botella con solicitudes concurrentes, mientras que VLLM usa PagedAttention y es muchísimo más rápido. Si se envían 8 a 16 solicitudes asíncronas al mismo tiempo, las procesa por lotes en la memoria de la GPU en casi el mismo tiempo que una sola solicitud
- Transformer Lab: cuando se necesita preentrenamiento o fine-tuning de modelos, se puede hacer fácilmente en hardware local
- Empezar con Ollama: se configura con un comando de una sola línea (
- Para administrar esto, se desarrolló laconic: una herramienta de investigación con agentes optimizada para una ventana de contexto de 8K, que "pagina hacia afuera" las partes innecesarias de la conversación, como un administrador de memoria virtual del sistema operativo, y mantiene solo los hechos clave en el contexto activo del LLM
- llmhub: una herramienta que abstrae todos los LLM como combinaciones de provider/endpoint/apikey para manejar sin fricción entradas y salidas de texto e imagen, ya sea en local o en la nube
Acceso a modelos frontier mediante OpenRouter
- No todo se puede procesar localmente, y para interacciones de chat orientadas al usuario y de baja latencia hacen falta modelos de razonamiento de punta como Claude 3.5 Sonnet o GPT-4o
- En lugar de administrar cuentas de facturación, API keys y límites de velocidad de Anthropic, Google y OpenAI por separado, todo se unifica con OpenRouter
- Basta con escribir una sola integración compatible con OpenAI para obtener acceso inmediato a todos los principales modelos frontier
- También ofrece fallback routing fluido: si la API de Anthropic falla, cambia automáticamente a un modelo equivalente de OpenAI, de modo que el usuario nunca ve una pantalla de error y no hace falta lógica compleja de reintentos
Codificación con IA rentable usando GitHub Copilot
- Mientras salen nuevos modelos caros cada semana, muchos desarrolladores gastan cientos de dólares al mes en suscripciones a Cursor y API keys de Anthropic
- En cambio, incluso usando Claude Opus 4.6 todo el día, el costo mensual casi nunca supera los $60
- El secreto es aprovechar el modelo de precios de Microsoft: comprar una suscripción a GitHub Copilot en 2023 y conectarla a VS Code estándar
- El truco clave de Copilot es que Microsoft cobra por solicitud, no por token, y una "solicitud" es simplemente una entrada en la caja de chat. Aunque el agente pase 30 minutos analizando toda la base de código y modificando cientos de archivos, eso cuesta apenas $0.04
- La estrategia óptima es escribir un prompt detallado con criterios de éxito estrictos, indicarle que "continúe hasta que todos los errores estén corregidos" y dejarlo correr
Usar SQLite como base de datos para todo
- Al iniciar un nuevo proyecto, siempre se usa sqlite3 como base de datos principal
- Desde una perspectiva enterprise, suele pensarse que hace falta un servidor de base de datos como proceso separado, pero en la práctica un archivo SQLite local que se comunica por interfaz C o memoria es varios órdenes de magnitud más rápido que un servidor Postgres remoto con saltos de red por TCP
- También hay un malentendido sobre la concurrencia: la idea de que SQLite bloquea toda la base de datos en cada escritura es incorrecta, y se resuelve activando Write-Ahead Logging (WAL)
- Con
PRAGMA journal_mode=WAL;yPRAGMA synchronous=NORMAL;, las lecturas y escrituras no se bloquean entre sí - Con un solo archivo
.dben una unidad NVMe, se puede atender a miles de usuarios concurrentes
- Con
- Para facilitar la implementación de autenticación de usuarios, se desarrolló la biblioteca smhanov/auth, que se integra directamente con la base de datos en uso y soporta registro, sesiones, restablecimiento de contraseña e inicio de sesión con Google/Facebook/X/SAML
Conclusión: construir una startup sin infraestructura compleja
- La industria tecnológica insiste en que para construir un negocio real hacen falta orquestación compleja, grandes facturas mensuales de AWS y millones de dólares en capital de riesgo, pero no es así
- Al combinar un solo VPS, binarios compilados estáticamente, trabajos de IA por lotes con hardware GPU local y la velocidad bruta de SQLite, es posible hacer bootstrapping de una startup escalable por el precio de unos cuantos cafés al mes
- Esto le da al proyecto una runway infinita, permitiendo dedicar tiempo a resolver problemas reales de los usuarios en vez de preocuparse por el burn rate
1 comentarios
Comentarios en Hacker News
En entornos empresariales existe una fuerte idea de que hay que usar un servidor de BD externo, pero en la práctica un archivo local de SQLite es mucho más rápido que un Postgres remoto cuando se comunica por interfaz C o en memoria
Claro, SQLite es excelente, pero si te conectas a Postgres por Unix domain socket en localhost, casi eliminas el overhead de red
Se puede usar sin mucha más dificultad que SQLite, aprovechar todas las funciones de Postgres, y además es mucho más fácil ejecutar reportes o configurar read replicas y HA
Ejecutar Postgres en el mismo servidor que la app está a un nivel totalmente distinto de decisión que montar de más un clúster de Kubernetes
Al correr una monolithic app en una sola máquina, Postgres no ofrece tantas funciones extra frente a SQLite
SQLite se puede extender directamente desde el lenguaje de la app con Application functions, y gracias a Litestream también mejoran mucho los respaldos y la replicación
Eso sí, la configuración por defecto no es buena: hay que separar las conexiones de lectura y escritura, y la app debe gestionar por sí misma la write queue
SELECT 1, Postgres tarda 2.77 segundos y SQLite (in-memory) 0.07 segundos, así que la diferencia es grande (enlace al benchmark)También habría sido posible con un servidor remoto, pero habría sido mucho más complejo
En su lugar, subíamos la BD a S3 y cada instancia descargaba una copia para procesar en paralelo. SQLite es una alternativa probada cuando se necesita rendimiento más que funcionalidades
Mucha gente cree que desde el principio hay que montar configuraciones complejas como serverless, Kubernetes, multi-zone HA
Si dices “simplemente puedes correrlo en un VPS barato”, te responden con “¿y el escalado?”, “¿y los respaldos?”, “¿y el mantenimiento?”, pero en realidad solo están repitiendo frases de marketing de la nube
Esa actitud se parece mucho a una impotencia aprendida
Por ejemplo, meter Shadcn, Tailwind, React, Zod y Vite a una SPA sencilla con unos cuantos formularios. La carga de mantenimiento es enorme
Ese stack puede ser la “respuesta correcta”, pero no es la respuesta adecuada para el contexto
Yo uso Linode o DigitalOcean y pago solo 5 a 10 dólares al mes. Con 1GB de RAM basta
Si juntas varios proyectos en un mismo servidor dedicado, puedes bajar todavía más el costo
Por ejemplo, uso uno de 40 euros al mes en la subasta de servidores de Hetzner y le pongo Proxmox para correr varias VM (enlace de Proxmox)
Incluso creando 15 VM, sale en unos 2.66 euros por VM, así que la eficiencia de costo a escala es muy alta
Si es hardware reacondicionado, los respaldos son obligatorios, pero de todos modos es algo que ya necesitas
Lugares como Hetzner, Contabo o Scaleway siguen siendo opciones baratas
Creo que el modo WAL de SQLite es el mayor factor de ahorro de costos
Python o Node también se pueden usar tan bien como Go. Un VPS de Hetzner con 4GB de RAM y 10TB de red cuesta como 5 dólares al mes
Eso sí, si usas un servidor dedicado, tienes que hacer respaldos frecuentes de la BD y encargarte tú mismo de la seguridad
Yo lo configuro limitando con Terraform el acceso SSH solo a mi IP, luego pongo Tailscale y cierro el puerto SSH público
Yo uso Backblaze B2, pero con Restic también se puede respaldar fácilmente a otros servicios
Incluso recientemente vi cómo se llenaban los logs de intentos SSH en una hora. Ahora desactivo el login por contraseña y solo entro con Tailscale
Un servidor expuesto a internet sí es realmente peligroso
Creo que el límite de 1GB de RAM es innecesario. Con 20 dólares al mes puedes tener 8GB de RAM y aprovecharlos para caché o para la BD
Una diferencia de 15 dólares no cambia gran cosa al operar un negocio. Pensar solo en ajustarse a un VPS de 5 dólares no ayuda al crecimiento del negocio
Antes corríamos bien stacks LAMP incluso con 128MB, y los sitios web de hoy tampoco son tan complejos
Sin caché, puedes aguantar 17 millones de requests al día, así que cuadruplicar la infraestructura antes de eso es un desperdicio
El modelo de 8GB de la Macbook Neo es un buen ejemplo de eso
WebSequenceDiagram parece un producto genial
Pero más difícil que la implementación técnica es encontrar un problema valioso y llegar a los usuarios. Ahí es donde está el verdadero valor
Estoy suscrito a GitHub Copilot desde 2023 y lo sigo usando conectado a VS Code
La clave es que Microsoft cobra por request. Aunque una sola request modifique código completo durante decenas de minutos, pago solo unos 0.04 dólares
Entonces escribo prompts muy específicos, le digo “continúa hasta que todos los errores estén resueltos” y me voy por un café. Es como si Satya Nadella estuviera subsidiando mis costos de cómputo
No aprendí nada nuevo del artículo. La mayor parte se sintió como consejos básicos envueltos por IA
Solo por el título pensé que iba a hablar de cómo encontrar ideas y lanzar con éxito
Por si alguien tenía la misma duda que yo, MRR significa “Monthly Recurring Revenue” (ingresos recurrentes mensuales)
Incluso he visto gente anunciar ARR después de apenas dos meses de operación
En muchos casos, pensar con mentalidad cloud aumenta innecesariamente la complejidad y el costo
La mayoría de los proyectos funcionan perfectamente con un VPS de tamaño medio
Nuestra empresa podía manejar una página con 600 mil usuarios en un VPS de 30 euros, pero al migrarla a AWS pasamos a pagar 800 euros al mes. No obtuvimos ningún beneficio
Si no hay una razón clara, conviene seguir con el enfoque simple de servidor que ha funcionado bien durante décadas
Según entiendo, incluso StackOverflow funciona con unos cuantos servidores root potentes