The boring part, explained.

Three containers. One Postgres. One Qdrant. LLM intent router + per-recipient auto-translation. Everything else is just routing your message — in any language — to the right builder in under a minute, and making sure they can find you back.

Four steps, start to finish

From activation to IRL handshake.

Everything the bot does fits in one loop: get you live in 60 seconds, read what you need, surface who matches, log the meeting when it happens.

Step 1

You ship before you finish onboarding

First contact is a 3-beat ritual, not a form: the bot opens with a real recent post from your space, then asks you to write your own. Your intro auto-broadcasts to ~15 builders before onboarding ends.

Step 2

The bot reads your DM

Every message hits a Qwen 2.5-7B intent router on the 0G network. It classifies into match, broadcast, question, or problem — no buttons, no menus, no forms. Your stored language ships with the request, so the agent answers in your tongue.

Step 3

Qdrant finds the match — in any language

Your query is embedded and filtered to your active space. The top 5–10 builders whose profile overlaps surface here, ranked by semantic + BM25. Broadcasts get auto-translated per recipient (one LLM call cached per language) with a one-tap 🔤 see-original button.

Step 4

IRL check-in = reputation

Confirmed sessions surface a Check-in button. One tap verifies an HMAC code the same way the venue QR scanners do. +5 rep, fed back into the trust graph (PageRank over rated sessions) that re-ranks future matches.

Every primitive,
in plain sight.

No black boxes. Here's what runs when you type — and why nothing drops when one piece of the stack goes down.

LangGraph Agent Protocol

A persistent multi-agent graph handles profile intake and meetup coordination on the same PostgreSQL checkpointer. Thread state survives restarts, so a conversation you started on Monday still remembers your context on Wednesday.

Multi-turn memory Postgres checkpointer SSE streaming

Decentralized compute, first-class

Qwen 2.5-7B runs on 0G Compute via an OpenAI-compatible proxy. When it's up, you pay nothing. When it's down, we fall back to OpenRouter's free tier and then OpenAI — the bot never goes silent.

Smart fan-out, multilingual

/post finds the right 10 — in their language

Compose in plain text. The bot formats it into a recruiting card, ranks via Qdrant + BM25, fans out to up to 10 builders auto-translated per recipient (cached: one LLM call per target language). Each DM ships with Interested / Pass and a 🔤 see-original toggle. +1h later you get the digest of who said yes.

One bot, every room

Spaces scope every query — and every voice

Browse and join discoverable spaces in one tap from the Mini App. Each space has its own active members, leaderboard, broadcasts — and a tunable bot voice (tone, sign-off, custom greeting) organizers can edit via /organizer. Multi-tenant Postgres, isolated by slug.

Mutual-only

Builder Match: swipe to meet

Tinder-style swipe deck of opted-in builders in your active space. Mutual right-swipe creates a meetup proposal via the same pipeline as /post — both sides get the standard accept/decline DM. One-way swipes are silent (no thirst metrics, no "X people liked you"). 10 cards/day cap.

Sunday serendipity

Weekly Roulette

Sunday 18:00 UTC, the poller pairs every active user in each space with a random peer they haven't met. Both sides get a [👋 say hi] deep-link to the other's Telegram and a [skip this week] button. 90-day pair dedup, ISO-week per-user dedup, configurable to off.

Your event starts Monday. Your bot is ready now.

Spin Me&New up for your space in under 5 minutes. Tunable bot voice per space, seeded events, alumni cohorts, FR + EN out of the box with auto-translation between recipients, and a live /organizer dashboard for every host.

Built at ETHGlobal Cannes 2026 — still running. Made with ☕ in Paris.