Entrevista con Pato por el proyecto Decentralized Party
Pato es el creador de Decentralized Party, el proyecto del Taller de Innovación que él describe como "Una red social decentralizada". Comenzó el 22 de agosto y llevó 5 semanas de desarrollo.
Introducción
Nos sentamos con Pato a conversar sobre el proyecto.
Entrevista
¿Cómo se te ocurrió la idea para Decentralized Party?
Cuando Elon Musk compró Twitter y comenzó a hacer cambios, por lo menos, impopulares pensé ¡Hey! sería bueno que exista una red social alternativa que no dependa de una empresa. En aquel entonces muchos usuarios se pasaron a Mastodon pero todo el asunto de los servidores me pareció un poco engorroso. También está Threads o Bluesky como alternativas, pero también tienen características que son molestas y podrían empeorar en el futuro. Instalar un servidor que sea el host de la red social puede ser demasiado complicado y caro entonces, inspirado en la tecnología blockchain o en los torrents pensé ¿Y si cada usuario participando pudiera ser su propio servidor? Buscando información sobre si esto era posible me encontré con la tecnología WebRTC, que son las siglas de Real Time Communication. Muchos ejemplos eran sobre como hacer un videochat que enviara el stream de video directamente de browser a browser. Esa fue la primera prueba que hice, pude enviar el video de una webcam directamente a otro navegador ¡No lo podía creer! Para comprobar que verdaderamenta estaba sucediendo peer-to-peer apagué el servidor y sí, el video se seguía transmitiendo.
¿Cómo fue el proceso de desarrollo?
Como este fue el segundo proyecto del Taller de Innovación, y el primero para mí como proyectista, hubo muchas cosas de la metodología del Taller que eran una incógnita. Todo tenía sentido en la teoría, al leer la documentación, pero en la práctica era completamente experimental. Le tengo que agradecer muchísimo a Ema que fue el padrino del proyecto la buena voluntad y el compromiso. La verdad es que yo esperaba cada meeting de avance con entusiasmo porque siempre, o casi siempre, había cosas nuevas que mostrar o ideas que charlar. Conversar sobre el proyecto esos minutos durante la meeting fueron reveladores. Muchas veces me fui de ahí no con ideas de qué features agregar sino de qué features quitar y cómo hacer que el proyecto se acerque más a la esencia de la idea.
¿Con qué problemas te encontraste?
Había mucho en la manera de conectar WebRTC que era poco claro. Muchos ejemplos usan únicamente dos usuarios así que expandirlo a muchos usuario fue un problema algo complicado. Typescript es fantástico pero también es un dolor de cabeza, especialmente en todo lo relacionado con WebSocket. Usar WebSocket dentro del servidor de desarrollo de Vite fue un desafío en sí mismo y creó toda una serie de problemas.
¿Algún aspecto técnico que hayas aprendido durante el desarrollo de Decentralized Party?
Obviamente de WebSocket tuve que refrescar lo que sabía y de WebRTC tuve que aprender todo desde cero. La documentación sobre WebRTC es bastante imperfecta y los ejemplos que hay son pocos, repetidos y con usos muy básicos. Otra cosa que aproveché para explorar son los últimos features de Node como la posibilidad de correr typescript directamente.
¿Te quedó algo en el tintero que sentís que idealmente se le pudiera agregar al proyecto?
Sería ideal no necesitar ni siquiera de un servidor para hacer el handshake con WebSocket. Tengo algunas ideas experimentales para probar, pero poder compartir la url de la party es tan práctico que no sé si vale la pena. Otra cosa que podría ser buena sería la posibilidad de que los propios usuarios puedan moderar los contenidos, poner reglas, votar a quién echar o algo así, si no, cualquier usuario malicioso podría arruinar una party. Barajamos la posibilidad hasta de mantener el historial de los posts como una especie de blockchain.
¿Qué conclusión sacás del Decentralized Party como proyecto y de la tecnología aplicada? ¿Le ves potencial?
Potencial tiene, incluso si no se le da el uso de red social, puede servir para compartir archivos o algún tipo de dato. Obviamente el hecho de que sea 100% decentralizada hace que sea imposible de censurar o manipular por una entidad central, para bien y para mal. Por eso se podría usar esta tecnología desde para piratería de películas o stream de eventos deportivos hasta para uso directamente criminal. En cualquier caso prefiero haber explorado la tecnología y que el proyecto sirva para educar a los usuarios sobre su potencial.
¿Algún consejo para otros participantes del Taller de Innovación?
La dinámica con el padrino es clave. Más de una vez no tuve ganas o inspiración para desarrollar para el proyecto pero el compromiso de saber que Ema tenía la generosidad de "hacerme la segunda" me hacía poner en la cabeza la "obligación" de hacer el esfuerzo. Y ahora viendolo todo como una sola cosa creo que valió la pena. Una idea nebulosa que tenía el día 1 ahora es un proyecto concretado y la creatividad de la idea fue lo de menos. Lo creador fue todo el proceso.
¿Ideas para futuros proyectos para el Taller de Innovación?
¡Un juego! Algo sencillo, podría ser como una versión digital de un juego de mesa o algo así. Eso sería divertido. También tengo una idea para una especie de red social anti red social, algo para volver a encontrarse cara a cara. Más allá de eso hay un montón de herramientas internas del Taller de Innovación que estoy programando. Estoy en un momento muy creativo, la verdad.
Conclusión
Le agradecemos a Pato por compartir sus ideas con nosotros. Estaremos atentos a Decentralized Party y a sus futuros proyectos.
Para finalizar
Si te inspiró Decentralized Party puedes sugerir tu proyecto, de cualquier índole, en el canal #taller-de-innovacion de Slack. ¡Nos vemos!