DEVELOPMENT

CFA Trending (CFA Radar)

Dashboard interno para monitorear y analizar tendencias de TikTok, con sync a Apify, agregaciones semanales y auth segura.
CFA Trending (CFA Radar)

El Desafío

El equipo de comunicaciones necesitaba detectar tendencias reales de TikTok (hashtags, palabras, cuentas, audios, temas y videos) sin depender de “ver qué aparece en el feed”, y además poder comparar semana a semana con un historial auditable.

En otras palabras: pasar de un proceso manual y subjetivo a un radar confiable con datos, filtros y consistencia.

El Resultado

Una app interna tipo dashboard que centraliza el análisis de tendencias:

¿Qué es y qué hace?

CFA-Trending (también llamado CFA Radar) es una aplicación interna construida para monitorear contenido en tendencia de TikTok dentro de un foco de interés definido (sector/keywords).

Desde el dashboard, el equipo puede ver:

¿Cómo funciona?

El flujo end-to-end está diseñado para ser simple de usar y robusto por dentro:

UI (Next.js) -> /api/v1/tiktok?sync=true (o sync=false) -> Hono (logic)
  -> Apify (scrape keyword search) -> transform (CleanVideo)
  -> PostgreSQL (drizzle) -> agregaciones -> payload del dashboard

1) Login y control de acceso

El usuario inicia sesión desde la UI. La API valida credenciales (variables de entorno) y, si son correctas:

Luego un middleware protege rutas: si no hay cookie válida, redirige al login.

2) Sincronización (sync) y versionado por lotes

Cuando el dashboard carga puede pedir datos con sync=false (leer el último lote). Si se presiona “Sincronizar” o no hay datos previos, se ejecuta sync=true:

3) Agregaciones para el dashboard

Con el último syncId se calculan estructuras listas para UI:

Esto mantiene el frontend liviano: la UI sólo renderiza, filtra y presenta.

Stack técnico

CapaTecnología
FrontendNext.js (App Router) + React + TypeScript
UITailwind CSS + lucide-react
Backend APIHono dentro de Next (/api/*)
AuthJWT + cookie HTTP-only
DBPostgreSQL + drizzle-orm + postgres-js
Fuente de datosApify (TikTok keyword search)
Validaciónzod + react-hook-form
Testingvitest (+ playwright browser support)
UI workshopStorybook

¿Qué facilita?

Estandariza el análisis. Todos miran el mismo set de métricas y tendencias calculadas con la misma lógica.

Hace el histórico auditable. Con syncId se puede rastrear y comparar datasets por lotes.

Reduce fricción operativa. Un botón de “Sincronizar” reemplaza tareas manuales repetitivas.

Permite operar con datos reales o mock. Con USE_MOCK_DATA=true el equipo puede desarrollar/demostrar sin depender de la fuente externa.

Nota importante (seguridad)

Este tipo de app maneja secretos (DB, JWT, tokens). El enfoque recomendado es:

Visión a futuro

Evolucionar el radar hacia un flujo editorial más completo:

Repo

Privado (app interna).

¿Hablemos?
Tengo cupos limitados para nuevos clientes en 2026. Si buscas transformar tu presencia digital con un equipo que piensa en producto, estrategia y ejecución, este es el momento.