APORIA

Author's note: I originally wrote this submission in Spanish. The English translation was produced with the assistance of a large language model (LLM). The ideas, project, design decisions, and original text are my own.

Project name

APORIA

Tagline

A social network that wants you to leave as quickly as possible. So you can go out and meet actual people, face to face.

What it does

You meet interesting people at a conference, a talk, a hackathon, or a language-exchange event. The conversation flows, you exchange contact information, and someone says:

"We should do something afterward."

Perfect. Now there's just the small matter of organizing ten people who have only just met.

One person is free on Friday, another will arrive late, someone has a limited budget, another person is vegan, someone suggests a place forty kilometers away, and there are three screenshots nobody ever gets around to reading.

What started as a good idea now requires a coordinator, a spreadsheet, and possibly a crisis committee. And then there are the usual WhatsApp groups, where everything gets buried under messages and your phone never stops buzzing.

So I limited the chat to five messages per person, per event, reserved for urgent communication. The rest of the planning process can happen through votes, proposals, AI assistance, availability schedules, suggested activities, and screenshots. You even have to confirm the screenshot you uploaded, just in case you accidentally selected the wrong photo. Because, well... that could get interesting.

That's why I built APORIA.

APORIA is a temporary social coordination space that turns scattered suggestions, schedules, budgets, preferences, and constraints into options a group can compare and decide on together.

The idea is simple: create a room, gather the necessary information, find a workable plan, and go enjoy it.

Only the person creating the room needs to register with an email address. They can sign in with Google or, if they're worried Interpol might be looking for them, use a more alternative email account.

Joking aside, this is also about thinking seriously about security. Someone might be a journalist, for example, or a person who has legitimate reasons to avoid being tracked or identified.

The repository may look simple, but behind it are many serious design decisions, multiple rounds of red-team testing, and ideas that were arguably excessive for a social planning app — such as using zero-knowledge proofs for identity verification. Yes, blockchain and cryptography. For organizing a night out.

You don't need to know everyone beforehand, complete an endless profile, or become a regular user of yet another platform.

It's an ephemeral room. Once its purpose has been fulfilled — meaning the actual get-together — it can be deleted. There is a way to restore limited information, but only to remember things like previously suggested places, not to recover personal information.

How does it work?

1. Someone creates a room.

For example: "Post-hackathon hangout."

They share a link or meeting number. Invited participants can join, observe the suggestions, and decide when and how much they want to participate.

Well, when it comes to the chat, I made part of that decision for them: up to five messages per person, per event. Haha.

Nobody has to jump into the conversation immediately. Observing is a valid form of participation, although some applications apparently haven't figured that out yet.

2. Everyone contributes what they know.

Availability, budget, location, preferences, dietary needs, and suggestions.

Participants can also submit screenshots or natural-language text.

Not everyone wants to fill out six forms just to say they're available after seven in the evening.

That's what the AI is there for. It reads the information, extracts what matters, and proposes how to incorporate it into the shared planning context.

3. Gemini helps interpret the information.

The AI extracts useful details from those contributions and proposes a structured interpretation.

But there's one condition:

The person who provided the information must confirm that Gemini understood it correctly.

4. APORIA compares the options.

Using the confirmed information, a deterministic evaluator checks proposals against the group's schedules, budgets, and other conditions.

The AI can interpret information and suggest places. It doesn't get to decide on behalf of the participants what makes a plan viable.

If no option satisfies the current conditions, APORIA can show what adjustments would make an alternative possible, without silently changing what anyone originally said.

The goal isn't to produce a convincing answer. It's to help the group make an informed decision.

And to do it without everyone standing around, individually Googling things on their phones and asking whichever AI assistant they happen to use.

Instead, it's simple: boom. Everyone joins, adds their availability and suggestions, and the group gets alternatives to consider.

No more standing outside an event for three hours asking, "So, where are we going?" "Oh, I don't know," while watching one packed bus after another go by.

5. The group actually meets.

They agree on a place, a time, and a plan.

The room exists for that specific get-together. Once the event is over, the idea is to close it. The creator can delete it, with a limited recovery period.

If people want to see one another again, they can organize another gathering in a new room.

We really don't need to turn a coffee outing into a permanent digital community.

What problem does it solve?

Messaging apps are excellent for having conversations, but not necessarily for turning group conversations into decisions.

Information gets lost between messages. People repeat their availability. Some suggestions are discarded without anyone knowing why. Others move forward despite overlooking needs someone already mentioned.

APORIA brings that information into one shared context, lets people correct the AI's interpretations, and explains how alternatives are evaluated.

