Activo / En producción · 2026

TUERCA

Gestión de servicios de campo desde el celular

App de gestión para equipos de servicio técnico: trabajos, rutas, insumos y cobros. Publicada en Google Play y en producción.

Rol

Desarrollador Único & Arquitecto

Contexto

Activo / En producción

Año

2026

Enlaces

Tecnologías: React NativeExpotRPCDrizzle ORMPostgreSQLBetter-AuthSupabase

Resumen

TUERCA es una plataforma de gestión de servicios de campo para empresas de servicios chicas y medianas: órdenes de trabajo, rutas de varias paradas, insumos, cobros en campo y roles de equipo. Corre como app React Native publicada en Google Play, con un backend multi-tenant atrás.

El problema

TUERCA arrancó como un dashboard SaaS web para profesionales de servicios. Los flujos estaban bien, el uso no: el que necesita los datos es el técnico, y el técnico está en un techo, en un sótano o en la camioneta, nunca frente a un escritorio. Lo que pasaba durante el día terminaba tipeándose de noche, de memoria.

Así que el producto tenía que mudarse a donde pasa el trabajo. Eso significaba rehacerlo como app móvil, no envolver la web.

Dashboard principal: resumen en tarjetas
Lista de trabajos: órdenes filtrables

Decisiones

  • React Native con Expo: un solo codebase para iOS y Android, y actualizaciones over the air para que un fix llegue al técnico sin esperar la revisión de la store.
  • Mantuve tRPC en la migración: los tipos que ya tenía la web los reusó el cliente móvil, así que lo que se reescribió fue la capa de UI y no la API.
  • Drizzle ORM con PostgreSQL: schema tipado y migraciones versionadas, algo que importa cuando la misma base sirve a varias organizaciones.
  • Multi-tenant desde el schema, con Better-Auth manejando sesiones y un sistema de roles Propietario / Admin / Miembro: en una empresa de servicios, quién ve la facturación y quién solo cierra sus trabajos no es un detalle.
  • Optimización de rutas en vez de un mapa: el técnico recibe una lista de paradas y la app la convierte en una ruta ordenada, y cada parada abre Google Maps con un tap para la navegación giro a giro. Nunca la idea fue hacer el navegador, era ordenar el día.
  • Sincronización con el calendario nativo: los trabajos se empujan al calendario del dispositivo, así la agenda aparece donde el técnico ya mira.
  • NativeWind para la UI: el mismo vocabulario de utilidades que la versión web, con dark mode primero porque la app se lee al aire libre y en lugares mal iluminados.
  • Tests end to end con Maestro sobre un emulador: los flujos críticos (registro, crear un trabajo, cerrarlo) se ejercitan como gestos reales, así una actualización no puede romper en silencio lo que un equipo usa todas las mañanas.
Panel de rutas: planificación multi-parada
Ruta en ejecución: navegación en campo

Ciclo de vida del trabajo

El ciclo completo de un trabajo vive dentro de la app, desde la creación hasta el cobro:

  • Creación con asignación de cliente, prioridad y programación.
  • Línea de tiempo de actividades: los técnicos registran novedades desde el campo mientras el trabajo avanza.
  • Seguimiento de insumos: materiales usados, cantidades y costo por trabajo.
  • Registro de pagos: cobros en campo asociados a cada orden.

Cada cambio de estado se sincroniza en el equipo, así la oficina ve cerrar un trabajo al mismo tiempo que el técnico.

Creación de trabajo: flujo de asignación rápida
Detalle del trabajo: vista completa de la orden
Feed de actividades: reporte en tiempo real desde el campo
Seguimiento de pagos: cobros en campo
Registro de insumos: materiales y costos
Gestión de clientes: contacto e historial
Panel de equipo: vista general de miembros
Edición de roles y permisos

Test E2E: flujo de registro

Test automatizado con Maestro: registro de usuario y onboarding (emulador)

Resultado

TUERCA está en producción y publicada en Google Play, usada por equipos técnicos para resolver el día desde el celular: reciben la ruta, ejecutan las paradas, cargan insumos y registran lo que cobraron, sin una segunda pasada en la oficina.

La migración me confirmó lo que me importaba: con una API tipada de punta a punta y acceso a datos puro, pasar de web a React Native fue reescribir la UI y no rehacer el producto. Y Maestro convirtió el proceso de release móvil en algo que puedo repetir sin cruzar los dedos.