Driver.js: biblioteca de Vanilla JS para tours de producto, resaltado y ayuda contextual
(driverjs.com)- Es una biblioteca ligera de JavaScript que permite añadir tours de producto y resaltado en pantallas donde necesitas guiar a los usuarios dentro del producto
- Funciona con Vanilla JavaScript, no tiene dependencias y es compatible con los principales navegadores y dispositivos móviles
- Es un proyecto open source con licencia MIT escrito en TypeScript, con énfasis en la personalización y el soporte de accesibilidad
- Está orientada a flujos de guía dentro del producto como onboarding de usuarios, enfoque de atención, ayuda contextual e impulso a la adopción de nuevas funciones
- Cuenta con millones de descargas y 26K estrellas en GitHub; los ejemplos iniciales y la documentación pueden consultarse en la documentación oficial
Naturaleza de la biblioteca y alcance de soporte
- Driver.js es una biblioteca ligera de JavaScript que ayuda a los usuarios a comprender el producto mediante tours de producto, resaltado y ayuda contextual
- Al estar basada en Vanilla JavaScript, puede usarse sin dependencias adicionales y está escrita en TypeScript
- Sus características en términos de soporte y configuración son las siguientes
- Compatibilidad con los principales navegadores y dispositivos móviles
- Alta capacidad de personalización
- Estructura ligera y funciones abundantes
- Licencia MIT
- API fácil de usar
- Soporte de accesibilidad
- Lista para frameworks
Formas de uso dentro del producto
- Onboarding de usuarios: permite explicar paso a paso cómo usar el producto y guiar para responder preguntas comunes
- Eliminación de distracciones: permite resaltar elementos importantes para enfocar la mirada del usuario en un área específica
- Ayuda contextual: permite ofrecer instrucciones de uso y ayuda justo en el momento necesario dentro del producto
- Adopción de funciones: permite resaltar nuevas funciones y explicar cómo usarlas para que los usuarios no las pasen por alto
Documentación e información del proyecto
- Más ejemplos y la forma de empezar están disponibles en la documentación
- El repositorio de GitHub es kamranahmedse/driver.js y muestra 26K estrellas en GitHub
1 comentarios
Opiniones en Hacker News
No, los productos deberían estar diseñados para entenderse aunque sea la primera vez que los ves.
Apple es famosa por casi no hacer esto en el iPhone, mientras que Sony obliga a pasar por este proceso con cada dispositivo nuevo.
El onboarding debería ser algo que impulse la usabilidad; esto no es una herramienta de apoyo, sino algo peor y dañino.
La usabilidad de iOS es un desastre, tiene poca affordance y baja descubribilidad.
Hay demasiadas formas de entrada, sobre todo gestos, que no conoces si nadie te las dice o no las buscas, y no son consistentes entre apps, ni siquiera entre las apps básicas de Apple.
A veces “deslizar una fila hacia la izquierda” significa “eliminar”, y otras veces “más acciones”; es un caos.
Cuando ves a usuarios no técnicos usando un iPhone, muchas veces no conocen ni la mitad de las funciones disponibles. Por ejemplo, ¿alguna vez has visto a alguien usar “agitar para deshacer”?
Pero hace poco me registré en HubSpot como CRM y, aunque en general me pareció un producto bien organizado e intuitivo, hacerlo tan intuitivo como un smartphone es difícil o casi imposible. En casos así, un recorrido del producto ayuda bastante.
Es decir, se parece a un ideal inalcanzable que no existe en la realidad.
Con el nivel actual de experiencia de usuario, me cuesta creer que podamos crear una UI que no necesite en absoluto recorridos del producto, documentación, tutoriales en video, etc., al menos a partir de productos con cierta complejidad.
Pero es distinto en las apps B2B, donde suelen usarse tutoriales de demo del producto. Un buen tutorial de producto le sirve al vendedor para guiar al cliente por la app y venderla bien a un prospecto.
Si el contrato es de decenas o cientos de miles de dólares y el producto es bastante complejo, es una mejor solución que tener al equipo de ventas y soporte apagando incendios constantemente.
¿Soy el único que cierra estas cosas lo más rápido posible mientras se queja de lo molestas que son?
Normalmente se pueden omitir, pero casi nunca es fácil encontrar cómo reiniciarlas cuando uno decide que sí quiere aprender bien la app.
También sirve para mostrar funciones nuevas que fueron solicitadas, pero que no ameritan ocupar espacio en la pantalla principal.
Solo molesta cuando señala cosas obvias.
Entre lo útil y lo hostil no hay una línea fina, sino una línea grande y clara con luces intermitentes y sirenas.
Como usuario de productos odio los recorridos del producto, pero como desarrollador de productos siempre termino queriendo una alternativa open source.
Esta biblioteca se ve bastante genial porque los efectos parecen fluidos.
Por lo que he visto personalmente al crear algunos productos, incluso los recorridos de producto mejor diseñados se cierran alrededor del 90% de las veces en productos para pymes y consumidores.
Me gustan un poco estas funciones.
No las impongas a los usuarios nuevos; pregúntales si quieren hacer el recorrido.
Úsalas con moderación solo cuando se agregue una función nueva, un botón o un cambio en la app; muéstralas solo una vez por sesión, y que el prompt tenga opciones de “Cerrar/Recorrer”.
Es mejor que la experiencia de usuario de la app sea intuitiva, pero un recorrido no obligatorio puede ayudar.
Es mejor que una pantalla intermedia durante el inicio de sesión para anunciar funciones.
Muchos diseñadores parecen creer que cuando abro una app pienso “¿qué delicia habrán preparado hoy estas personas tan geniales?” y que me sobra el tiempo.
En realidad, la mayoría de las veces abro la app porque necesito terminar algo específico ahora mismo, y ese es el momento en que estoy menos dispuesto a que alguien me ponga enfrente fotos de su hijo-producto y me haga decir “sí, qué bonito”.
El momento en que de verdad estoy abierto a un recorrido es después de terminar mi tarea, o justo cuando acabo de darme cuenta de que no sé cómo hacer lo que quiero hacer.
Los recorridos del producto no siempre son malos, pero es común que estén mal implementados, con demasiados pasos que no significan nada para el usuario.
En general, es mejor un onboarding contextual, como tips integrados; relevante, como onboarding personalizado por persona; u orientado a la acción, como checklists.
Después de liderar en Dropbox el equipo de onboarding y educación dentro de la app, lancé Dopt [0], que es una biblioteca de componentes React y un SDK para crear con facilidad experiencias de onboarding más contextuales y menos intrusivas, como tips integrados y checklists, no solo recorridos.
Con Dopt también puedes crear, cuando haga falta, algo como un recorrido de 2 pasos para presentar una función nueva, pero queremos ofrecer una caja de herramientas más grande y mejor para todo tipo de onboarding y educación.
[0] https://dopt.com/
Y también me da curiosidad lo de “Hybrid work”.
A primera vista está bien que lo hayan indicado de antemano, pero existiendo estudios[0] que muestran que el trabajo 100% remoto lleva a empleados más productivos, me pregunto por qué decidieron que el modelo híbrido era la solución.
[0]: https://thehill.com/business/4110598-remote-employees-work-l...
Se ve bien. ¿Qué lo diferencia de Shepherd[0]?
[0]: https://github.com/shipshapecode/shepherd
https://devboard.gitsense.com/shipshapecode/shepherd
https://devboard.gitsense.com/kamranahmedse/driver.js
En las últimas semanas, la popularidad de driver.js creció mucho, aunque no sé bien por qué
Como referencia, esta es una herramienta que hice yo
El problema con estos recorridos es que te ponen demasiada información frente a la cara en muy poco tiempo y luego desaparece
Unos minutos después, el usuario termina preguntando: “¿para qué era esta sección?”
Lo usé hace tiempo cuando estaba creando una plataforma de control de drones; el dashboard era complejo, así que había que saber antes de hacer clic qué sección era para pilotaje y cuál para el feed de video
Pero los usuarios muchas veces ni leían, solo asentían y apretaban Siguiente; al final lo quitamos y pusimos íconos de información en cada sección para que pudieran ver la explicación al pasar el mouse
Creé la librería https://github.com/Evernote/Aquaman para hacer algo parecido en una app con Redux. También hice lo mismo para React context, pero no se publicó como open source
Lo que falta aquí es que 1) el estado de la app puede tener que disparar un recorrido guiado, 2) tarde o temprano es muy probable que se necesite un flujo de varios pasos, y 3) la lógica de cambios de estado de ese flujo debería estar separada de la lógica de renderizado
Todos los pasos del flujo deben estar juntos. Con Aquaman se podía implementar eso
Como usuario no me gusta, pero como desarrollador es una buena librería para satisfacer requisitos del equipo de producto
Hoy vi una demo de Walnut.io [1] para otro producto; me salté la mayor parte y casi no entendí el producto
Creo que depende más de quién y cómo arma el recorrido del producto que de la herramienta en sí
Algunos productos son complejos y pueden necesitar explicación, o la guía de un ingeniero de soluciones o un ejecutivo de cuenta. No existe un producto tan increíble que no necesite ningún tipo de ayuda o recorrido
[1] https://walnut.io