It doesn't want people to spend more time in an app. It wants them to spend less time organizing and more time actually seeing one another.

And yes, I'm aware that's a rather strange strategy for a social network.

Fortunately, APORIA doesn't want to be another social network.

Who it's for

APORIA is designed especially for young adults, roughly between 25 and 40, who attend events, conferences, meetups, hackathons, cultural activities, or language-exchange gatherings.

People who may have met twenty minutes ago and now want to organize something together.

They aren't necessarily friends. They don't have an established group, and there may not be anyone particularly eager to take responsibility for coordinating everyone else.

APORIA also accommodates heterogeneous groups: different schedules, budgets, locations, dietary needs, and communication preferences.

I especially wanted participation to be gradual, without an interface that demands too many decisions upfront.

One person can observe before contributing. Another can write. Someone else can share a screenshot and review what Gemini interpreted.

The target audience is not "everyone who has friends."

It's people who want to turn one interesting encounter into another real-life meeting, without the effort of organizing it exhausting their enthusiasm before it even happens.

What we learned

The first thing I learned is that organizing a get-together isn't just about finding compatible schedules.

It also matters who contributed a suggestion, which information has been confirmed, which conditions are negotiable and which aren't, and how to explain why an alternative is or isn't possible.

That's why I separated three responsibilities:

Gemini interprets. People confirm. Code evaluates.

AI can be extremely useful for reading heterogeneous information, but interpreting a sentence doesn't give it the authority to automatically turn that interpretation into a fact.

I think that distinction matters even in a seemingly simple application for organizing social gatherings.

I also learned that designing a social tool forces you to decide what happens when it successfully fulfills its purpose.

Most platforms want to retain users, encourage conversations, and persuade people to keep coming back.

I wanted the opposite.

I wanted a room to be able to end. I didn't want chats to be stored indefinitely. I didn't want one event's information to contaminate the planning of the next. And I wanted people to return to APORIA because it had been useful, not because the application had convinced them to stay.

That led me to design a room lifecycle with closure, read-only access, deletion, and limited recovery.

A third lesson was that technical complexity shouldn't become complexity for the people using the product.

My professional background is in gastronomy. Organizing processes, anticipating constraints, and coordinating people with different needs were part of my job long before I started programming.

In a professional kitchen, nobody wants the organizational system to be more complicated than preparing the dish itself.

I applied the same principle to APORIA.

Finally, I used the Devpost Learn Skill Pack to work on the project's scope, requirements, and technical specification.

I already had experience building software with LLM assistance, and I had developed my own skills for coding agents, so I didn't approach the process as someone discovering repositories for the first time.

What interested me was seeing which parts of that methodology I could incorporate into my own workflow.

You don't have to adopt every tool literally to learn something from it.

And not every application needs to become an attention-capturing business to be useful.

Built with

  • React, TypeScript, and Vite for the web application.
  • Cloudflare Workers for the API and server-side logic.
  • Cloudflare D1 for persistent room and event data.
  • Google Gemini API to interpret text and images and suggest options.
  • Deterministic evaluation to check plans against confirmed information.
  • Codex and coding-agent skills for software development.
  • Devpost Learn Skill Pack for the documented planning process.
  • Webflow for the published web experience.

The project includes public source code, technical documentation, tests, and adversarial review records.

License: Apache 2.0.

Project links

Public repository:
https://github.com/annatchijova/aporia

Web experience:
https://aporia-bbb3f7.webflow.io/

Demo video:
[Add video link]


One last thing

APORIA isn't trying to replace spontaneous conversations.

In fact, it depends on them.

It wants to solve that awkward moment between "We should get together sometime" and realizing, three weeks later, that absolutely nobody organized anything.

APORIA — We want to see each other. Planning should feel just as good.

And if everything works as intended, the next important interaction happens away from the screen.

MIS RESPUESTAS ORGINALES EN ESPAÑOL:

Project name

APORIA

Tagline

Una red social que quiere que la abandones lo antes posible. Para que salgas a encontrarte con personas de verdad.

What it does — ¿Qué hace?

Conocés gente interesante en una conferencia, una charla, un hackathon o un encuentro de idiomas. La conversación fluye, intercambian contactos y alguien dice:

"Tenemos que hacer algo después".

Perfecto. Ahora falta resolver el pequeño problema de organizar a diez personas que acaban de conocerse.

Una puede el viernes, otra llega tarde, alguien tiene un presupuesto limitado, otra persona es vegana, alguien propone un lugar a cuarenta kilómetros y hay tres capturas de pantalla que nadie termina de leer.

