El punto de partida

Hubo un momento en 2019 en que creí que era posible codificar la confianza. No hablar de ella, no simularla con un formulario de reseñas, sino diseñar una estructura de datos que la hiciera circular entre personas. Ese impulso fue Sueño Dorado: una plataforma de economía colaborativa construida sobre Symfony, PHP y WebSockets, con una jerarquía de monedas —Diamante, Esmeralda, Rubí, Oro, Dorado— que pretendía representar algo más que rangos en una base de datos.

No llegó a producción masiva. Pero me enseñó más sobre sistemas sociales que cualquier cosa que haya leído después.

La idea detrás de las monedas

El núcleo del proyecto era un modelo de economía en árbol. Cada usuario tenía una moneda con un rango y una posición. Las monedas se relacionaban entre sí en una jerarquía padre-invitado: una moneda Diamante podía tener Esmeraldas debajo, cada Esmeralda sus Rubíes, cada Rubí sus Oros. Existía además el concepto de MonedaApoyo, una moneda de apoyo independiente que reforzaba el grafo sin pertenecer a la cadena principal.

El algoritmo que construí para recorrer ese árbol —arbolDeMonedaPosicion— era esencialmente un BFS (búsqueda en anchura) codificado a mano en PHP, nivel por nivel, llenando nodos vacíos con centinelas (relleno: 0) cuando una posición no estaba ocupada. Era torpe en muchos sentidos. Pero detrás de esa torpeza había una intuición correcta: la posición de una persona en una red no es solo su nodo, es su contexto en el grafo completo.

Lo que intentaba modelar es un problema que la teoría de redes lleva décadas estudiando: la centralidad no es equivalente al mérito individual. Un nodo puede tener alto rango no porque haya hecho más, sino porque tiene vecinos bien conectados. Sueño Dorado, sin saberlo todavía, estaba tocando el borde de esa idea.

La web como sistema social

El proyecto también tenía un servidor de chat en tiempo real basado en Ratchet (WebSockets en PHP). Para levantarlo había que correr un proceso en background: php bin/console chat:start, luego bg jobID, luego disown. Tres comandos manuales para mantener vivo un proceso. En ese detalle hay algo revelador sobre el estado mental con el que construí esto: la urgencia de que todo funcionara, aunque el andamiaje fuera frágil.

El chat no era un accesorio. Era la afirmación de que una plataforma de economía colaborativa necesita comunicación directa entre personas, no solo transacciones registradas en una tabla. La economía colaborativa —en su versión ideal, no en la versión plataformizada que terminó siendo Airbnb o Uber— depende de la conversación, de la negociación cara a cara mediada por la tecnología, no reemplazada por ella.

Ese énfasis en el canal de comunicación junto al canal de intercambio económico era conceptualmente correcto. La implementación era prematura, pero la arquitectura conceptual apuntaba a algo real.

Lo que el código revela sobre los modelos mentales de 2019

Mirar el código hoy me dice varias cosas sobre cómo pensaba entonces.

Primero: confiaba demasiado en que la estructura de datos resuelve el problema humano. Diseñé el árbol de monedas como si modelar la jerarquía fuera suficiente para incentivar la colaboración. Pero un árbol de rangos sin un mecanismo claro de cómo se asciende, sin una economía de incentivos bien definida, es solo una taxonomía. La estructura necesita un motor que la mueva.

Segundo: el proyecto mezclaba capas de abstracción sin separarlas bien. La lógica de negocio vivía dentro de los controladores, el recorrido del árbol se hacía en el controlador en lugar de en un servicio o en la capa de dominio. Era Symfony usado como un framework de rutas más que como una herramienta de arquitectura. Eso no es una crítica al desarrollador de 2019 —es la curva normal—, pero hoy lo vería desde el primer día.

Tercero, y quizás lo más interesante: la imagen del sistema era muy clara en mi cabeza. Los nombres de los archivos de imagen —Diamante.png, Esmeralda.png, Ruby.png, Dorado1.png, Dorado2.png— y los tutoriales en capturas (tuto1.png hasta tuto10.png) hablan de alguien que pensó el flujo de usuario con detalle, que imaginó cómo explicar el sistema a otra persona. Había un producto en la mente antes de que hubiera arquitectura sólida en el código.

El problema profundo que este proyecto no sabía que tenía

La economía colaborativa, como concepto, tiene una tensión irresuelta: quiere eliminar intermediarios pero necesita un mecanismo de coordinación que cumpla la función del intermediario. Cuando ese mecanismo es un algoritmo de ranking —como el árbol de monedas—, el intermediario no desapareció: se volvió invisible dentro del código.

Sueño Dorado no resolvió esa tensión. Ninguna plataforma de economía colaborativa lo ha resuelto del todo. Pero construirlo fue la primera vez que experimenté ese problema en carne propia: el momento en que diseñas un sistema y te das cuenta de que el sistema tiene consecuencias que no planeaste, que los incentivos que creas moldean comportamientos que no anticipaste.

Esa experiencia —la de construir un sistema y descubrir que el sistema piensa por su cuenta— es quizás la lección más duradera que dejó este proyecto. No sobre PHP ni sobre WebSockets. Sobre lo que significa diseñar reglas para que otros las habiten.

Dónde empieza todo

Este fue el primer proyecto donde la web dejó de ser una interfaz y se convirtió en un territorio. Un espacio donde las personas tienen posiciones, relaciones, rangos, canales de comunicación. Un sistema con reglas propias que produce comportamientos emergentes.

Desde entonces, cada proyecto que construyo parte de esa pregunta: ¿qué comportamientos va a producir este sistema cuando personas reales empiecen a habitarlo? La respuesta nunca es completamente predecible. Eso es lo que hace el diseño de sistemas tan cercano a la filosofía: ambos trabajan con modelos del mundo que, al aplicarse, transforman el mundo que modelaban.