Dating app · hosts no Pools
Roomful
A dating app that hosts no Pools of its own. It opens full, reading the Pools you already said yes to.
Kindling v0.1 · an open protocol for finding people
A live demo, with invented people. These are the seven apps themselves, running on this page. Choose an app, then a product below it. Nothing you do here is sent anywhere.
The app
Skip past the app to the productsShowing Drip Line in Face Up. Everyone in it is invented.
Loaded
Climbing gym · 5 Pools
A product, by category
A dating app is only as valuable as its pool. People want someone nearby, so the biggest pool in each town wins, and a new app opens empty. By 2016, one company held most of the market. Nobody new gets in.
The operator is paid while you are still looking. The wait is the product, so its interest runs against yours. Paywalled likes, rationed attention, boosts, streaks and fake urgency follow from that.
People are worn out, and friendship never got infrastructure. Dating has apps that tire people out. Friendship has luck and group chats.
Kindling makes the pool a commons. Your profile stays on your own page. Pools are open lists anyone can host and any app can read, only with your yes. A new app can open full on day one, you can leave without losing anyone, and the tricks stop paying. Try Kindling today: the apps, or see one Pool through three doors.
The apps and the library are invented. They work in your browser, with invented people, and nothing is sent anywhere; nothing runs on Kindling at TranquilTech yet. The specification is published and stable. The spec, schemas and tools live on the protocol site.
Each one rests on sections of the specification, and each is demonstrated by a site in the library. The Why page explains them in plain words, after the public record that makes them necessary.
Invented organizations, each built on Kindling to show one thing that changes. The top shelf is matchmaking, where the size of the pool decides everything.
Dating app · hosts no Pools
A dating app that hosts no Pools of its own. It opens full, reading the Pools you already said yes to.
Friendship app · hosts no Pools
A friendship app that reads the groups you already belong to, like the Tuesday walk that leaves from the library steps.
Community · 3 Pools
A community for consensual non-monogamy. You can be out in one Pool and private in another, and a household can show how it is connected, with every member’s yes.
Introductions · 3 Pools
Introductions for chosen family: platonic partners, co-parents and later-life housemates. Stewards meet people before they vouch for them.
Matchmakers · 3 Pools
Matchmakers who meet you first, then propose one introduction at a time. Both people say yes, or nothing happens.
Below it: mutual aid that stays up in a storm, trades referrals, first-generation mentorship, a songwriter’s listeners, a festival, a climbing gym, a board-game server, a library’s notice board and a newspaper that reads them all. And seven apps to get around them. Every organization and person in the library is invented.
The introduction is the product.
Kindling is an open protocol for finding people, published as a specification before any product was built on it. Your profile is a page you already keep, and curators gather profiles into Pools for a scene, a city, a craft or a shared interest. Nobody enters a Pool without saying yes, and nobody in the middle makes money by keeping two people apart.
You don’t sign up for Kindling. You keep a page, and when someone would like to add you to a Pool, you decide.
A Notion page, a Google Doc, a Carrd, your own site. Kindling reads what is there, h-card markup first, and stores no profile data. Photos are referenced by URL and never copied (§2.5).
A curator who wants you in a Pool sends a handshake: the Pool’s name, its charter, who curates it and how they are verified, what it is for and who can see it. One click either way. There is no exception.
Say no once and the same curator can’t ask again without your permission. Say nothing and the request expires after 14 days. Nothing changes.
Withdraw from any Pool at any time, from any message. Every implementation must process it within 60 seconds.
Every profile and every curator carries a verification level, shown in words: email, OAuth, vouched for by the curator, or unverified.
Open to all, people in your Pools only, vouched only, or no first message until you both say you would like to hear from each other.
Add a kindling-noindex directive to your page, and no compliant Pool, registry or crawler may list you.
Yes, signed by Hollis Grant on 30 July 2026, for Spec Readers.
This is what a yes looks like: signed, dated and kept with the entry. The ember appears only on a yes. Hollis is invented, and the Pool is planned.
The friend who sets people up. The moderator who knows everyone. The person who keeps a “people you should meet” doc. A Pool gives that work a charter and a consent rule.
Name the Pool, say what it is for and what it is not, and choose who can see it: public, unlisted or invite-only.
Universal opt-in is the default. Vouching required and curator-only adds can add a step before the handshake, and can never take away anyone’s right to decline or leave.
You submit a profile URL and the handshake does the asking. You never list anyone silently.
A Pool is a JSON manifest in a public Git repository or behind a small API. Move it, fork it or close it. It is yours, not ours.
After 90 days without curation a Pool goes dormant, and its active members can elect a new curator by two-thirds. Failing that, it archives, readable and revivable.
We are looking for the first curators: people who will run a Pool, curate it well and write down what worked. They are deciding what curation is as a craft. It is not a waiting list for anything, and nobody pays to take part.
The project’s own Founding Curators Pool is planned, not open. On the Pools page you can see how it would work, with invented people in it. If you would like to be one of the real ones, write to josh@intellibotique.com.
Anywhere you already keep one. That page is your profile. There is no required format.
A charter, a curator, a visibility and a consent model, in one JSON file anyone can host.
A handshake arrives by email with everything you need to decide, and one click either way.
On yes, the Pool reads your page in full and lists you with a record of your consent. On no, nothing is listed and the no is remembered.
Anyone can ask a Pool a plain question, and only people who said yes can answer. Messages ride on structured email. Then the protocol gets out of the way.
Most of the specification is plumbing. These are the lines that decide what kind of thing Kindling is. Each one links to the section that binds it.
A profile is never added to a Pool without the owner’s explicit consent, whatever the Pool’s consent model.
Say no once and the same curator may not submit you again without your permission. Silence expires the request in 14 days.
Withdraw from any Pool at any time through the messaging channel. Implementations must process it within a minute of receipt.
Referenced by URL only. Kindling and Pools store no photo bytes. Your images stay where you put them.
The protocol defines no chargeable surface between two people who want to meet. That is a stated non-goal, not a pricing decision.
Every profile carries a visible verification level: email, OAuth, curator-vouched or unverified. A conforming UI must render it every time.
Off by default, at most five rules, a notification for every event, and revocable after the fact. Convenience never outranks consent.
Per-profile rules: open to all, pool-mates only, vouched only, no cold messages. Implementations must honor them, and shared block lists sit underneath.
Ninety days of inactivity and the Pool goes dormant. Active members can elect a new curator by two-thirds. Failing that it archives, readable and revivable.
Messaging rides on structured email, so it inherits decades of spam filtering and needs no new network. Richer transports may come; email stays as the fallback through v1.
Kindling maintainers, for the protocolSpecification v0.1, published and stable. Section numbers won’t move until a major version.
The project plans to run five Pools of its own, to support Kindling’s development and its larger mission. None of them is open yet, and nobody is in them. Each is shown with invented people, so you can see how it would work.
Pool 1
Curator-only addsPlanned
People who already do introduction work, invited by the maintainers to run the first Pools and write down what curation is as a craft.
Curated by the Kindling maintainers, with Rosa Delgado-Park as invented co-curator. Shown with 7 invented members.
Pool 2
Universal opt-inPlanned
Developers building Kindling clients, readers, hosts and tools, in any stack.
Curated by the Kindling maintainers, with Imani Brooks as invented co-curator. Shown with 3 invented members.
Pool 3
Universal opt-inPlanned
People who read the specification and the RFCs closely and say where they are ambiguous, missing something, or overreaching.
Curated by the Kindling maintainers, with Tobias Weiler as invented co-curator. Shown with 4 invented members.
Pool 4
Vouching requiredPlanned
People willing to stand for the Working Group that governs Kindling by v1.0: two elected implementer seats, one IndieWeb seat and a rotating advisory.
Curated by the Kindling maintainers, with Tobias Weiler and Ingrid Solberg as invented co-curators. Shown with 3 invented members.
Pool 5
Universal opt-inPlanned
People who write about social technology, the friendship recession and the open-protocol revival, and want to talk to the curators and builders doing the work.
Curated by the Kindling maintainers, with Mei-Lin Zhou as invented co-curator. Shown with 3 invented members.
The first implementation is planned inside Mycelial, where Pools become how members of a community find each other within and across Groves. It is planned for the first quarter of 2027.
Mycelial is one Kindling client. If you serve a scene Mycelial doesn’t, build a different one. The spec is stable, the schemas are open, and the protocol doesn’t care which client anyone uses.
| Specification | v0.1 is published and stable. Changes before v0.2 land as opt-in additions or clearly marked deprecations. |
|---|---|
| Running on it | Nothing at TranquilTech, yet. The protocol shipped before any product depends on it, on purpose. |
| First implementation | Planned inside Mycelial for the first quarter of 2027. |
| Next | v0.2 in draft: cryptographic identity, cross-Pool identity portability, and voluntary post-introduction gratitude. |
Nobody pays to be introduced, anywhere. Here is where the money comes from instead.
The protocol defines no chargeable surface between two people who want to meet. That is a stated non-goal, not a pricing decision.
TranquilTech maintains v0.1 and pays for the first year of registry hosting. The protocol is free, and the project’s own Pools would be free.
Voluntary post-introduction gratitude is in the v0.2 draft. It comes after an introduction, never before, and the spec says it can never be turned into a paywall.
Build a Kindling client in your stack: a list, a search view, a printed zine. Send us the link and the registry lists it. The whole technical story lives on the protocol site; here is the short version.
# validate a Pool manifest
npx kindling-validate https://example.com/pools/queer-creatives-la
# parse a profile URL into structured JSON
npx kindling-parse https://noor.example.com
# ask a Pool a question in plain language
npx kindling-discover --pool https://example.com/pools/queer-creatives-la \
--query "who is up for a hike this weekend?"
The repository ships the spec, the JSON schemas for profiles, Pools, handshakes and messages, a validator, a parser, a reference handshake server, a starter discovery agent, a block-list publisher and the registry source. It ships no consumer app. That’s the point.
Pool host. Implements the manifest, the handshake and continuity, and publishes a .well-known/kindling-pool file.
Pool UI. Shows the verification level beside every profile, honors all three spam layers, supports leaving, never includes silently.
Parser. Prefers h-card, records what was inferred, respects noindex, stores no photo bytes.
Messaging client. Validates every envelope, shows verification level, applies identity-based gating.
Twelve numbered sections, stable across v0.1. Open issues for ambiguities, gaps and overreach. Implementers, identity-protocol veterans and IndieWeb regulars especially.
Read the specificationIf you already introduce people, write to the maintainers at josh@intellibotique.com. See how a Pool runs first.
See how a Pool runsAny stack, any interface. A list, a search view, a printed zine. Send the link and the registry lists it.
Start building