Lo que empezó como una buena idea ahora necesita un coordinador, una planilla y, posiblemente, un comité de crisis. Y en las típicas redes de whatsapp donde se pierde todo entre mensajes y el teléfono no para de sonar.

Acá limité el chat a 5 mensajes, para que sean los urgentes, todo el flujo del encuentro se puede resolver por votos, propuestas, la IA, completar horarios, proponer ideas, mandar screenshots (que re.confirmás para jaja no haberte equivicado de foto...)

Para eso construí APORIA.

APORIA es un espacio temporal de coordinación social que transforma propuestas dispersas, horarios, presupuestos, preferencias y restricciones en opciones que un grupo puede comparar y decidir.

La idea es sencilla: crear una sala, reunir la información necesaria, encontrar un plan posible y salir a disfrutarlo. Para registrarse sólo quien crea la sala pone el mail, puede registrarse con Google o si teme ser buscado por la Interpol, una cuenta más alternativa. Fuera de broma, esto es pensar en seguridad, ya que quizás la persona es periodista, buscada y rastreada etc. El repositorio parece simple, pero tiene muchas decisiones de diseño serias, rondas red team e ideas que ya parecían exageradas como usar ZK vara validad identidad (blockchain-criptografía)

No hace falta conocerse previamente, completar un perfil interminable ni convertirse en usuario habitual de otra plataforma. Es una sala efímetra que al terminar el propósito: es decir el encuentro, se borra. Hay una manera de restaurarla pero solo para recordar lugares propuestos, nada de información personal.

¿Cómo funciona?

1. Alguien crea una sala.

Por ejemplo: «After del hackathon».

Comparte un enlace o número de reunión. Las personas invitadas pueden ingresar, observar las propuestas y decidir cuándo y cuánto quieren participar. Bueno, en el chat lo decidí yo por ellos: hasta 5 turnos por encuentro jaja (y persona)

No es obligatorio intervenir inmediatamente. Mirar también es participar, aunque algunas aplicaciones parezcan no haberse enterado.

2. Cada persona aporta lo que sabe.

Disponibilidad horaria, presupuesto, zona, preferencias, necesidades alimentarias y propuestas.

También puede aportar capturas de pantalla o texto en lenguaje natural. No todo el mundo quiere completar seis formularios para decir que puede después de las siete.Para eso está la IA, lee y extrae y lo pone en el contexto general.

3. Gemini ayuda a interpretar la información.

La IA extrae datos útiles de esos aportes y propone una interpretación estructurada.

Pero hay una condición: la persona que aportó la información tiene que confirmar que Gemini entendió correctamente.

4. APORIA compara opciones.

Con la información confirmada, un evaluador determinista examina las propuestas frente a los horarios, presupuestos y demás condiciones del grupo.

La IA puede interpretar información y sugerir lugares. No decide por las personas qué significa un plan viable.

Si las condiciones no permiten encontrar una opción, APORIA puede mostrar qué ajustes harían posible otra alternativa, sin modificar silenciosamente lo que cada persona indicó.

El objetivo no es producir una respuesta convincente, sino ayudar al grupo a tomar una decisión informada. Y sin que cada uno esté googleando en su teléfono preguntándole a la IA de turno. Esto es PUM, entran todos, ponen horarios sugerencias y se proponen alternativas. Esto evita estar parados tres horas luego de una salida de un evento y decir "a dónde vamos?" "ay no sé" y así mirando los colectivos llenos pasar.

5. El grupo se encuentra.

Se concreta un lugar, un horario y un plan.

La sala tiene un propósito asociado a ese encuentro. Cuando termina, la idea es que se cierre. Su creador puede eliminarla y dispone de un período limitado de recuperación.

Si las personas quieren volver a verse, pueden organizar otro encuentro en una sala nueva.

No necesitamos convertir una salida a tomar café en una comunidad digital permanente.

¿Qué problema resuelve?

Las aplicaciones de mensajería son excelentes para conversar, pero no necesariamente para transformar una conversación grupal en una decisión.

La información se pierde entre mensajes. Las personas repiten sus disponibilidades. Algunas propuestas se descartan sin saber por qué. Otras avanzan aunque no contemplen necesidades que alguien ya había mencionado.

APORIA reúne esa información en un contexto compartido, permite corregir lo que interpreta la IA y explica cómo se comparan las alternativas.

No busca que las personas pasen más tiempo en una aplicación. Busca que necesiten menos tiempo organizándose y más tiempo encontrándose.

Y sí, soy consciente de que eso es una estrategia bastante extraña para una red social.

Por suerte, APORIA no quiere ser otra red social.

Who it's for — ¿Para quién es?

