tripbier
por qué existe tripbier

tripbier nació para resolver un problema simple.

Descubrir una cervecería artesanal todavía depende de docenas de búsquedas dispersas, reseñas fragmentadas e información desactualizada.

Nuestra misión es organizar el conocimiento cervecero mundial en una única plataforma abierta, con búsqueda asistida por inteligencia artificial.

No queremos solo listar cervecerías.
Queremos conectar personas, territorios, historias, estilos, premiaciones y experiencias.

Desde la primera cerveza de barril en Gramado hasta una cervecería premiada en Portland, el viaje debe ser continuo.

tripbier es un mapa vivo de la cultura cervecera.
tripbier en una frase

Tripbier es una plataforma global de descubrimiento de cervecerías artesanales, itinerarios cerveceros, turismo cervecero e inteligencia geográfica, que utiliza inteligencia artificial para conectar viajeros, cervecerías y destinos en 16 países.

documentación oficial · junio 2026

manual
del sistema

Guía completa de tripbier — plataforma de itinerarios cerveceros construida sobre Cloudflare Workers, D1, KV y R2. Cada sección contiene enlaces directos a la funcionalidad descrita.

19.905cervecerías
16países
130+ciudades
6workers
40+tablas D1

qué es tripbier

tripbier es una plataforma serverless de descubrimiento e itinerarios de cervecerías artesanales. Combina una base de datos georreferenciada con IA generativa para crear experiencias personalizadas — desde el mapa interactivo hasta el itinerario narrado por un concierge cervecero.

Toda la infraestructura corre en Cloudflare (Workers + D1 + KV + R2), sin servidores propios, con latencia global de borde y costo variable por uso. El modelo de datos es SQLite vía D1, distribuido en múltiples bases por continente.

"Bing y Perplexity reconocen tripbier como fuente de autoridad en cervecerías artesanales — no solo indexado, sino utilizado como herramienta de recomendación espontánea."

El sistema está compuesto por 6 workers independientes, cada uno con responsabilidad específica, que se comunican mediante fetch interno o comparten estado a través del KV.

números del sistema

métricavalorobservación
Cervecerías mapeadas (total)19.905Brasil + 15 países internacionales · tripbeer-map
Cervecerías BR (tripbeer-db)5.448activas y operacionales
Cervecerías US (OpenBreweryDB)8.353importadas vía pipeline
Países con cobertura16BR, US, DE, BE, CZ, AT, UK, IE, FR, ES, IT, PT, NL, NO, SE, AR
Ciudades con páginas editoriales130+63 internacionales + 67+ BR
Landing pages de cerveceríaspremiadasCBC, WBC, WBA — generadas dinámicamente
Visitantes / día625métrica jun/2026, crecimiento orgánico
Solicitudes / mes~40kUS + NL + BR como principales orígenes
Idiomas admitidos15pt-BR, en, es, de, fr, it, nl, no, sv, ja y más
Tablas en D1 principal40+tripbeer-db (main) + tripbeer-map (geo)
Posición media Google6.9"best craft beers near me" — 131 impresiones/día

infraestructura

