Velo
Velo para entregar. Desvelo para recuperar.
La aduana de tus datos: revisa tus tablas antes de que salgan hacia una IA, una herramienta en la nube o el computador de un tercero, te dice a quién señalan con el dedo, te las devuelve tratadas — y cuando el trabajo vuelve, recupera los valores originales. Todo ocurre dentro del navegador: no hay servidor, no hay carga, no hay copia.
Who it's for
Para quien tiene que entregar datos de personas a un tercero —un consultor, una herramienta, un modelo— y hoy elige entre mandar el archivo tal cual o no mandarlo. En Colombia, además, con la Ley 1581 de 2012 encima.
What nobody else does
El mercado hace media travesía: micro-herramientas que anonimizan en un solo sentido, o suites empresariales inaccesibles. Velo es la única que hace el viaje completo dentro del navegador —entregas sin entregar, y recuperas con tu bóveda— con validadores que citan su fuente oficial, certificado con las dos huellas, y cero inteligencia artificial: el mismo archivo produce siempre el mismo resultado, byte por byte.
The numbers
14funcionalidades
Funcionalidades del MVP
measured5pantallas
Pantallas de la app
measured740pruebas
Pruebas unitarias y de integración
measured153pruebas
Pruebas de extremo a extremo
measured96,17%
Cobertura de líneas
measured8paquetes
Dependencias en tiempo de ejecución
measured0llamadas
Llamadas de red que llevan datos del usuario
measured0servicios
Servicios de backend
measured0USD
Costo de operación mensual
computed500.000filas
Filas procesadas sin bloquear la pestaña
measured484.920bytes
Peso de este brochure
measured8ADR
Decisiones de arquitectura registradas
measured
What it does
14 features, in groups. Each card opens on its own as you read down — and your tap always wins.

Carga de CSV y Excel, por arrastre y por teclado
CSV sin tope, porque se lee por partes y nunca existe entero en memoria; Excel hasta 150 MB, porque hay que abrirlo completo. El progreso dice la etapa real —tomando la huella, leyendo, reconociendo columnas, midiendo el riesgo— y no dibuja una barra donde no hay fracción que mostrar.
Detección por columna con las cuatro categorías de la Ley 1581
Identificador directo, dato sensible del artículo 5, cuasi-identificador y no personal, con tres niveles de certeza: confirmado por un dígito de verificación oficial (NIT con el mod 11 de la DIAN, tarjetas con Luhn, IBAN con el 97-10), reconocido por su forma, o sin confirmar cuando la pista es el nombre de la columna. Cada validador cita su fuente en el código.
Reporte del diagnóstico, autocontenido y con huella
Un HTML que se abre con doble clic sin internet y sin instalar nada, con lo detectado, las categorías, las cifras de riesgo y el SHA-256 del archivo. No lleva ni una fila de la tabla: las muestras van enmascaradas y las columnas sensibles no llevan ninguna.

Política por columna, exportable como archivo
Una fila por columna con su técnica. La política no se guarda en ningún sitio —lleva los nombres de las columnas, que son datos del usuario— así que se exporta e importa como archivo, con su propio hash SHA-256 como identidad: dos archivos que compartan los ocho caracteres del nombre recibieron el mismo tratamiento.
Políticas de fábrica: Habeas Data y HIPAA Safe Harbor
Habeas Data (Ley 1581 de 2012 y Decreto 1377 de 2013, con las técnicas de la guía AGN + SIC y un objetivo de grupo mínimo de 5) o HIPAA Safe Harbor (los 18 identificadores de 45 CFR §164.514(b)(2), que manda borrar y no seudonimizar). Cada una declara cuántos de sus puntos reconoce por contenido, cuántos solo por el nombre y cuántos quedan para la persona. Al tocar una regla, Velo avisa de que ya no es esa política.
Cuatro familias de técnicas
Enmascarar, seudonimizar (HMAC-SHA256 con llave derivada por PBKDF2 de 600.000 vueltas), generalizar y suprimir, elegidas columna por columna, con vista previa de lo que va a recibir la otra persona antes de escribir nada.
Formato conservado con el dígito de verificación recalculado
Un NIT sigue siendo un NIT: el seudónimo mantiene la forma y su dígito de verificación se recalcula con el mod 11 de la DIAN. No es cifrado que preserva formato —FF3 está roto y el código dice por qué— y las colisiones que el formato provoca se cuentan y se declaran.
Seudónimos estables entre entregas
La misma frase de paso y la misma sal producen los mismos seudónimos, así que el archivo de marzo se puede cruzar con el de abril sin tener los datos reales delante. Perder la frase es perder la vuelta, y se dice antes.