APORIA está pensada especialmente para personas adultas jóvenes, aproximadamente entre 25 y 40 años, que participan en eventos, conferencias, meetups, hackathones, actividades culturales o encuentros de intercambio de idiomas.

Personas que quizá se conocieron hace veinte minutos y quieren organizar algo juntas.

No necesariamente son amigas. No tienen un grupo consolidado ni una persona que quiera encargarse de coordinar a todas.

También contempla grupos heterogéneos: distintas disponibilidades, presupuestos, ubicaciones, necesidades alimentarias y maneras de comunicarse.

Me interesaba especialmente que la participación fuera progresiva y que la interfaz no exigiera demasiadas decisiones de entrada.

Una persona puede observar antes de aportar información. Otra puede escribir. Otra puede compartir una captura y revisar lo que Gemini interpretó.

El público objetivo no es "todo el mundo que tenga amigos"

Es la gente que quiere transformar un encuentro interesante en otro encuentro real, sin que la coordinación termine agotando las ganas.

What we learned — ¿Qué aprendí?

Lo primero que aprendí es que organizar una reunión no consiste únicamente en encontrar horarios compatibles.

También importa quién aporta una propuesta, qué información está confirmada, qué condiciones son negociables y cuáles no, y cómo explicar por qué una alternativa resulta posible o imposible.

Por eso separé tres responsabilidades:

Gemini interpreta. Las personas confirman. El código evalúa.

Una IA puede ser muy útil leyendo información heterogénea, pero que interprete una frase no significa que tenga autoridad para convertirla automáticamente en un hecho.

Esa separación me parece importante incluso en una aplicación aparentemente sencilla para organizar encuentros.

También aprendí que diseñar una herramienta social obliga a decidir qué sucede cuando cumple su propósito.

La mayoría de las plataformas quiere retener usuarios, fomentar conversaciones y conseguir que regresen constantemente.

Yo quería lo contrario.

Que una sala pudiera terminar. Que no fuera necesario conservar indefinidamente el chat. Que un evento no contaminara la organización del siguiente. Que la gente pudiera volver a usar APORIA porque le resultó útil, no porque la aplicación la hubiera convencido de quedarse.

Eso llevó a diseñar un ciclo de vida para las salas, con cierre, lectura, eliminación y recuperación limitada.

Y una tercera lección fue que la complejidad técnica no debería convertirse en complejidad para quien usa el producto.

Vengo de la gastronomía profesional. Organizar procesos, anticipar restricciones y coordinar personas con necesidades diferentes era parte de mi trabajo mucho antes de que empezara a programar.

En una cocina nadie quiere que el sistema de organización sea más complicado que preparar el plato.

Con APORIA apliqué la misma idea.

Por último, utilicé el Devpost Learn Skill Pack para trabajar sobre el alcance, los requisitos y la especificación. Ya tenía experiencia construyendo con asistencia de LLM y había desarrollado mis propias skills para agentes de programación, así que no lo abordé como alguien que necesita descubrir por primera vez qué es un repositorio.

Me interesaba observar qué podía incorporar de ese método a mi manera de trabajar.

No todas las herramientas tienen que adoptarse literalmente para enseñarte algo.

Y no todas las aplicaciones necesitan convertirse en un negocio de capturar atención para ser útiles.

Built with — Tecnologías

  • React, TypeScript y Vite para la aplicación web.
  • Cloudflare Workers para la API y la lógica del servidor.
  • Cloudflare D1 para persistencia de salas y eventos.
  • Google Gemini API para interpretar texto e imágenes y proponer opciones.
  • Evaluación determinista para comprobar planes contra información confirmada.
  • Codex y skills para agentes de programación.
  • Devpost Learn Skill Pack para el proceso documentado de planificación.
  • Webflow para la experiencia web publicada.

El proyecto tiene código público, documentación técnica, pruebas y registros de revisión adversarial.

Licencia: Apache 2.0.

Project links — Enlaces

Repositorio público:
https://github.com/annatchijova/aporia

Experiencia web:
https://aporia-bbb3f7.webflow.io/

Video de demostración:
[Agregar enlace del video]


Una última cosa

APORIA no intenta reemplazar las conversaciones espontáneas.

De hecho, depende de que existan.

Quiere resolver ese momento incómodo entre «tenemos que juntarnos» y descubrir, tres semanas después, que nadie organizó absolutamente nada.

APORIA — Queremos vernos. Organizarlo también debería ser agradable.

Y si todo funciona bien, la próxima interacción importante ocurre fuera de la pantalla.

Built With

Share this project:

Updates

Submission history