Un Stack Alternativo para Desarrolladores que Buscan Algo Diferente
Como siempre hay desarrolladores que están buscando alternativas al stack convencional: no usar Next.js, no Supabase, no Node.js, etc. Este es un stack alternativo que está ganando bastante tracción y que vale la pena conocer si te aburriste de hacer siempre lo mismo.
El stack en cuestión es este:
- Web Frontend: TanStack Start
- Backend: Convex
- Auth: Better-Auth
- Package Manager / Runtime: Bun
- Linter: Oxlint
- Monorepo: Turborepo
Vamos a desglosar cada pieza y explicar contra qué tecnología "convencional" compite y por qué la gente la está adoptando.
TanStack Start (en lugar de Next.js)
Mientras Next.js domina el ecosistema React, TanStack Start se está posicionando como la alternativa para quienes quieren algo más type-safe y menos opinionado. Está construido sobre Vite y Nitro, ofrece SSR, streaming, server functions y un enrutamiento 100% type-safe basado en archivos.
Lo interesante es que viene del mismo equipo de TanStack Query y TanStack Router, así que si ya usas esas librerías, la curva de aprendizaje es prácticamente nula. Y a diferencia de Next.js, no estás casado con Vercel ni con un modelo de despliegue específico: corre donde corra Node (o Bun).
Convex (en lugar de Supabase / Firebase)
Convex es un backend-as-a-service reactivo. Te da base de datos, funciones serverless (queries, mutations, actions), suscripciones en tiempo real, file storage y cron jobs. Todo en TypeScript end-to-end.
La diferencia con Supabase es que Convex está pensado desde cero para TypeScript: no escribes SQL, escribes funciones tipadas, y los datos se sincronizan automáticamente con el cliente. Cuando un dato cambia en la base, tu UI se actualiza sola sin que tengas que escribir lógica de revalidación. Se siente como Firebase, pero mucho más moderno y con mejor DX para desarrolladores TS.
Better-Auth (en lugar de NextAuth / Auth.js)
Better-Auth es una librería de autenticación framework-agnostic para TypeScript. Soporta email/password, OAuth (Google, GitHub, etc.), magic links, 2FA, passkeys y organizations.
Su gran ventaja sobre NextAuth es que no está atada a Next.js. Funciona igual en TanStack Start, Hono, Express, o cualquier framework JS. Esto la hace mucho más flexible para arquitecturas que no dependen de un solo framework, y la API es bastante más limpia que la de Auth.js.
Bun (en lugar de Node.js + npm)
Bun es un runtime de JavaScript escrito en Zig que también funciona como package manager, bundler y test runner. Es muchísimo más rápido que Node + npm/pnpm/yarn.
Mucha gente lo usa solo como bun install (porque la velocidad es brutal) y siguen corriendo Node en producción. Pero en este stack se aprovecha completo: instalación, ejecución y bundling. Ya está estable para producción en bastantes casos de uso, y la API web estándar (Request, Response, fetch) viene built-in sin necesidad de polyfills.
Oxlint (en lugar de ESLint)
Oxlint es un linter escrito en Rust, parte del proyecto Oxc. Es entre 50 y 100 veces más rápido que ESLint.
Todavía no reemplaza a ESLint al 100% porque no soporta todas las reglas ni plugins, pero para CI, pre-commit hooks y validación rápida durante el desarrollo, la diferencia de velocidad es enorme. Mucha gente lo está usando en combinación con ESLint: Oxlint para los chequeos rápidos, ESLint solo para las reglas que Oxlint todavía no implementa.
Turborepo (para gestionar el monorepo)
Turborepo no es exactamente una "alternativa" en el mismo sentido que las anteriores, sino la pieza que une todo cuando trabajas con múltiples apps o paquetes en un mismo repositorio. Hecho por Vercel y reescrito en Rust, te permite cachear tareas (build, lint, test) tanto local como remotamente, ejecutar en paralelo, y solo correr lo que cambió.
Si tu proyecto tiene una app web, una landing, una app móvil y un par de paquetes compartidos, Turborepo te ahorra muchísimo tiempo en cada build.
¿Vale la pena adoptar este stack?
Depende. Si ya tienes proyectos productivos en Next.js + Supabase + NextAuth, no hay razón urgente para migrar. Pero si estás iniciando un proyecto nuevo y quieres explorar lo más bleeding-edge del ecosistema TypeScript, este stack tiene varios puntos a favor:
- Velocidad de DX: Bun + Oxlint + Turborepo hacen que todo se sienta instantáneo
- Type safety end-to-end: desde el routing hasta la base de datos, todo tipado
- Menos vendor lock-in: Better-Auth y TanStack Start no te atan a un único framework o proveedor
- Reactividad gratis: con Convex, el real-time deja de ser algo que tienes que implementar manualmente
La desventaja obvia es que la comunidad y el ecosistema todavía son más pequeños que los de Next.js + Supabase. Para problemas raros vas a encontrar menos respuestas en Stack Overflow, menos tutoriales en YouTube, y menos librerías ya hechas. También es un stack que está cambiando rápido, así que prepárate para leer changelogs.
Pero como siempre, el mejor stack es el que te permite enviar tu producto. Si este enfoque te llama la atención, arma un proyecto pequeño y pruébalo. Vas a notar la diferencia desde el primer bun install.