Traza — Un cuaderno de cata de café, de origen a tu gusto
30 de septiembre de 2026
Visión general
Traza es un cuaderno de cata de café — de origen a tu gusto. Cada café que pruebas se convierte en un pour: una página de tu cuaderno de campo que captura el café, cómo lo preparaste (método, dosis, rendimiento, molienda, temperatura, tiempo, ratio), un puntaje de cata SCA, tus notas de sabor y dónde lo tomaste. Con el tiempo esos pours forman un perfil de gusto —Mi Traza— que te dice qué probar después, te conecta con quienes cultivaron el café y te deja comprárselo directamente.Son dos cosas construidas para encajar: una app en Flutter para iOS, Android y web, y un sitio web acompañante. Diseñé y construí ambos, y se está lanzando como beta de TestFlight.Piénsalo como un «Untappd para el café», pero apuntado a la trazabilidad y al productor, no solo al check-in.
Por qué existe
Quien toma café de especialidad cata constantemente y no recuerda casi nada. Tienes una taza increíble, piensas anotar el tostador y el proceso, y una semana después se esfumó. Mientras tanto, quienes de verdad cultivaron el café son invisibles justo en el momento en que te enamoras de él.Traza cierra las dos brechas. Para quien bebe es memoria y un mapa de paladar: qué probé, qué me encantó, qué pruebo después. Para el productor y el tostador es una línea directa con la persona que disfruta su café — una página verificada, un catálogo y ventas de comercio justo sin intermediario. El cuaderno de cata es el anzuelo; la conexión con el origen es el punto.
La app
Una arquitectura, hecha para cambiar su backend. Toda la app corre detrás de una única interfaz de repositorio. Una implementación en memoria con datos sembrados corre toda la experiencia, y una implementación en Firestore encaja detrás de la mismísima interfaz sin cambios en la UI. Esa costura permitió diseñar y probar las pantallas contra datos realistas mucho antes de que existiera el backend, y el paso a cuentas reales nunca tocó la capa de UI.Un modelo de dominio de verdad. Los datos están modelados como funciona el café: un tostador vende cafés, un café (lugar) es un sitio, una guía de preparación es una receta cronometrada, un puntaje de cata es el formulario SCA completo de 0 a 100, y un pour es el check-in que une un café, una preparación y una valoración. Ese rigor es lo que permite que la app sea a la vez un check-in casual y una herramienta seria de cata, según quién la tenga en la mano.Un producto social de verdad, no una app de listas. Tiene feed, descubrimiento, follows, likes y comentarios, y una repisa de los cafés que guardaste. Toda la mecánica social que tiene que ser confiable —las notificaciones, los conteos agregados, la moderación— corre en el servidor con Cloud Functions y no en el cliente: seguir a alguien le avisa, un like o comentario avisa al autor (nunca por los propios, nunca en pours borrador), los reportes se gestionan y los admins pueden hacer broadcasts a una audiencia elegida. Poner esa lógica en el servidor es lo que evita que los conteos mientan y que las notificaciones se falsifiquen.Dos tipos de cuenta. Junto a las cuentas personales hay un lado de negocio para tostadores y cafeterías: una página reclamable y verificada con catálogo, insights de café, un menú «en barra» y una página de local. Un admin revisa el reclamo, y la aprobación estampa el perfil comercial en la cuenta — así una página de tostador verificada significa algo, porque una persona la revisó.Seguridad que vive en la base de datos. Las reglas de Firestore acotan los datos personales y sociales a su dueño, dejan que cualquier usuario autenticado contribuya al catálogo compartido (el flujo de contribuir-un-café depende de ello) permitiendo editar solo al contribuyente, al dueño del tostador o a un admin, y no permiten borrar nada. Las reglas son su propio artefacto revisado, con el endurecimiento para producción escrito como pendientes explícitos en vez de asumido.
El look: Cuaderno del Valle
Traza no se ve como una base de datos, y ese es todo el punto. El lenguaje de diseño —Cuaderno del Valle— es papel cálido y tinta carbón con acentos carmesí y oro, bordes temblorosos dibujados a mano, fotos tipo polaroid pegadas con cinta y anotaciones manuscritas en Caveat sobre una serif de display Cormorant Garamond. Registrar un café debe sentirse como escribir en un cuaderno de campo gastado, no como llenar un formulario. El mismo lenguaje pasa de la app al sitio web, para que el producto se sienta como un solo objeto en cada superficie.
El sitio web
El sitio acompañante, construido con Next.js y totalmente pre-renderizado a HTML estático, hace tres trabajos a la vez.
Vende la idea — una página editorial, verde bosque, con scroll estilo Apple y la marca de huella dactilar de Traza, que explica el descubrimiento según tu gusto, conocer el origen de un café y comprarlo directo al productor en términos de comercio justo.
Es la cara pública del contenido de la app. Los pours, cafés y perfiles tienen páginas web reales (/p, /c, /u), así que cuando alguien comparte un pour se abre como una página de verdad con sus previews correctos — el bucle de compartir-un-pour aterriza en la web, y luego un deep link de «abrir en la app» entrega al visitante a la app.
Capta demanda con una lista de espera de la beta y carga lo esencial poco glamoroso que un producto real necesita: privacidad, términos, una superficie de admin y español/inglés en todo.
App: Flutter, Riverpod para el estado, go_router para la navegación, un solo código para iOS, Android y web.
Backend: Firebase — Auth, Firestore, Storage, Cloud Messaging y Crashlytics, con Cloud Functions (Node) para notificaciones, conteos agregados y moderación.
Arquitectura: una costura de repositorio con implementaciones intercambiables en memoria y en Firestore; reglas de seguridad de Firestore escritas a mano con su propia suite de pruebas; 32 archivos de prueba en la app.
Sitio web: Next.js (App Router), pre-renderizado estático, con Firebase para la lista de espera y las páginas públicas de perfil, bilingüe (ES/EN).
Lanzamiento: Fastlane con una API key de App Store Connect para builds de TestFlight sin intervención; pistas de beta interna y externa.
Retos y aprendizajes
Diseñar contra un backend que aún no existía. La costura de repositorio fue la decisión de mayor apalancamiento del proyecto. Al hacer que la UI dependiera de una interfaz y no de Firestore, toda la app pudo construirse, demostrarse y probarse con datos sembrados, y el backend real se deslizó por debajo sin reescribir la UI. Es la diferencia entre «lo diseñamos cuando esté la API» y diseñar desde el primer día.La confianza tiene que vivir en el servidor. En un producto social el atajo tentador es calcular conteos y disparar notificaciones desde el cliente. Así es exactamente como los conteos se desvían y las notificaciones se falsifican. Mover cada mecánica sensible a la confianza a Cloud Functions fue más trabajo y la única forma honesta de construirlo.Una página verificada es una decisión humana. El flujo de reclamar-y-verificar para tostadores y cafeterías solo significa algo porque un admin lo revisa y la aprobación literalmente estampa el perfil. Diseñar ese camino de moderación —reclamos, resoluciones, broadcasts, reportes— fue tanto del producto como las pantallas de cata.Aquí la belleza es una función de retención. Una app de cata vive o muere según si la gente sigue registrando. La estética de cuaderno no es decoración; es la razón por la que abrir la app se siente como un pequeño ritual en vez de ingreso de datos, y los rituales son los que hacen volver a la gente.
Resultado
Un producto de café de dos lados funcionando en beta: un cuaderno de cata que recuerda cada taza y la convierte en un paladar, una capa social que conecta a quienes beben, y un lado de negocio verificado que pone a tostadores y productores al otro extremo de esa conexión — todo bajo un mismo lenguaje visual dibujado a mano, compartido entre una app en Flutter y un sitio acompañante estático. La arquitectura está hecha para escalar de datos de demo sembrados a cuentas reales sin reescribir, y todo gira en torno a una sola promesa: del origen, a tu gusto.