k-anonimato con Mondrian y consejero de cruces
El consejero muestra qué columnas delatan solas y qué combinaciones son las más delatoras, con su k real, y declara cuántas evaluó y qué quedó fuera con su motivo. «Generalizar hasta alcanzar el k» reparte con Mondrian (LeFevre et al., ICDE 2006) sobre las columnas marcadas, con l-diversity y t-closeness medidas — y sin borrar filas para lograrlo.
Riesgo exacto y riesgo poblacional estimado, separados
Las cifras del archivo se cuentan registro por registro y van marcadas «cifra exacta» (modelo prosecutor). El riesgo de la población sale de un modelo con su supuesto, va marcado «estimado» con su fuente al lado —Benedetti–Franconi (1998) y Zayatz (1991)— y solo aparece si la persona declara la población. Nunca se promedian entre sí.
Balance de antes y después, con la advertencia arriba de la cifra
Qué cambió, cuánto riesgo se redujo y cuánta utilidad se perdió — con una regla dura: si queda algo sin tratar, eso se lee antes que cualquier porcentaje, y la cifra pierde el tratamiento de titular hasta que nada la desmienta.

La bóveda cifrada y el regreso
Un seudónimo no vuelve por sí solo, y eso es lo que lo hace seguro de entregar. La bóveda —archivo aparte, cifrado con AES-GCM y llave derivada por PBKDF2 de 600.000 vueltas— sí lo deshace. La restauración es por VALOR, jamás por posición, y reconoce las columnas por su contenido: sobrevive a que el tercero reordene filas, añada columnas, borre otras y corrija valores a mano. Las cuatro cosas que le pueden pasar a una celda se cuentan todas, y las ambiguas se declaran ANTES de restaurar.
Certificado del tratamiento con las dos huellas
El documento que viaja con el archivo: qué se le hizo, el balance con sus advertencias, la utilidad perdida, el hash completo de la política, y las huellas del archivo que entró y del que sale. Con la segunda, quien lo recibe comprueba que el documento habla de su copia en vez de creerlo — con la orden exacta para macOS, Linux y Windows. No es una firma digital, y lo dice.
Bitácora cifrada de los tratamientos
Qué se trató, cuándo, con qué política y con qué riesgo antes y después — las dos proporciones y no la resta entre ellas, porque una bitácora se lee meses después sin ninguna pantalla al lado que la matice. Va cifrada porque un nombre de archivo ya cuenta de qué va su contenido, en archivo propio y con su propia frase de paso.
The fine print
Privacy
- red saliente con datos: no
- datos persisten en servidor: no
- usa ia: no
El archivo se abre dentro de la pestaña, en un hilo aparte, y ahí se queda: no hay subida, no hay servidor que lo reciba y no queda copia al cerrar. La garantía tiene tres capas —un e2e que intercepta todas las peticiones del navegador durante el flujo completo, una CSP con connect-src 'self' que impide abrir cualquier conexión ajena, y un test de código fuente que veta fetch, localStorage e indexedDB en el motor—. La bóveda y la bitácora son la única excepción al «nada persiste», y son archivos cifrados que el usuario descarga y custodia con una acción explícita. Sin IA generativa en ninguna parte del producto: por eso el mismo archivo con la misma política y la misma llave produce siempre la misma salida, byte por byte, y por eso el resultado es auditable.
Stack
- Next.js — la aplicación entera; el hosting la sirve y no recibe un solo dato
- TypeScript — modo estricto en todo el repositorio
- Web Workers — la frontera: los datos crudos viven ahí y hacia la interfaz solo cruzan conteos, nombres de columna y muestras enmascaradas
- Web Crypto — HMAC-SHA256 para los seudónimos y AES-GCM con PBKDF2 de 600.000 vueltas para la bóveda y la bitácora; cero dependencias de criptografía
- PapaParse y SheetJS — CSV en streaming y Excel con su tope declarado y medido
- Vitest y Playwright — las pruebas, incluidas las permanentes de determinismo, de honestidad del lenguaje y de la garantía de red
How you get access
Velo está desplegado y funcionando, pero su dirección todavía no se publica: el acceso va por lista de espera mientras se completa la ronda de pruebas.
El repositorio no se enlaza desde la vitrina (regla de cero enlaces del portafolio).
Card pinned to the export of 2026-08-21 · v0.1.0 · 4 closed sprints