Colección de utilidades para desarrolladores, pensada para resolver pequeños problemas que aparecen durante el análisis y debugging de software: decodificar un Base64, validar un JSON, inspeccionar payloads, comparar respuestas, etc.
En lugar de depender de sitios externos o scripts sueltos, Toolbox concentra esas tareas en un solo lugar. Todo corre 100% en el navegador: tus datos no salen de tu máquina.
Cuando debuggeamos APIs, revisamos logs o analizamos respuestas de servicios, repetimos las mismas micro-tareas: convertir Base64 a imagen, formatear JSON ilegible, validar si un payload es válido, comparar dos respuestas, etc. Son fricciones pequeñas, pero interrumpen el flujo.
Toolbox existe para eliminar esa fricción: herramientas rápidas, locales y encadenables (en el futuro) dentro de una interfaz consistente.
- SvelteKit + Svelte 5 (runes)
- shadcn-svelte (preset
b6rt8ttCM, temamist) - Tailwind CSS 4
- Bun como package manager
bun install
bun run devOtros comandos útiles:
bun run build # build de producción
bun run preview # preview del build
bun run check # type-check con svelte-check
bun run test # tests con vitest
bun run lint # prettier + eslint- Layout con sidebar, navbar y command palette (
⌘K) - Dashboard generado desde el tool registry
- Dark mode (
mode-watcher) - Componente
ToolShellreutilizable por herramienta - Tool registry como fuente única de verdad (
src/lib/tools/registry.ts)
| Tool | Ruta | Estado |
|---|---|---|
| Base64 encode/decode (texto, archivos, preview de imagen/PDF) | /tools/base64 |
✅ |
| JSON (prettify, minify, validate, sort, escape, JSON→TS, YAML, JSONPath, diff) | /tools/json |
✅ |
| URL encode/decode + query-string parser | /tools/url |
✅ |
JWT decoder (header/payload/signature, validación de exp) |
/tools/jwt |
✅ |
| UUID / NanoID / ULID generator | /tools/uuid |
✅ |
| Hash (MD5, SHA-1/256/512) y HMAC | /tools/hash |
✅ |
| Regex tester con highlight de matches y replace | /tools/regex |
✅ |
| Timestamp ↔ fecha humana (Unix, ISO, zonas horarias) | /tools/timestamp |
✅ |
| Text diff (Myers diff, inline + unified) | /tools/diff |
✅ |
| Markdown preview (GFM → HTML sanitizado) | /tools/markdown |
✅ |
| CSV ↔ JSON (delimitadores custom, dynamic typing) | /tools/csv |
✅ |
| Cron expression parser (próximas ejecuciones) | /tools/cron |
✅ |
| Color converter (HEX ↔ RGB ↔ HSL ↔ OKLCH ↔ OKLab) | /tools/color |
✅ |
| Image → WebP/AVIF/JPEG/PNG (client-side con canvas) | /tools/image |
✅ |
| QR code generator (text, URL, WiFi, vCard, geo, calendar) | /tools/qr |
✅ |
| Dataflow (editor de nodos) | /dataflow |
🔜 placeholder |
Roadmap pensado para crecer por fases. Marca [x] conforme avances en futuras sesiones.
- Tool registry + tipos (
ToolDefinition, categorías,NodeSpec) - Layout (sidebar + navbar + command palette + theme toggle)
- Dashboard con cards desde el registry
-
ToolShell(header, descripción, clear, copy/download, toasts)
- Encode: texto y archivos (drag & drop)
- Decode: data URLs, sniff de MIME, preview imagen/PDF/texto/binario
- Lógica pura en
src/lib/tools/base64/tool.ts
- Prettify, minify, validate, sort keys
- Escape / unescape, JSON → TypeScript
- JSON ↔ YAML, JSONPath, diff lado a lado
- Lógica pura en
src/lib/tools/json/tool.ts
Prioridad sugerida según utilidad diaria en debugging:
- URL encode/decode + query-string parser
- JWT decoder (header/payload/signature, validación de
exp) - UUID / NanoID / ULID generator
- Hash (MD5, SHA-1/256/512) y HMAC
- Regex tester con highlight de matches y replace
- Cron expression parser (próximas ejecuciones)
- Timestamp ↔ fecha humana (Unix, ISO, zonas horarias)
- Color converter (HEX ↔ RGB ↔ HSL ↔ OKLCH)
- Text diff (Myers diff)
- Markdown preview
- QR code generator / reader
- Image → WebP/AVIF (client-side con
<canvas>) - CSV ↔ JSON
Cómo agregar una tool nueva:
- Crear
src/lib/tools/<id>/tool.ts(funciones purasrun()) - Crear
src/lib/tools/<id>/<Id>Tool.svelte(UI conToolShell) - Registrar en
src/lib/tools/registry.ts - Crear ruta en
src/routes/(app)/tools/<id>/+page.svelte
El sidebar, command palette y dashboard se actualizan solos.
- Instalar
@xyflow/svelte(Svelte Flow) - Canvas en
/dataflowcon catálogo de nodos desde el registry - Conexiones tipadas (
text,json,binary,image) - Ejecutor: topological sort →
tool.run()por nodo → propagar resultado - Persistencia del flow en
localStorage
- Historial por tool (últimos N inputs/outputs) en
localStorage - Flows guardados con nombre
- Export/import de flows como
.json - URL share opcional (input comprimido en hash
#data=...)
- PWA (offline real)
- Tests con vitest para cada
tool.run() - Atajos de teclado por tool
src/lib/tools/registry.ts → sidebar, command palette, dashboard, (futuro) nodos
src/lib/tools/<id>/tool.ts → lógica pura, reutilizable en dataflow
src/lib/tools/<id>/*Tool.svelte → UI de la herramienta
src/routes/(app)/ → layout + rutas
Principio clave: cada herramienta expone una función run(input) → output además de su UI, para poder encadenarlas en el editor de nodos.
| Fase | Paquetes |
|---|---|
| 2 (JSON) | yaml, jsonpath-plus ✅ instalados |
| 3 | cron-parser, cronstrue, culori, diff, marked, dompurify, qrcode, papaparse ✅ instalados |
| 4 | @xyflow/svelte |