De qué se trata

Work board es un tablero Kanban personal que funciona por completo en el navegador. No hay servidor, ni cuenta, ni seguimiento. Basta con abrir el archivo board.html con un doble clic para empezar. Los datos nunca salen de tu propio navegador.

La versión actual está disponible directamente como archivo ZIP:

https://github.com/netperformance/Kanban/archive/refs/tags/v0.0.9.zip

El proyecto es de código abierto con licencia MIT y está disponible en GitHub:

github.com/netperformance/Kanban

Funciones

  • Proyectos: tableros separados para distintos temas, mostrados como pestañas. Cada pestaña indica el número de entradas abiertas.
  • Columnas: crear, renombrar, colorear, mover, vaciar y eliminar. Cualquier columna puede marcarse como «terminada».
  • Entradas: título, descripción con formato, tipo (tarea, historia, error, idea), prioridad (de baja a crítica) y fecha de vencimiento. Las entradas vencidas se marcan en rojo y las que vencen hoy o mañana se resaltan.
  • Arrastrar y soltar entre columnas y dentro de una misma columna. En tabletas y móviles, se mantiene pulsada la entrada y se arrastra con el dedo.
  • Creación rápida: cada columna tiene su propio botón +.
  • Búsqueda en títulos y descripciones, accesible con la tecla /.
  • Filtros por tipo, prioridad y vencimiento, combinables libremente, por ejemplo solo los errores críticos. Cada proyecto recuerda su búsqueda y sus filtros.
  • Ordenación según el orden propio, la fecha de vencimiento o la prioridad. El orden propio se conserva.
  • Vista de lectura: un clic en el título muestra la entrada completa. El resto de la tarjeta queda libre para arrastrar, así que mover una tarjeta nunca abre un diálogo por accidente.
  • Ajustes: nombre propio para el tablero, idioma, diseño claro, oscuro o el del sistema operativo, exportación e importación.

Diseño oscuro con el filtro de errores activo

Vista de lectura de una entrada

Dónde se guardan los datos

Todo se guarda en el localStorage del navegador. Esto tiene un efecto secundario importante: cada navegador guarda los datos por separado para cada ubicación desde la que se abre el tablero. Si descomprimes los archivos en una carpeta nueva, al principio verás allí un tablero vacío.

Para actualizar, basta con copiar los archivos nuevos sobre los antiguos en la misma carpeta. Así se conservan las entradas. Para llevar un tablero a otro navegador o a otro ordenador, en Ajustes están la exportación y la importación como archivo JSON. Antes de cada importación, el tablero guarda una copia del estado actual en el navegador.

Si borras los datos del navegador, también borras el tablero. Por eso, exportar con regularidad es el mejor seguro.

Si los datos guardados llegan a dañarse, el tablero repara solo las partes defectuosas y conserva los datos originales como copia de seguridad. Si hay varias pestañas abiertas, se mantienen sincronizadas. Si dos pestañas hacen cambios al mismo tiempo, el segundo cambio se rechaza en lugar de sobrescribir el primero sin avisar.

Seguridad

Incluso una aplicación local debe estar bien protegida, sobre todo porque las descripciones contienen texto con formato.

  • Content Security Policy: solo pueden ejecutarse los scripts y estilos propios del tablero, las peticiones externas están bloqueadas.
  • Sanitizador con lista de permitidos: en las descripciones solo se conserva el formato que ofrece el propio editor. Todos los demás elementos y atributos se eliminan.
  • El texto pegado se inserta siempre como texto sin formato, de modo que ni formatos ajenos ni código acaban en una entrada.
  • Sin dependencias en tiempo de ejecución y sin paso de compilación. Lo que está en el repositorio es exactamente lo que se ejecuta en el navegador.

El editor de descripciones usa las API Selection y Range del navegador y prescinde del obsoleto document.execCommand().

Limitaciones

  • No hay sincronización entre dispositivos. Para llevar un tablero a otro equipo se usan la exportación y la importación.
  • El orden dentro de una columna solo se puede cambiar con el ratón o con el dedo, no con el teclado.
  • El tablero está pensado para una sola persona. El trabajo en equipo no es su objetivo.

Conclusión

Work board es pequeño a propósito: un archivo HTML, algo de CSS y JavaScript, sin instalación. Aun así, ofrece todo lo necesario para la planificación personal del día a día, desde filtros y fechas de vencimiento hasta el diseño oscuro. Los comentarios y las pull requests son bienvenidos en GitHub.