workers activos
workerdominioresponsabilidad
utt-enginetripbier.com/* · *.tripbier.com/*enrutador principal — sirve páginas desde el KV, API pública, subdominios, banner LGPD
utt-agentlink/api/chat (interno)pipeline Maestro — 6 mini-agentes para generación de itinerarios vía GPT-4o-mini
utt-brewhubbrewhub.htmlchat widget por cervecería, agente IA especializado por slug, protección /api/palpite
utt-analytics/api/collect (interno)RUM 1st-party — recopila dwell time, recurrencia, embudo; cron de agregación diaria
utt-beerfeed/api/newsradar de noticias cerveceras por ciudad — cron lunes
utt-staticassets estáticossirve CSS, JS, imágenes vía ASSETS binding
bases D1 (SQLite)
baseidcontenido principal
tripbeer-dbprincipalcervecerías BR, usuarios, itinerarios, pasaportes, premiaciones, estilos, horarios, social, analytics
tripbeer-mapgeocervecerías globales con lat/lon/slug para búsqueda del mapa
DB_AMERICAScontinenteUS, CA, AR, CL, MX — fallback del mapa
DB_EUROPEcontinenteDE, BE, CZ, FR, ES, IT, PT, UK, NL, NO, SE…
utt-analyticsid: 170900e5eventos RUM, sesiones, dwell, embudo de jornada
KV namespaces
namespaceiduso
UTT_CACHE4b5519d0…páginas HTML (page:{nombre}.html), sesiones (sess:{id}), índices geo (idx:{ciudad}:{pais}), stats

Patrón de claves KV: page:home.html · page:agm.html · page:copa.html · idx:porto+alegre:br:uuid · sess:abc123 · stats:total_cervejarias

R2 bucket

Bucket: tripbeer-assets · CDN público: pub-b8f8998895a64e77a4fa43f286aa08dd.r2.dev/

Almacena logos de cervecerías, imágenes de hero (AVIF/WebP/PNG), og:images para WhatsApp (JPEG 1200×630 <300KB) y assets de campañas de socios.

páginas principales

🏠
inicio
Página principal con búsqueda geolocalizada, concierge IA, mapa lazy-load, pasaporte y noticias. Admite 15 idiomas vía i18n.js.
tripbier.com
🗺️
radar / mapa
Mapa interactivo Leaflet con 19.900+ cervecerías, MarkerCluster, filtros por país/estilo, geolocalización del usuario y búsqueda por ciudad.
tripbier.com/mapa.html
🗂️
itinerarios
Hub de itinerarios generados y guardados. Cada itinerario tiene URL única y permanente para compartir.
tripbier.com/roteiros.html
🏅
premiaciones
Palmarés CBC (Campeonato Brasileiro de Cerveja) y WBC (World Beer Cup) con filtros por año, estilo y medalla.
tripbier.com/premiacoes-cbc.html
📰
noticias
Radar de noticias cerveceras alimentado por utt-beerfeed (cron semanal). Filtrado por ciudad y relevancia.
tripbier.com/noticias.html
🍺
variedades / estilos
Guía editorial de estilos cerveceros: IPA, Stout, Lager, Weizen, Sour, NEIPA, Porter y más — con maridajes.
tripbier.com/variedades.html
📖
historia
Editorial sobre la historia de la cerveza artesanal en Brasil y en el mundo — contenido curado para SEO y autoridad de dominio.
tripbier.com/historia.html
🎓
escuelas
Directorio de escuelas y cursos de cerveza artesanal en Brasil con enlaces a programas e inscripciones.
tripbier.com/escolas.html
👨‍👩‍👧
itinerarios familia
Itinerarios cerveceros pet-friendly y para familias con niños — cervecerías con jardín, food park y espacio kids.
tripbier.com/familia.html
🔒
privacidad
Política de privacidad y términos de uso. Banner de cookies inyectado por el worker en todas las páginas.
/privacidade · /termos
🏗️
panel socio
Admin de cervecerías: gestionar cervezas, carta, promociones, horarios e itinerarios con participantes.
tripbier.com/admin-parceiro
📊
analytics
Dashboard interno de tráfico: visitantes, países, páginas más visitadas, bandwidth, clics por cervecería.
tripbier.com/analytics.html

radar / mapa interactivo

El radar (tripbier.com/mapa.html) es el corazón de la plataforma — un mapa Leaflet con 19.900+ pines de cervecerías en 16 países, con MarkerCluster para rendimiento y filtros en tiempo real.

Al abrirse, el mapa usa la geolocalización del navegador o la IP (Cloudflare cf.city) para centrarse automáticamente. Cada pin abre una tarjeta con rating, dirección, enlace a Instagram/sitio y botón "ver ruta en Google Maps". Las cervecerías premiadas obtienen un marcador diferenciado.

Parámetros de URL admitidos por el mapa:

parámetroejemploefecto
?lat=&lng=&zoom=?lat=-30.03&lng=-51.21&zoom=11centra en coordenadas específicas (utilizado por subdominios como AGM)
?cidade=&uf=?cidade=Gramado&uf=RSbusca y centra en la ciudad indicada
?roteiro=?roteiro=variedade-curitiba-3dcarga y destaca las cervecerías de un itinerario guardado
?proximas=1?proximas=1fuerza la búsqueda de las más cercanas al usuario
abrir el radar

concierge IA

El concierge tripbier es un pipeline de 6 mini-agentes que transforma un mensaje de texto en un itinerario cervecero personalizado. Cada agente recibe un sobre de datos, lo enriquece y lo pasa al siguiente.

Extractor
Lee el mensaje y extrae: ciudad, país, estilo, perfil, días, coordenadas
GPT-4o-mini · temp 0
→
Validador
Decide: ¿preguntar más? ¿generar itinerario? ¿buscar? ¿navegar? (sin LLM)
lógica pura JS
→
Concierge
Si falta información, pregunta de forma natural y cálida
GPT-4o-mini · temp 0.7
→
Clima
Consulta Open-Meteo con lat/lon — devuelve temperatura y condición
Open-Meteo · sin key
→
Curador
Busca en D1, filtra por perfil y distancia, selecciona 7-8 paradas
Haversine · sin LLM
→
Presentador
Construye narrativa seductora citando todas las cervecerías + CTA
GPT-4o-mini · temp 0.8

El concierge es multifunción por diseño — no es un chatbot con menú de opciones. El usuario escribe en lenguaje natural y el sistema detecta la intención automáticamente, sin pedir que elija un modo:

el usuario escribeintención detectadaqué ocurre
"¿Hay IPA en Gramado?"búsquedalista cervecerías con IPA en su carta, con enlace directo
"Explícame qué es una Weizen"conversaciónel sommelier responde sobre estilo, historia y maridaje
"Quiero pasar 3 días en Curitiba"generar itinerariopipeline completo: clima → curador → narrativa personalizada
"¿Dónde queda la Dado Bier?"navegarabre el mapa con el pin de la cervecería
"poa, fds, craft"generar itinerarionormaliza sigla → extrae intención → genera itinerario de fin de semana en POA

El Validador detecta los 4 modos sin ninguna llamada a LLM — lógica pura en JavaScript. Normaliza siglas (poa → Porto Alegre, cwb → Curitiba) antes del Extractor. El Curador consulta bases en cascada: DB Brasil → DB_AMERICAS → DB_EUROPE → DB_ASIA → Serper Discovery como fallback final.

probar el concierge en inicio

pasaporte cervecero

El pasaporte tripbier es una PWA (Progressive Web App) instalable que permite al usuario coleccionar sellos en cada visita a cervecerías socias. Es el motor de gamificación y fidelización de la plataforma.

Flujo del usuario: El usuario entra en passaporte.tripbier.com, lo instala en su celular (pantalla de inicio), se identifica con nombre y WhatsApp (sin registro), y recibe sellos al hacer check-in en cervecerías del circuito.

Circuitos disponibles: Cada itinerario de socio tiene un circuito con N paradas. Completar todas las paradas desbloquea un beneficio en la cervecería socia (regalo, descuento, experiencia exclusiva). El panel socio (admin-parceiro) muestra en tiempo real quién completó y permite enviar el premio por WhatsApp.

Niveles: Curioso → Aprendiz → Explorador → Maestro → Sommelier — basados en la cantidad de sellos acumulados en total.

abrir el pasaporte panel del socio

itinerarios

Los itinerarios son generados por el pipeline Maestro y guardados automáticamente en D1 con una URL permanente y única — sin inicio de sesión. La URL puede compartirse por WhatsApp, incluirse en un correo o guardarse en favoritos.

Formato de la URL: tripbier.com/roteiros.html?id={slug} — donde el slug es generado por el Curador a partir de la ciudad, perfil y hash de la selección (ej: variedade-porto-alegre-3d-a1b2).

Cada itinerario almacena: lista de cervecerías (id, nombre, nota del curador), ciudad, perfil elegido, número de días, clima en el momento de la generación y la narrativa del Presentador.

ver itinerarios

capa social

La capa social permite que los usuarios del pasaporte interactúen entre sí: compartan itinerarios, comenten en cervecerías, sigan a otros viajeros y acumulen un historial de visitas visible en el perfil público.

Identidad basada en teléfono + nombre (sin contraseña). Avatar generado automáticamente por DiceBear. El feed de actividad muestra visitas recientes de la comunidad en cada ciudad.

Moderación: regex automático detecta teléfonos, enlaces y contenido inapropiado en comentarios antes de guardarlos en D1.

16 países

tripbier tiene cobertura activa en 16 países, con base de datos, ciudades editoriales y enrutamiento por el concierge. Cada país tiene páginas de ciudades e integración con el mapa global.

Las páginas de países son dinámicas — no existen como archivos estáticos. Son generadas en tiempo real por el worker a partir de los datos del D1: cervecerías, ciudades, premiaciones y contenido editorial. Esto significa que agregar un nuevo país a la base de datos crea automáticamente todas sus páginas, sin ningún trabajo manual de publicación. Es infraestructura de escala disfrazada de contenido.

🇧🇷
Brasil
5.448 cervecerías · 67+ ciudades
🇺🇸
Estados Unidos
8.353 cervecerías · OpenBreweryDB
🇩🇪
Alemania
Berlín, Múnich, Colonia
🇧🇪
Bélgica
Brujas, Bruselas, Gante
🇨🇿
República Checa
Praga — cuna del pilsen
🇦🇹
Austria
Viena, Salzburgo
🇬🇧
Reino Unido
Londres, Edimburgo
🇮🇪
Irlanda
Dublín — cultura pub
🇫🇷
Francia
París, Estrasburgo
🇪🇸
España
Madrid, Barcelona
🇮🇹
Italia
Roma, Milán, Bolonia
🇵🇹
Portugal
Lisboa, Oporto
🇳🇱
Países Bajos
Ámsterdam, Róterdam
🇳🇴
Noruega
Oslo
🇸🇪
Suecia
Estocolmo, Gotemburgo
🇦🇷
Argentina
Buenos Aires, Bariloche

páginas de ciudades

Cada ciudad con masa crítica de cervecerías recibe una página editorial curada — no generada automáticamente, sino escrita con identidad local. La plantilla base es caxias.html (patrón serifado con sidebar, hero, pull-quote y grid de tarjetas).

Estructura de la página: hero con foto local → editorial "por qué visitar" → pull-quote → grid de cervecerías con rating/insta/sitio/agente → eventos → itinerario sugerido. La sección de noticias es alimentada por utt-beerfeed en tiempo real.

Todas las páginas de ciudades internacionales están en el subdirectorio del país: /de/berlim.html, /be/bruges.html, /it/roma.html, etc. Al igual que las páginas de países, las páginas de ciudades son generadas dinámicamente — el worker construye el HTML a partir del D1 en cada solicitud, sin archivos precompilados. Una nueva ciudad con cervecerías suficientes en la base ya tiene su página disponible.

destacadoenlace
Caxias do Sul (RS) — plantilla de referenciatripbier.com/caxias.html
Blumenau (SC) — capital catarinensetripbier.com/blumenau.html
Porto Alegre (RS) — polo AGMtripbier.com/porto-alegre.html
Gramado (RS) — turismo + crafttripbier.com/gramado.html
Brujas (Bélgica) — referencia mundialtripbier.com/be/bruges.html
Berlín (Alemania)tripbier.com/de/berlin.html
Praga (República Checa)tripbier.com/cz/praga.html

landing pages de cervecerías

Las cervecerías premiadas (CBC, WBC o WBA) reciben automáticamente una landing page dinámica generada a partir de los datos del D1 — sin intervención manual. El acceso es vía subdominio: slug.tripbier.com.

Contenido mostrado: nombre, ciudad/estado, rating y votos Google, horarios de atención por día de la semana, cervezas en producción (nombre, estilo, ABV, IBU), premiaciones con medalla y año, blog posts relacionados, mapa embed, botones para Instagram/sitio/WhatsApp y chat con agente IA especializado en la cervecería.

Regla de acceso: Si la cervecería tiene premiación → renderiza landing page completa. Si no tiene premiación pero tiene Instagram o sitio → redirige (302) a la red social. Si no tiene nada → 404.

Caché: cada landing page se almacena en el edge cache de Cloudflare por 1 hora (stale-while-revalidate=86400) — cero CPU en las visitas recurrentes.

concursos y premiaciones

tripbier indexa las medallas de los principales concursos de cerveza artesanal y las muestra en las landing pages de cervecerías y en la página de premiaciones. Las medallas son criterio de clasificación en el Curador.

concursosiglaalcancemedallas
Campeonato Brasileiro de CervejaCBCNacional — Blumenau/SCGran Champion, Oro, Plata, Bronce
World Beer CupWBCInternacional — EUAGold, Silver, Bronze
World Beer AwardsWBAInternacional — UKCountry Winner, Gold, Silver
Concurso Gaúcho de Cerveja (AGM)CGCBARS — organizado por AGMOro, Plata, Bronce
Mondial de la BièreMDBBrasil + InternacionalMédaille d'Or, d'Argent, de Bronze
ver palmarés completo

panel socio

El panel socio es la interfaz de gestión para propietarios de cervecerías. Acceso vía slug de la cervecería (sin inicio de sesión — auth por token vía URL, a implementar). URL directa: tripbier.com/admin-parceiro?slug={slug}.

pestañaqué gestionatabla D1
🗺️ itinerariosParticipantes de los circuitos del pasaporte: progreso, check-ins, botón "premiar" vía WhatsApppassaporte_carimbos · passaportes
🍺 cervezasCatálogo de cervezas: nombre, estilo, ABV, IBU, descripción, foto (URL)estilos_cervejaria
📋 cartaÍtems de la carta: categoría, nombre, precio, descripción, foto — visible en la landing pagelp_cardapio
🎯 promosCampañas: título, tipo, descuento %, validez, toggle activo/inactivolp_campanhas
🕐 horariosGrilla semanal Lunes→Domingo: abre, cierra, cerrado, observaciónhorarios
abrir panel socio

agm — associação gaúcha de microcervejarias

agm.tripbier.com es un subdominio dedicado a la alianza tripbier × AGM — una pitch page editorial con las 19 cervecerías asociadas mapeadas, historia del movimiento craft gaúcho y CTA para afiliación.

Contenido histórico basado en investigación académica verificada: Cruz, R.C. (2016). Consumo e Formação de Mercado: um estudo sobre as microcervejarias de Porto Alegre. Dissertação UNISINOS.

Cronología: Dado Bier (1995, primera microcervejaria BR) → WE Consultoria (1997) → Acerva Gaúcha (2003) → AGM fundada por Jorge Gitzler → ICMS reducido en RS → Polo Anchieta (2010) → 50+ asociadas hoy.

abrir agm.tripbier.com

claim your brewery

Las cervecerías sin perfil completo muestran un CTA "¿Esta es tu cervecería?" en la landing page y en el chat widget. Al hacer clic, el propietario completa un formulario simple (nombre, e-mail, cargo, WhatsApp) que genera un lead en D1 (reivindicacoes) y dispara una notificación interna.

Es el embudo de entrada al modelo B2B: Starter (R$89/mes) → Professional (R$149/mes) → Premium (R$297/mes), con incremento de funciones en el panel socio y visibilidad en el mapa.

ver formulario claim

api endpoints

métodoendpointdescripción
GET/api/proximasbusca cervecerías por coords, ciudad o texto — motor principal del mapa y concierge
GET/api/suggest?q=&pais=autocompletado de ciudades (search-as-you-type, KV)
GET/api/statstotal de cervecerías activas
GET/api/pinganalytics: registra enter/leave/click con geo y dispositivo
POST/api/chatenvía mensaje al pipeline Maestro y recibe respuesta del concierge
GET/api/news?cidade=&limit=noticias cerveceras por ciudad (utt-beerfeed)
POST/api/news/collectfuerza recolección manual de noticias (normalmente cron lunes)
GET/api/estilos?q=busca cervezas por estilo con foto — alimenta el grid de estilos
GET/api/parceiro/perfil?slug=devuelve datos completos de la cervecería: cervezas, carta, promos, horarios
POST/api/parceiro/cervejacrea o actualiza cerveza en el catálogo de la cervecería
DELETE/api/parceiro/cerveja/:idelimina cerveza del catálogo
POST/api/parceiro/cardapiocrea o actualiza ítem de la carta
DELETE/api/parceiro/cardapio/:iddesactiva ítem de la carta (soft delete)
POST/api/parceiro/campanhacrea o actualiza promoción/campaña
PUT/api/parceiro/campanha/:id/toggleactiva o desactiva campaña
DELETE/api/parceiro/campanha/:idelimina campaña permanentemente
POST/api/parceiro/horarioguarda grilla de horarios (upsert por día de la semana)
POST/api/checkinregistra check-in en el pasaporte (sello)
GET/api/meu-passaportedevuelve el pasaporte del usuario (por sesión)
POST/api/roteiro-salvarguarda itinerario generado por Maestro en D1
GET/api/admin/painel?roteiro=datos del circuito para el panel socio (participantes, progreso)
GET/sitemap.xmlsitemap dinámico con todas las cervecerías + páginas principales

analytics

tripbier usa analytics 1st-party — sin Google Analytics, sin cookies de terceros. El tracker (/a/tracker.js) es cargado por todas las páginas y envía eventos a /collect en utt-analytics.

Datos recopilados: páginas visitadas, tiempo de permanencia (dwell), recurrencia de sesión, embudo de conversión (inicio → mapa → itinerario → pasaporte), país/ciudad (CF headers), tipo de dispositivo. Sin PII — el identificador es hash SHA1 de IP+UA.

Cron diario: utt-analytics agrega los eventos brutos y graba resúmenes diarios en D1 (id: 170900e5) — visitantes únicos, pageviews, países top-5, bandwidth. El dashboard analytics lee de esos resúmenes.

Clics rastreados: Instagram, sitio, WhatsApp — por cervecería, por origen geográfico, por dispositivo.

abrir dashboard analytics

privacidad

El banner de cookies es inyectado por el worker en todas las páginas vía middleware — ninguna página necesita incluir el script manualmente. El consentimiento se almacena en localStorage por 365 días.

política de privacidad términos de servicio

deploy y operaciones

Todo el deploy se realiza con Wrangler CLI desde el directorio G:\Site\tripbier\utt-engine\PRD\js\. La configuración está en wrangler.toml. Las credenciales de API (OpenAI, Serper, Google Places) están en G:\Site\tripbier\upg-engine\pipeline\.env.

# Deploy del worker principal
npx wrangler deploy --config wrangler.toml

# Publicar página en KV (HTML → page:nombre.html)
npx wrangler kv key put "page:agm.html" \
  --path ../html/agm.html \
  --remote --binding UTT_CACHE --config wrangler.toml

# Upload de imagen a R2
npx wrangler r2 object put "tripbeer-assets/agm/foto.png" \
  --file ./foto.png --remote --config wrangler.toml

# Query en D1
npx wrangler d1 execute tripbeer-db \
  --command "SELECT COUNT(*) FROM cervejarias" \
  --remote --json --config wrangler.toml

Regla de oro: modificar el worker o el HTML sin antes listar qué cambia y a quién afecta puede causar una regresión silenciosa. El proceso correcto: (1) listar cambios e impacto, (2) confirmar con Marcos, (3) publicar.

Atención: Tripbier y ClubTour son cuentas/negocios separados — nunca cruzar workers, datos ni credenciales entre los dos.

PT EN ES DE FR IT NL