Proyectos

Una selección de mis productos, herramientas e investigaciones.

Icono de Bike Neuks

Bike Neuks

Mapa estático y adaptado a móviles para encontrar aparcamientos para bicicletas cercanos en el Reino Unido, Irlanda, España y Armenia.

8 may 2026

typescript, bike, cycling

Bike Neuks muestra aparcamientos para bicicletas cerca de Edinburgh Waverley, con un mapa y una lista de lugares cercanos.Ver captura completa

El problema Encontrar dónde dejar la bici requiere consultar datos repartidos entre registros municipales y OpenStreetMap.

Detrás del proyecto
Cómo lo construí
Combino esas fuentes en un mapa en el navegador y divido los datos en pequeños bloques geográficos, para cargar la zona visible en lugar del catálogo completo.
Qué permite hacer
Encontrar y comparar aparcamientos cercanos, planificar rutas ciclistas, guardarlas y exportarlas en GPX. El mapa cubre Reino Unido, Irlanda, España y Armenia.
Icono de la aplicación Scranbook

scranbook

Diario alimentario privado y local, con estimaciones editables de visión artificial y nutrición, almacenado en el navegador.

11 jul 2026

typescript, nextjs, pwa

El diario vacío de Scranbook invita a añadir la primera comida.Ver captura completa

El problema Llevar un diario de comidas útil sin crear una cuenta ni entregar todo el diario a un servicio.

Detrás del proyecto
Cómo lo construí
Guardo las entradas y fotos en el navegador con IndexedDB. El registro manual funciona sin IA; el análisis de fotos es una acción explícita que envía la foto seleccionada al proveedor configurado.
Qué permite hacer
Registrar comidas, corregir estimaciones nutricionales y exportar o restaurar una copia de seguridad, sin un servidor dedicado para el diario.
Icono de la aplicación vidbgm

vidbgmprototipo

Generación local de música de fondo para vídeo con Magenta, creada como CLI en Rust y prototipo de escritorio con Tauri.

13 jun 2026

rust, tauri, magenta

Logotipo de StyleMakar

stylemakarprototipo

Aplicación local para reescribir borradores con una voz objetivo, conservando el significado, las restricciones y los detalles concretos.

30 may 2026

typescript, react, tauri

Icono de la aplicación AyeRide

AyeRide

Revisa giros difíciles, cruces y tramos antes de ir en bici o coche, con mapas y Street View opcional. Sirve para preparar el viaje, no para navegar en tiempo real. Los recorridos guardados y recientes se pueden volver a consultar sin conexión en el mismo dispositivo, sin crear una cuenta.

23 may 2026

typescript, nextjs, pwa

AyeRide muestra una ruta ciclista desde Princes Street hasta Portobello, con puntos de revisión, un mapa de la ruta y Street View.Ver captura completa
Logotipo de climatenet-mcp

climatenet-mcparchivado

Servidor MCP retirado que proporcionaba acceso de solo lectura a datos de vigilancia ambiental de ClimateNet en Armenia.

28 abr 2026

typescript, mcp, climate

Logotipo de aisdk-dt

aisdk-dt

CLI para inspeccionar archivos generations.json de Vercel AI SDK DevTools, de modo que los agentes de programación puedan consultar solicitudes, respuestas, llamadas a herramientas, tiempos y uso sin saturar el contexto.

24 abr 2026

typescript, ai-sdk, cli

Logotipo de nest-zod

nest-zod

Análisis de solicitudes y serialización de respuestas para NestJS mediante Zod, con decoradores en tiempo de ejecución y metadatos opcionales de Swagger/OpenAPI.

29 mar 2026

typescript, nestjs, zod

Logotipo de VueMarkik

vuemarkik

Renderizado de Markdown extensible y seguro de forma predeterminada para Vue.js, basado en unified, remark y rehype.

22 nov 2025

typescript, vue, markdown

Documentación de VueMarkik con un componente Vue de Markdown y su resultado renderizado.Ver captura completa

El problema El Markdown en una aplicación Vue debe admitir componentes, plugins y actualizaciones en streaming, y tratar de forma segura el contenido no confiable.

Detrás del proyecto
Cómo lo construí
Renderizo VNodes de Vue en lugar de inyectar HTML, saneo el árbol sintáctico final después de los plugins y ofrezco APIs síncronas, asíncronas y reactivas.
Qué permite hacer
Usar componentes Vue propios, resaltado de código, matemáticas y diagramas en Markdown. Ante datos incompletos en streaming, el renderizador reactivo conserva el último resultado válido.
Captura de pantalla del terminal con cmdtime

cmdtime

Complemento para Oh My Zsh que muestra cuánto tardó la orden anterior mediante un indicador de tiempo compacto y legible.

9 abr 2021

zsh, shell, oh-my-zsh

Captura de pantalla del terminal con cmdtimeVer captura completa
Logotipo de SecretBox

secretbox

Pequeña biblioteca .NET Standard para cifrado de clave simétrica mediante la permutación Gimli, con una API sencilla diseñada para ser fácil de usar y difícil de utilizar mal.

27 abr 2019

csharp, dotnet, cryptography