// ARTÍCULO
De Express a Hono: lo que aprendí portando mi API
Luis · 14 de octubre de 2026
Hono sobre estándares web, validación con Zod y RPC tipado: notas reales de la migración de este blog.
Por qué Hono y no Express
Express es maduro pero su tipado es flojo y no trae validación. Hono está construido sobre Request/Response estándar, es TypeScript-first y se integra con Zod vía @hono/zod-validator.
Tres cosas que me sorprendieron
1. Validar antes de tocar la DB
const querySchema = z.object({
page: z.coerce.number().int().min(1).default(1),
limit: z.coerce.number().int().min(1).max(150).default(10),
});
Los query params llegan como strings: z.coerce los convierte antes de validar. Contrato primero, lógica después.
2. El JWT sin sesiones por request
La API del CMS verifica el JWT contra el JWKS de Better Auth con jose. Stateless: no toca la DB en cada request, solo para comprobar el rol ADMIN.
3. Rate limiting distinto por audiencia
La API pública limita escrituras anónimas a 10/min. El CMS, con autor autenticado, permite 60/min. La seguridad también es UX.
Código de este blog
Las rutas viven en apps/api-public/src/routes/ y apps/api-cms/src/routes/. Los contratos compartidos, en packages/types.
// COMPARTIR