Posta
Una red de delivery en un monorepo: landing, admin de operaciones, tres apps móviles y una API.

Posta coordina una red de cadetes independientes para comercios locales. Conseguía clientes con publicidad en redes y los gestionaba por WhatsApp. Ese proceso manual no escalaba. Comercios, cadetes y clientes necesitaban cada uno su app, y la operación un lugar para verlo todo.
Tres decisiones que lo definieron.
- 01
Tipos de punta a punta, de la API al admin
Por qué. El admin importa el tipo AppRouter de la API en Hono y la llama por tRPC. Los schemas de Zod viven en un paquete que usan la API y las tres apps móviles.
El costo. Admin y API quedan acoplados en el build. Las apps móviles todavía llaman a los procedimientos por nombre y pierden parte de esa seguridad.
- 02
WebSocket para lo urgente, polling alineado para el resto
Por qué. La posición y el estado de los cadetes llegan por WebSocket y parchean el caché de TanStack Query. El resto se consulta cada múltiplos de 15 segundos. Los temporizadores coinciden y tRPC junta esas llamadas en una request.
El costo. Dos canales de datos para tener en la cabeza. Lo que se consulta por polling puede tener hasta un minuto de atraso, a propósito.
- 03
MapLibre con un estilo armado desde los design tokens
Por qué. Mapbox cobraba por carga de mapa y pedía la clave del cliente. MapLibre con tiles de OpenFreeMap no necesita clave. El estilo se arma en código con los design tokens, así el mapa usa los colores del producto.
El costo. Dependemos de un servicio de tiles gratuito y sin SLA. La URL es configurable, así que se puede pasar a uno pago o propio.




Posta
Una red de delivery en un monorepo: landing, admin de operaciones, tres apps móviles y una API.
- Rol
- Diseño y desarrollo full-stack
- Stack
- React + TanStack Router/Query, tRPC, Hono, Expo, MapLibre GL, Astro

Posta coordina una red de cadetes independientes para comercios locales. Conseguía clientes con publicidad en redes y los gestionaba por WhatsApp. Ese proceso manual no escalaba. Comercios, cadetes y clientes necesitaban cada uno su app, y la operación un lugar para verlo todo.
Tres decisiones que lo definieron.
Tipos de punta a punta, de la API al admin
Por qué. El admin importa el tipo AppRouter de la API en Hono y la llama por tRPC. Los schemas de Zod viven en un paquete que usan la API y las tres apps móviles.
El costo. Admin y API quedan acoplados en el build. Las apps móviles todavía llaman a los procedimientos por nombre y pierden parte de esa seguridad.
WebSocket para lo urgente, polling alineado para el resto
Por qué. La posición y el estado de los cadetes llegan por WebSocket y parchean el caché de TanStack Query. El resto se consulta cada múltiplos de 15 segundos. Los temporizadores coinciden y tRPC junta esas llamadas en una request.
El costo. Dos canales de datos para tener en la cabeza. Lo que se consulta por polling puede tener hasta un minuto de atraso, a propósito.
MapLibre con un estilo armado desde los design tokens
Por qué. Mapbox cobraba por carga de mapa y pedía la clave del cliente. MapLibre con tiles de OpenFreeMap no necesita clave. El estilo se arma en código con los design tokens, así el mapa usa los colores del producto.
El costo. Dependemos de un servicio de tiles gratuito y sin SLA. La URL es configurable, así que se puede pasar a uno pago o propio.



