[{"data":1,"prerenderedAt":561},["ShallowReactive",2],{"projects":3},[4,44,75,107,123,151,184,218,260,287,316,345,381,408,421,457,483,514,539],{"title":5,"description":6,"path":7,"url":8,"images":9,"stack":26,"featured":40,"platforms":41},"ABReader","Lector de libros electrónicos para web y escritorio. Once formatos, anotaciones, vocabulario con repaso y lectura en voz alta con voces neuronales que se ejecutan en tu dispositivo. Sin cuentas ni servidores.","\u002Fproyectos\u002Fabreader","https:\u002F\u002Fabdell1999.github.io\u002Febook-reader-public\u002F",[10,15,18,21],{"src":11,"alt":12,"width":13,"height":14},"\u002Fimages\u002Fposts\u002Fabreader-tu-biblioteca-en-el-navegador\u002Fbiblioteca.webp","La biblioteca con portadas y progreso de lectura",1440,900,{"src":16,"alt":17,"width":13,"height":14},"\u002Fimages\u002Fposts\u002Fabreader-tu-biblioteca-en-el-navegador\u002Flector.webp","El lector con un libro abierto",{"src":19,"alt":20,"width":13,"height":14},"\u002Fimages\u002Fposts\u002Fabreader-tu-biblioteca-en-el-navegador\u002Fvocabulario.webp","El vocabulario con tarjetas de repaso",{"src":22,"alt":23,"width":24,"height":25},"\u002Fimages\u002Fposts\u002Fabreader-tu-biblioteca-en-el-navegador\u002Fbiblioteca-movil.webp","La biblioteca en el móvil",780,1688,[27,28,29,30,31,32,33,34,35,36,37,38,39],"Nuxt 4","Vue 3","TypeScript","Tailwind CSS v4","epub.js","pdf.js","IndexedDB \u002F OPFS","Tauri v2","ONNX Runtime Web","Google Drive API","Vitest","Playwright","GitHub Actions",true,[42,43],"web","escritorio",{"title":45,"description":46,"path":47,"url":48,"images":49,"stack":66,"featured":40,"platforms":74},"ABR Cipher","Suite de cifrado que funciona entera en el navegador. Texto y archivos de varios GB con AES-256-GCM, notas que caducan, vault de contraseñas, borrado seguro y quince herramientas más. Sin servidor, sin cuentas y sin telemetría.","\u002Fproyectos\u002Fcipher","https:\u002F\u002Fabdell1999.github.io\u002Fcipher-public\u002F",[50,53,58,62],{"src":51,"alt":52,"width":13,"height":14},"\u002Fimages\u002Fposts\u002Fabr-cipher\u002Fportada.webp","La portada de ABR Cipher con sus diecinueve módulos",{"src":54,"alt":55,"width":56,"height":57},"\u002Fimages\u002Fposts\u002Fabr-cipher\u002Ftexto.webp","Un texto cifrado con AES-256-GCM, listo para compartir",784,1191,{"src":59,"alt":60,"width":56,"height":61},"\u002Fimages\u002Fposts\u002Fabr-cipher\u002Fnota.webp","Una nota cifrada convertida en enlace que caduca",652,{"src":63,"alt":64,"width":56,"height":65},"\u002Fimages\u002Fposts\u002Fabr-cipher\u002Fdestruir.webp","El módulo de borrado seguro",578,[27,28,29,67,68,69,70,71,72,37,73,38],"Web Crypto API","Web Workers","File System Access API","Pinia","Tailwind CSS","Rust","Testing Library",[42],{"title":76,"description":77,"path":78,"url":79,"images":80,"stack":98,"featured":40,"platforms":105},"AI Upscaler & Background Remover","Extensión de Chrome que amplía imágenes ×2 o ×4 con Real-ESRGAN y elimina fondos con U²-Net, una a una o por lotes con descarga en ZIP, todo en el equipo del usuario con ONNX Runtime Web (WebGPU o WebAssembly). Sin servidores, sin subidas y gratis.","\u002Fproyectos\u002Fai-upscaler","https:\u002F\u002Fchromewebstore.google.com\u002Fdetail\u002Fai-upscaler-background-re\u002Fakfcbifmheikdgccbnlhdmfdnfcpobpp",[81,84,87,92,95],{"src":82,"alt":83,"width":13,"height":14},"\u002Fimages\u002Fposts\u002Fai-upscaler\u002Fcomparador.webp","Una foto ampliada ×4 con el comparador antes\u002Fdespués",{"src":85,"alt":86,"width":13,"height":14},"\u002Fimages\u002Fposts\u002Fai-upscaler\u002Flote-listo.webp","Un lote de fotos de producto sin fondo, listo para descargar en ZIP",{"src":88,"alt":89,"width":90,"height":91},"\u002Fimages\u002Fposts\u002Fai-upscaler\u002Fdetalle.webp","La misma zona ampliada de forma clásica y con Real-ESRGAN",984,540,{"src":93,"alt":94,"width":13,"height":14},"\u002Fimages\u002Fposts\u002Fai-upscaler\u002Ffondo-resultado.webp","Un fondo eliminado, con el sujeto sobre transparencia",{"src":96,"alt":97,"width":13,"height":14},"\u002Fimages\u002Fposts\u002Fai-upscaler\u002Foscuro.webp","La extensión en modo oscuro",[99,28,29,35,100,101,68,102,103,104,30,37,73,39],"WXT","WebGPU","WebAssembly","Real-ESRGAN","U²-Net","JSZip",[106],"extension",{"title":108,"description":109,"path":110,"url":111,"images":112,"stack":116,"featured":40,"platforms":122},"YouTube Like Shortcut","Extensión de Chrome que da like al vídeo o Short de YouTube que estás viendo con una tecla, como en TikTok. Atajo configurable con modificadores, modo solo Shorts, sonido y animación opcionales, en 15 idiomas y sin recoger ningún dato.","\u002Fproyectos\u002Fyoutube-like-shortcut","https:\u002F\u002Fchromewebstore.google.com\u002Fdetail\u002Fyoutube-like-shortcut\u002Flcpkmnlnllegnfhanjoeeejmnhgpnclm",[113],{"src":114,"alt":115,"width":13,"height":14},"\u002Fimages\u002Fposts\u002Fyoutube-like-shortcut\u002Fportada.webp","El popup de opciones en tres estados, con la tecla L, con Shift + L recién guardado y con el aviso de reseña",[99,29,117,118,119,120,121],"Manifest V3","Content Scripts","Chrome Storage (sync)","Web Audio API","Chrome i18n",[106],{"title":124,"description":125,"path":126,"url":127,"images":128,"stack":142,"featured":40,"platforms":149},"PokeStore","Tema de WordPress y WooCommerce hecho desde cero para tiendas de cartas coleccionables. Cartas con efecto holográfico, lupa de inspección, guía de estados, simulador de apertura de sobres y filtros pensados para coleccionistas. Sin CDNs, accesible y personalizable desde el Personalizador.","\u002Fproyectos\u002Fpokestore",null,[129,132,135,139],{"src":130,"alt":131,"width":13,"height":14},"\u002Fimages\u002Fposts\u002Fpokestore-tema-wordpress-para-tiendas-tcg\u002Fportada.webp","La ficha de una carta japonesa con el efecto holográfico activo y el estado Near Mint",{"src":133,"alt":134,"width":13,"height":14},"\u002Fimages\u002Fposts\u002Fpokestore-tema-wordpress-para-tiendas-tcg\u002Ftienda-filtros.webp","La tienda filtrada por idioma japonés, con el filtro activo arriba y el panel de filtros a la izquierda",{"src":136,"alt":137,"width":13,"height":138},"\u002Fimages\u002Fposts\u002Fpokestore-tema-wordpress-para-tiendas-tcg\u002Fabrir-sobres.webp","El simulador de apertura de sobres con un sobre japonés de Scarlet ex",1160,{"src":140,"alt":141,"width":24,"height":25},"\u002Fimages\u002Fposts\u002Fpokestore-tema-wordpress-para-tiendas-tcg\u002Fmovil-inicio.webp","La portada de la tienda en el móvil",[143,144,145,30,146,147,148],"WordPress","WooCommerce","PHP","JavaScript","Schema.org","i18n",[150],"wordpress",{"title":152,"description":153,"path":154,"url":155,"images":156,"stack":175,"featured":40,"platforms":183},"TranscribeLocal","Transcribe audio y vídeo y saca subtítulos con Whisper dentro del navegador, sin subir nada a ningún servidor. Distingue quién habla, resume con un modelo de lenguaje local, exporta a SRT, VTT, TXT, JSON y Markdown y funciona como app instalable (PWA), con WebGPU o WebAssembly.","\u002Fproyectos\u002Ftranscribe-local","https:\u002F\u002Fabdell1999.github.io\u002Ftranscribe-local-public\u002F",[157,160,164,168,172],{"src":158,"alt":159,"width":13,"height":14},"\u002Fimages\u002Fposts\u002Ftranscribe-local\u002Fportada.webp","Un diálogo transcrito, con el reproductor resaltando la frase que suena",{"src":161,"alt":162,"width":24,"height":163},"\u002Fimages\u002Fposts\u002Ftranscribe-local\u002Fhablantes.webp","La transcripción separada por hablantes, con un número de color para cada voz",485,{"src":165,"alt":166,"width":24,"height":167},"\u002Fimages\u002Fposts\u002Ftranscribe-local\u002Fexportar.webp","La transcripción con los botones para exportarla a TXT, SRT, VTT, JSON y Markdown",365,{"src":169,"alt":170,"width":91,"height":171},"\u002Fimages\u002Fposts\u002Ftranscribe-local\u002Fmodelos.webp","El gestor de modelos, con los que están guardados en el navegador y un botón para borrar cada uno",765,{"src":173,"alt":174,"width":13,"height":14},"\u002Fimages\u002Fposts\u002Ftranscribe-local\u002Foscuro.webp","TranscribeLocal en modo oscuro",[27,28,29,176,35,100,101,68,120,177,178,179,180,181,182,71,37,38,39],"Transformers.js","MediaRecorder","Whisper","pyannote","WeSpeaker","Qwen2.5","PWA",[42],{"title":185,"description":186,"path":187,"url":188,"images":189,"stack":211,"featured":40,"platforms":217},"Simple TTS","Extensión de Chrome y Edge que lee en voz alta cualquier texto de una web con las voces del propio navegador. Lee la selección o el artículo entero, tiene cola de lectura, tres modos de reproductor, resaltado de lo que se está leyendo y estadísticas. Sin servidores, sin APIs externas y gratis.","\u002Fproyectos\u002Fsimple-tts","https:\u002F\u002Fchromewebstore.google.com\u002Fdetail\u002Fsimple-tts\u002Fmnnhakddcadkcichdgimoennpkfkcalk",[190,193,198,203,208],{"src":191,"alt":192,"width":13,"height":14},"\u002Fimages\u002Fposts\u002Fsimple-tts\u002Fportada.webp","Un artículo leyéndose en voz alta, con el reproductor flotante y la palabra que suena resaltada en la página",{"src":194,"alt":195,"width":196,"height":197},"\u002Fimages\u002Fposts\u002Fsimple-tts\u002Fflotante.webp","El reproductor flotante con el texto, el progreso, el tiempo restante y los controles",302,535,{"src":199,"alt":200,"width":201,"height":202},"\u002Fimages\u002Fposts\u002Fsimple-tts\u002Fpopup-ajustes.webp","Los ajustes de velocidad, tono, volumen, modo de reproductor, tema e idioma",360,681,{"src":204,"alt":205,"width":206,"height":207},"\u002Fimages\u002Fposts\u002Fsimple-tts\u002Fventana.webp","El reproductor en una ventana independiente",400,600,{"src":209,"alt":210,"width":13,"height":14},"\u002Fimages\u002Fposts\u002Fsimple-tts\u002Foscuro.webp","Simple TTS leyendo un artículo en modo oscuro",[99,28,29,117,212,213,214,215,216,119,121,37,38],"Chrome TTS API","Offscreen API","Shadow DOM","CSS Custom Highlight API","Intl.Segmenter",[106],{"title":219,"description":220,"path":221,"url":222,"images":223,"stack":247,"featured":40,"platforms":259},"ABR Offline Converter","Conversor de archivos que funciona entero en el navegador. Imágenes, vídeo, audio, PDF, fuentes, subtítulos, texto y datos, con 192 páginas de conversión, y un Taller del libro que monta un EPUB completo a partir de capítulos en Markdown. Sin servidores, instalable y usable sin conexión.","\u002Fproyectos\u002Foffline-converter","https:\u002F\u002Fabdell1999.github.io\u002Foffline-converter-public\u002F",[224,228,233,237,242],{"src":225,"alt":226,"width":227,"height":14},"\u002Fimages\u002Fposts\u002Foffline-converter\u002Fportada.webp","Cuatro imágenes PNG convertidas a WebP en la cola, con el formato, la calidad y el tamaño de salida",1425,{"src":229,"alt":230,"width":231,"height":232},"\u002Fimages\u002Fposts\u002Foffline-converter\u002Fcomparar.webp","Comparación antes y después de una imagen convertida, con un deslizador en el centro",785,820,{"src":234,"alt":235,"width":14,"height":236},"\u002Fimages\u002Fposts\u002Foffline-converter\u002Fvideo-gif.webp","Un vídeo WebM a punto de convertirse en GIF animado, con el panel de recorte abierto",985,{"src":238,"alt":239,"width":240,"height":241},"\u002Fimages\u002Fposts\u002Foffline-converter\u002Ftaller.webp","El Taller del libro con cuatro capítulos, la portada tipográfica, las páginas extra, el estilo y la vista previa de un capítulo",1140,1710,{"src":243,"alt":244,"width":245,"height":246},"\u002Fimages\u002Fposts\u002Foffline-converter\u002Flistado.webp","El listado de todas las conversiones, agrupadas por imágenes, vídeo, audio, PDF, fuentes, subtítulos, texto y datos",925,2134,[27,28,29,71,182,68,248,249,250,251,32,252,253,254,255,256,257,258,37],"OffscreenCanvas","ffmpeg.wasm","gifenc","heic2any","pdf-lib","fonteditor-core","Papa Parse","marked","Turndown","client-zip","EPUB3",[42],{"title":261,"description":262,"path":263,"url":264,"images":265,"stack":281,"featured":40,"platforms":286},"DevExtractor","Extensión de Chrome para quien hace webs. Saca todas las imágenes, SVG inline, vídeos, fondos CSS, enlaces y fuentes de una página, los descarga sueltos o en un ZIP y permite sustituir imágenes en vivo para enseñar alternativas. Todo en local, desde el popup o desde un panel de DevTools.","\u002Fproyectos\u002Fdevextractor","https:\u002F\u002Fchromewebstore.google.com\u002Fdetail\u002Fdevextractor\u002Flkgndoalgpfelahmogbddekpbhcdinjb",[266,271,274,277],{"src":267,"alt":268,"width":269,"height":270},"\u002Fimages\u002Fposts\u002Fdevextractor\u002Fportada.webp","El panel de DevExtractor filtrando solo los SVG inline de una web, con los cinco seleccionados y la descarga en ZIP completada",1105,1120,{"src":272,"alt":273,"width":13,"height":207},"\u002Fimages\u002Fposts\u002Fdevextractor\u002Freemplazo-despues.webp","Una web de demostración con el logo y la imagen de portada sustituidos en vivo por otros",{"src":275,"alt":276,"width":227,"height":232},"\u002Fimages\u002Fposts\u002Fdevextractor\u002Ffuentes-destacado.webp","La web de demostración con los textos que usan la fuente Hubot Sans recuadrados en verde",{"src":278,"alt":279,"width":269,"height":280},"\u002Fimages\u002Fposts\u002Fdevextractor\u002Fenlaces.webp","La pestaña de enlaces con los enlaces internos y externos de la página y los botones para copiarlos o exportarlos",1110,[99,117,28,29,71,104,213,282,283,284,37,285,38,39],"declarativeNetRequest","MutationObserver","vue-i18n","happy-dom",[106],{"title":288,"description":289,"path":290,"url":291,"images":292,"stack":310,"featured":40,"platforms":315},"Video Accessibility","Extensión de Chrome que lleva los atajos de teclado de YouTube a cualquier web con un vídeo HTML. Saltar al 30 % con el 3, cambiar la velocidad, bucle A-B, filtros, modo cine y eventos personalizados para pulsar u ocultar cualquier botón con una tecla. Solo en las webs que tú eliges y todo en local.","\u002Fproyectos\u002Fvideo-accessibility","https:\u002F\u002Fchromewebstore.google.com\u002Fdetail\u002Fvideo-accessibility\u002Fgkegicinlfihnoblalflbjhiamghfgap",[293,297,302,307],{"src":294,"alt":295,"width":13,"height":296},"\u002Fimages\u002Fposts\u002Fvideo-accessibility\u002Fportada.webp","Un vídeo en una web de demostración con el aviso \"Salto al 30%\" en el centro, tras pulsar la tecla 3",660,{"src":298,"alt":299,"width":300,"height":301},"\u002Fimages\u002Fposts\u002Fvideo-accessibility\u002Fpopup-activo.webp","El popup de la extensión activo en la web, con los atajos básicos y un interruptor para apagar cada uno solo en ese sitio",300,739,{"src":303,"alt":304,"width":305,"height":306},"\u002Fimages\u002Fposts\u002Fvideo-accessibility\u002Fopciones-eventos.webp","La pestaña de eventos personalizados con un evento \"Me gusta\" que pulsa el botón .like-btn con Shift + L",1010,740,{"src":308,"alt":309,"width":13,"height":296},"\u002Fimages\u002Fposts\u002Fvideo-accessibility\u002Fcine.webp","El modo cine, con el resto de la página oscurecida y el vídeo destacado",[99,117,28,29,71,311,312,283,214,37,313,314],"Chrome Scripting API","Chrome Storage","jsdom","Vue Test Utils",[106],{"title":317,"description":318,"path":319,"url":320,"images":321,"stack":338,"featured":40,"platforms":344},"Reddit Archive","Extensión de Chrome que recupera, desde el archivo público de Arctic Shift, los posts y comentarios borrados o editados de Reddit y los muestra dentro de la propia página, siempre marcados como archivados. Perfiles, posts con su árbol de comentarios, estadísticas por subreddit y exportación de toda la actividad de un usuario a JSON, Markdown o CSV. No pide nada hasta que pulsas el botón.","\u002Fproyectos\u002Freddit-archive","https:\u002F\u002Fchromewebstore.google.com\u002Fdetail\u002Freddit-archive\u002Feiocepcbcfpeiehcgdoghdgonmjgconn",[322,326,330,334],{"src":323,"alt":324,"width":325,"height":14},"\u002Fimages\u002Fposts\u002Freddit-archive\u002Fportada.webp","El panel de Reddit Archive sobre un perfil de demostración con una cuenta eliminada, mostrando sus publicaciones archivadas",1280,{"src":327,"alt":328,"width":232,"height":329},"\u002Fimages\u002Fposts\u002Freddit-archive\u002Fpost-comentarios.webp","Una publicación borrada recuperada del archivo, con su árbol de comentarios debajo",1360,{"src":331,"alt":332,"width":232,"height":333},"\u002Fimages\u002Fposts\u002Freddit-archive\u002Festadisticas.webp","La pestaña de estadísticas con los subreddits más activos, los flairs del autor y un gráfico de actividad por meses",968,{"src":335,"alt":336,"width":232,"height":337},"\u002Fimages\u002Fposts\u002Freddit-archive\u002Fexportar.webp","El menú Exportar con JSON, Markdown y CSV, tanto para lo cargado como para cargar todo y exportar",420,[99,117,28,29,339,340,312,214,255,341,37,285,38,342,343],"Zod","Arctic Shift API","DOMPurify","ESLint","Prettier",[106],{"title":346,"description":347,"path":348,"url":349,"images":350,"stack":364,"featured":40,"platforms":379},"BlueDrop","App nativa de Android que guarda dónde has aparcado en cuanto el móvil se desconecta del Bluetooth del coche, sin pulsar nada ni abrir la app. Mapa con OpenStreetMap, aviso al volver con el tiempo aparcado, historial con notas y fotos, estadísticas mensuales y widget de inicio. Sin anuncios, sin cuentas y sin servidor propio.","\u002Fproyectos\u002Fbluedrop","https:\u002F\u002Fplay.google.com\u002Fstore\u002Fapps\u002Fdetails?id=com.abr.bluedrop",[351,355,358,361],{"src":352,"alt":353,"width":91,"height":354},"\u002Fimages\u002Fposts\u002Fbluedrop\u002Fmapa.webp","El último aparcamiento en el mapa de OpenStreetMap, con la dirección y los botones Compartir y Navegar al coche",1200,{"src":356,"alt":357,"width":91,"height":354},"\u002Fimages\u002Fposts\u002Fbluedrop\u002Fhistorial.webp","El historial de aparcamientos con fechas, duración y notas como la planta y la plaza del parking",{"src":359,"alt":360,"width":91,"height":354},"\u002Fimages\u002Fposts\u002Fbluedrop\u002Festadisticas.webp","Las estadísticas del mes, con el tiempo total aparcado, sesiones, media, récord y zonas más frecuentes",{"src":362,"alt":363,"width":91,"height":354},"\u002Fimages\u002Fposts\u002Fbluedrop\u002Fwidget.webp","El widget de inicio con la dirección del coche y el botón Navegar al coche",[365,366,367,368,369,370,371,372,373,374,375,376,377,378],"Kotlin 2.0","Jetpack Compose","Material 3","Hilt","Coroutines","Flow","Room","DataStore","Fused Location","CameraX","Glance","osmdroid","JUnit","MockK",[380],"android",{"title":382,"description":383,"path":384,"url":385,"images":386,"stack":402,"featured":40,"platforms":407},"DualRoute","Extensión de Chrome para abrir con un clic las páginas que revisas cada día, cada una en modo normal, incógnito o en los dos. Lleva la cuenta de cuándo abriste cada una por última vez, avisa cuando toca volver a mirarla, guarda notas con historial de cambios y exporta todo a JSON. Sin historial del navegador, sin content scripts y sin servidor.","\u002Fproyectos\u002Fdualroute","https:\u002F\u002Fchromewebstore.google.com\u002Fdetail\u002Fdualroute\u002Fdncknellidppghfbonbigngaidncjigg",[387,391,396,399],{"src":388,"alt":389,"width":390,"height":270},"\u002Fimages\u002Fposts\u002Fdualroute\u002Fpopup.webp","El popup de DualRoute con la lista de rutas, sus modos de apertura, categorías y un recordatorio pendiente",720,{"src":392,"alt":393,"width":394,"height":395},"\u002Fimages\u002Fposts\u002Fdualroute\u002Fpanel-rutas.webp","El panel de rutas con búsqueda, filtros por categoría, dominio, modo y recordatorio, y la lista de rutas con sus acciones",1600,1075,{"src":397,"alt":398,"width":394,"height":395},"\u002Fimages\u002Fposts\u002Fdualroute\u002Frecordatorios.webp","La sección de recordatorios, con rutas vencidas hace dos horas y otras que vencen dentro de cinco",{"src":400,"alt":401,"width":394,"height":395},"\u002Fimages\u002Fposts\u002Fdualroute\u002Fhistorial.webp","El historial de lanzamientos con la fecha, la ruta, el modo normal o incógnito y si se abrió sola o por lotes",[99,117,403,29,404,339,312,405,406,37,38],"React 19","Tailwind CSS 4","Chrome Alarms","Web Locks",[106],{"title":409,"description":410,"path":411,"url":127,"images":412,"stack":418,"featured":419,"platforms":420},"SubFetch for YouTube","Extensión de Chrome que descarga en .srt los subtítulos de un vídeo de YouTube, sean nativos, automáticos o traducidos, y que también proyecta sobre el reproductor tus propios .srt o .vtt con ajustes de accesibilidad. Antes se llamaba YouTube Subtitles. Aún no está publicada en la Chrome Web Store; puede que lo esté más adelante.","\u002Fproyectos\u002Fsubfetch",[413],{"src":414,"alt":415,"width":416,"height":417},"\u002Fimages\u002Fposts\u002Fsubfetch\u002Fboton-subtitulos.webp","El botón Subtítulos en la barra de acciones de YouTube, junto a Me gusta y Compartir, con el menú abierto mostrando una pista en inglés generada automáticamente y los botones Traducir y .SRT",446,216,[99,117,28,29,404,284,214,37],false,[106],{"title":422,"description":423,"path":424,"url":425,"images":426,"stack":450,"featured":40,"platforms":456},"ABR Image Tools","Editor de imágenes que funciona entero en el navegador, nacido para escribir manuales de usuario sin enseñar datos personales. Censura automática de DNI, IBAN, teléfonos, correos y caras con OCR en local, flechas, formas y texto para señalar pasos, capas, pestañas, exportación a WebP, IA local para quitar fondos y ampliar, y procesamiento por lotes con censura editable. Sin servidores ni cuentas, y gratis.","\u002Fproyectos\u002Fimage-tools","https:\u002F\u002Fabdell1999.github.io\u002Fimage-tools-public\u002F",[427,430,433,438,443,447],{"src":428,"alt":429,"width":13,"height":14},"\u002Fimages\u002Fposts\u002Fimage-tools\u002Fportada.webp","Una captura de una aplicación con los datos personales desenfocados y dos pasos señalados con recuadros, flechas y texto",{"src":431,"alt":432,"width":13,"height":14},"\u002Fimages\u002Fposts\u002Fimage-tools\u002Fcensura-deteccion.webp","La Censura Inteligente con el DNI, el IBAN, el teléfono y el correo detectados y listados para revisar",{"src":434,"alt":435,"width":436,"height":437},"\u002Fimages\u002Fposts\u002Fimage-tools\u002Flotes-revisar.webp","Los resultados de un lote con miniaturas, zonas censuradas y peso antes y después de cada imagen",768,850,{"src":439,"alt":440,"width":441,"height":442},"\u002Fimages\u002Fposts\u002Fimage-tools\u002Ffondo-oso.webp","La vista previa de quitar el fondo, con la foto original de un oso y el oso recortado",1024,538,{"src":444,"alt":445,"width":436,"height":446},"\u002Fimages\u002Fposts\u002Fimage-tools\u002Fmermaid.webp","Un diagrama de flujo escrito en Mermaid, con su vista previa, listo para insertarse como formas editables",704,{"src":448,"alt":449,"width":13,"height":14},"\u002Fimages\u002Fposts\u002Fimage-tools\u002Foscuro.webp","El editor en modo oscuro con la captura anotada y censurada",[27,28,29,70,71,451,248,68,452,453,35,176,100,101,454,455,182,37,38,39],"Canvas 2D","Tesseract.js","MediaPipe","Mermaid","IndexedDB",[42],{"title":458,"description":459,"path":460,"url":461,"images":462,"stack":478,"featured":40,"platforms":482},"ABR Image Viewer","Visor de imágenes privado para Windows, Linux y el navegador, hecho a mi gusto. Su función principal es el mosaico configurable, con varias imágenes a la vez y cada una con su zoom, su desplazamiento y su giro, diseños propios con celdas que se mueven y redimensionan, y autoreproducción por página o por celda. Además, galería con búsqueda, favoritos, metadatos EXIF, atajos reasignables y modo incógnito. La app de escritorio usa Tauri y su instalador ocupa 2 MB.","\u002Fproyectos\u002Fimage-viewer","https:\u002F\u002Fabdell1999.github.io\u002Fimage-viewer-public\u002F",[463,466,469,472,475],{"src":464,"alt":465,"width":13,"height":14},"\u002Fimages\u002Fposts\u002Fimage-viewer\u002Fportada.webp","El visor en modo mosaico con una cuadrícula de 2x2 fotos de paisajes y la galería de miniaturas a la izquierda",{"src":467,"alt":468,"width":13,"height":14},"\u002Fimages\u002Fposts\u002Fimage-viewer\u002Fdiseno-propio.webp","Un diseño de mosaico propio con una foto panorámica arriba y tres debajo, con la celda central seleccionada y sus asas para moverla y redimensionarla",{"src":470,"alt":471,"width":13,"height":14},"\u002Fimages\u002Fposts\u002Fimage-viewer\u002Fpresets.webp","El desplegable de diseños de mosaico, de 1x2 Horizontal a 4x4 Cuadrícula",{"src":473,"alt":474,"width":13,"height":14},"\u002Fimages\u002Fposts\u002Fimage-viewer\u002Fmosaico-3x3.webp","Nueve fotos a la vez en una cuadrícula de 3x3",{"src":476,"alt":477,"width":13,"height":14},"\u002Fimages\u002Fposts\u002Fimage-viewer\u002Fclaro.webp","El modo mosaico con el tema claro",[479,72,27,28,29,70,68,455,480,481,182,37,39],"Tauri 2","exifr","vue-virtual-scroller",[42,43],{"title":484,"description":485,"path":486,"url":127,"images":487,"stack":506,"featured":40,"platforms":513},"ABR Transfer","Aplicación de escritorio para pasar archivos y carpetas entre dispositivos de la misma red local, sin configurar carpetas compartidas ni permisos del sistema y sin subir nada a la nube. Quien envía crea una sesión temporal con enlace y QR y acepta cada conexión con un PIN. Quien recibe descarga con la app, con pausa y reanudación a mitad de archivo y verificación SHA-256, o desde cualquier navegador, también el del móvil. Para Windows y Linux, hecha con Tauri y Rust.","\u002Fproyectos\u002Fabr-transfer",[488,491,494,498,502],{"src":489,"alt":490,"width":441,"height":201},"\u002Fimages\u002Fposts\u002Fabr-transfer\u002Fsesion.webp","Una sesión activa de ABR Transfer con el código QR, la interfaz de red elegida y el enlace para copiar",{"src":492,"alt":493,"width":441,"height":91},"\u002Fimages\u002Fposts\u002Fabr-transfer\u002Fsolicitud.webp","Una solicitud de conexión desde 192.168.1.129 con su PIN de cuatro cifras y los botones de aceptar y rechazar",{"src":495,"alt":496,"width":441,"height":497},"\u002Fimages\u002Fposts\u002Fabr-transfer\u002Fprogreso.webp","Una descarga en curso al 30 %, a 644 MB\u002Fs y con 5 segundos restantes",220,{"src":499,"alt":500,"width":441,"height":501},"\u002Fimages\u002Fposts\u002Fabr-transfer\u002Fverificado.webp","El resumen de una descarga de 4 GB y la verificación de integridad correcta de 21 archivos",470,{"src":503,"alt":504,"width":505,"height":390},"\u002Fimages\u002Fposts\u002Fabr-transfer\u002Fnavegador.webp","La página que ve un navegador al conectarse, con la lista de archivos y los botones de descargar y descargar todo en ZIP",560,[479,72,507,508,509,510,511,512,28,29,70,71,37,39],"axum","tokio","reqwest","sha2","crc32fast","Nuxt 3",[43],{"title":515,"description":516,"path":517,"url":518,"images":519,"stack":533,"featured":40,"platforms":538},"CookieNuke","Extensión de Chrome que borra las cookies y los datos de un sitio en cuanto cierras su última pestaña o te vas de él. Puedes elegir los sitios que se limpian o limpiarlo todo menos los que protejas. Pensada para ordenadores que no son tuyos, donde no quieres dejar sesiones abiertas, y para que las webs y los algoritmos te sigan menos en el tuyo. Con limpieza manual de un clic o con Alt+Shift+K, periodo de gracia, cookies que se conservan por sitio y contador en el icono. Todo local, sin telemetría.","\u002Fproyectos\u002Fcookie-nuke","https:\u002F\u002Fchromewebstore.google.com\u002Fdetail\u002Fcookie-nuke\u002Fmnklbdnmhgojhbeejmaoofonlobocekm",[520,524,527,530],{"src":521,"alt":522,"width":325,"height":523},"\u002Fimages\u002Fposts\u002Fcookie-nuke\u002Fpopup.webp","El popup de CookieNuke sobre un sitio vigilado, con la limpieza manual por tipo de almacenamiento, el botón Borrar Todo y las limpiezas recientes",800,{"src":525,"alt":526,"width":325,"height":523},"\u002Fimages\u002Fposts\u002Fcookie-nuke\u002Flista.webp","La lista de vigilancia en las opciones, con el formulario para añadir un dominio y seis sitios, uno de ellos en pausa",{"src":528,"alt":529,"width":325,"height":523},"\u002Fimages\u002Fposts\u002Fcookie-nuke\u002Fmodo-proteccion.webp","La pantalla para activar el modo protección, con los sitios que tienen cookies, cuántas tiene cada uno y los que se van a proteger marcados",{"src":531,"alt":532,"width":325,"height":523},"\u002Fimages\u002Fposts\u002Fcookie-nuke\u002Fajustes.webp","Los ajustes avanzados con el retraso antes de limpiar, el contador de cookies en el icono y el botón de los atajos de teclado",[99,117,403,29,404,534,535,536,405,537,37],"Chrome Cookies","Chrome Browsing Data","Chrome Scripting","Storage Session",[106],{"title":540,"description":541,"path":542,"url":543,"images":544,"stack":557,"featured":40,"platforms":560},"ABRjson","Editor de JSON que funciona entero en el navegador, pensado para archivos grandes, de más de 1 MB, como el contenido de una web con todas sus traducciones. Texto y grafo visual sincronizados, búsqueda de claves y valores en todo el documento, validación y generación de JSON Schema, y guardado en el mismo archivo sin tocar nada que no hayas cambiado. Sin límites de tamaño artificiales, sin servidor y usable sin conexión.","\u002Fproyectos\u002Fabrjson","https:\u002F\u002Fabdell1999.github.io\u002Fabrjson-public\u002F",[545,548,551,554],{"src":546,"alt":547,"width":13,"height":14},"\u002Fimages\u002Fposts\u002Fabrjson\u002Fbusqueda.webp","La búsqueda de ABRjson con la ruta hero.title y tres resultados, uno por idioma, en un JSON de 1 MB",{"src":549,"alt":550,"width":13,"height":14},"\u002Fimages\u002Fposts\u002Fabrjson\u002Finspector.webp","El editor y el grafo con la propiedad cta seleccionada y el editor de nodos abierto para cambiar su valor",{"src":552,"alt":553,"width":13,"height":14},"\u002Fimages\u002Fposts\u002Fabrjson\u002Fesquema.webp","El panel de esquema con el documento marcado como inválido y tres errores, y el grafo centrado en un precio escrito como texto",{"src":555,"alt":556,"width":13,"height":14},"\u002Fimages\u002Fposts\u002Fabrjson\u002Fgrafo.webp","El grafo a pantalla completa con un producto y sus traducciones en español, inglés y francés",[27,28,29,70,558,559,68,455,406,69,404,182,37,38,39],"CodeMirror 6","jsonc-parser",[42],1793761187495]