Skip to the page

Invented example · built on Kindling · Why Kindling · The library · The spec · The Circular

familiar facesfriends from the groups you’re already in

Open in

No app loads this, on purpose. Familiar Faces keeps no Pools of its own: it is a friendship app that reads the groups you already belong to, like the Tuesday walk that leaves from the library steps.

Under the hood

How Familiar Faces is built

Familiar Faces hosts no Pools. It reads other people’s, checks each person’s rules, and sends one email a week. Here is every setting, every Pool it reads and what it does with each, and what the v0.1 schema can’t say yet.

Settings

What we chose, and why

SettingValueSpecWhy Familiar Faces chose it
Pools hostednone; the well-known file lists an empty set§8.3 §10.2Familiar Faces is a client. The groups belong to the places that keep them.
How it finds Poolshosts’ well-known files, and any registry§8.3 §8.4 §8.5 §10.1The same way anyone can. We hold no private directory.
How it finds your Poolsyour page’s address, and pages under it, in each Pool’s entries§3.4 §3.5Pools and profiles are coupled by URL, so your page is the only key we need.
Unlisted Pools you’re inonly if you give us the address§3.2 §8.2They are in no well-known file, on purpose. We don’t go looking.
Sign-ina link to your Kindling identity email§4.1 §4.2No new account, no password, no new profile. Only the owner of the page can open Familiar Faces for it.
What you seePools you’re in, and public Pools§3.2Never an unlisted or invite-only Pool you’re not in.
Dating Poolskept out of the friends view, public or not§3.2Friendship here. A person’s dating life stays where they put it.
Order of peoplethe order they joined each Pool§3.4No ranking, no score. Nothing to optimize.
Verificationshown beside every person, in words and with an icon§4.5 §11.2Always the level from the Pool the person appears through, because a vouch is local to one Pool.
Who can write to whomeach person’s accept_from and no_cold_messages, the Pool’s minimum, two block lists§7.1 §7.2 §7.3Checked before a hello is sent, with the reason shown.
Block listsKindling public · Circular consortium§7.3The same two lists the Board and Ferry Room Players subscribe to.
Handshakesshown as the host sent them, answered with the host’s own links§5.2Familiar Faces is a door. The request and the decision stay with the Pool.
Auto-acceptshown, never set for you§5.5Theo has none, so a request waits for him.
Leaving a Poolone action, a withdrawal message to its keeper§5.3Within sixty seconds, from the map or from the email.
Silent inclusionimpossible here§5.1 §11.2Familiar Faces can’t add anyone to anything. It only reads.
Transportemail, one digest a week§6.1No app and no notifications. Everything works from an inbox.
Message typesintro for a hello, reply, withdrawal, system for the digest§6.2 §6.3The schema’s six types; see the gaps below.
Photosnone shown, none copied§2.5We point at your page. Your page shows what you choose.
kindling_noindexhonored: a noindex profile never appears§2.7It means “in no Pool at all”, so it never reaches us.
Dormant Poolsshown with a notice and the keeper vote§9.1 §9.3Chess After Close is resting; its members see why, and the vote.
Moneynothing at the connection layer§1.3Hosts chip in by choice, which buys no placement. Thanks, if any, come after.

No Pools of its own

Our well-known file lists nothing

A host publishes /.well-known/kindling-pool so crawlers and registries can find its Pools §8.3 §10.2. Ours says who we are and how to reach us, and lists no Pools, because we keep none. If you want the Tuesday walk, it is on the Board’s file, not ours.

.well-known/kindling-pool

{
  "schema_version": "0.1",
  "pools": [],
  "operator": {
    "name": "Familiar Faces, a friendship app that reads the groups you already belong to",
    "contact": "hello@familiarfaces.example",
    "url": "https://familiarfaces.example"
  }
}

§3.5 coupling

How Theo’s groups were found

A profile may appear in many Pools, and Pools and profiles are loosely coupled by URL §3.5. Theo gave us one address, theo-lindqvist.carrd.example. It appears as an entry in these ten manifests, two of them through a page he keeps under that address, each with its own consent proof §3.4:

  • Chess After Close · entry added 8 January 2026 · consent email-link · hs-board-chess-after-close-theo
  • Ada Quillon’s Listeners · entry added 20 June 2026 · consent email-link · hs-ada-quillon-ada-listeners-theo
  • New in Town · entry added 20 August 2026 · consent email-link · hs-board-new-in-town-theo
  • Start a Band: Port Ellery · entry added 25 August 2026 · consent email-link · hs-ferry-room-start-a-band-theo
  • Friday Subs · entry added 2 September 2026 · consent email-link · hs-ferry-room-friday-subs-theo
  • Rain Check: Everyone · entry added 3 September 2026 · consent email-link · hs-rain-check-rain-check-everyone-theo
  • Port Ellery Thursdays · entry added 3 September 2026 · consent email-link · hs-rain-check-rain-check-port-ellery-theo
  • Rides to Appointments · entry added 5 September 2026 · consent curator-vouching · hs-foul-weather-friends-rides-to-appointments-theo · through theo-lindqvist.carrd.example/rides
  • Meals When It’s Hard · entry added 6 September 2026 · consent email-link · hs-foul-weather-friends-meals-when-its-hard-theo · through theo-lindqvist.carrd.example/meals
  • Release Night: Kitchen Light at the Ferry Room, Friday 16 October · entry added 21 September 2026 · consent email-link · hs-ada-quillon-release-night-port-ellery-theo

Everyone else on Theo’s map was found the same way, from the same files. We never follow a person into Pools Theo isn’t in. The app shows all ten.

The Pools it reads

Every Pool in Port Ellery’s world, and what we do with it

The library’s board, a musicians’ list, a letter co-op, the friendship side of a non-monogamy community, a supper club, and more. Each row is one manifest, linked to its host’s own copy. The app’s compatibility table says which of these it reads, and why.

PoolHostVisibilityIntent tagsHow we find itIn Theo’s friends view

Founding Curators

Kindlingpubliccurating, founding-cohortIts host’s well-known fileReadable: public

Client Builders

Kindlingpublicbuilding, open-sourceIts host’s well-known fileReadable: public

Spec Readers

Kindlingpublicspec-review, indiewebIts host’s well-known fileReadable: public

Toward a Working Group

KindlingpublicgovernanceIts host’s well-known fileReadable: public

Writers and Researchers

Kindlingpublicresearch, writing, journalismIts host’s well-known fileReadable: public

Tuesday Morning Walkers

The Boardpublicwalking, friendshipIts host’s well-known fileReadable: public

Seed and Cutting Swap

The Boardpublicgardening, friendshipIts host’s well-known fileReadable: public

Conversation Partners, Any Language

The Boardpublicconversation, language-exchange, friendshipIts host’s well-known fileReadable: public

Carpool to the Coast

The BoardpubliccarpoolIts host’s well-known fileReadable: public

Chess After Close

The Boardpublicchess, friendshipIts host’s well-known fileShown: Theo is in it

New in Town

The Boardpublicnew-in-town, friendshipIts host’s well-known fileShown: Theo is in it

Fix-It Friday Volunteers

The Boardpublicrepair, volunteeringIts host’s well-known fileReadable: public

Friday Subs

Ferry Room Playerspublicsub, drums, bass, keys, guitar, musicIts host’s well-known fileShown: Theo is in it

Start a Band: Port Ellery

Ferry Room Playerspublicband, music, friendshipIts host’s well-known fileShown: Theo is in it

Horns and Strings for Records

Ferry Room Playerspublichorns, strings, session, musicIts host’s well-known fileReadable: public

Songwriters’ Demo Swap

Ferry Room Playerspublicsongwriting, demos, musicIts host’s well-known fileReadable: public

Door and Sound Crew

Ferry Room Playerspubliccrew, sound, volunteering, musicIts host’s well-known fileReadable: public

Circular Correspondents

The Circularpublicwriting, editing, volunteeringIts host’s well-known fileReadable: public

Scattered Light Stewards

Scattered Lightpublicpeer-support, stewardingIts host’s well-known fileReadable: public

The Heron

Scattered Lightinvite-onlypeer-supportListed nowhere. Only if a member gives us the address.Never shown: invite-only

Español ↔ English

Correo Lentopubliclanguage-exchange, spanish, english, lettersIts host’s well-known fileReadable: public

Português ↔ English

Correo Lentopubliclanguage-exchange, portuguese, english, lettersIts host’s well-known fileReadable: public

Français ↔ English

Correo Lentopubliclanguage-exchange, french, english, lettersIts host’s well-known fileReadable: public

Tagalog ↔ English

Correo Lentopubliclanguage-exchange, tagalog, english, lettersIts host’s well-known fileReadable: public

Late Supper Matchmakers

Late Supperpublicmatchmaking, datingIts host’s well-known fileKept out: tagged dating

The Tuesday Table

Late SupperunlisteddatingListed nowhere. Only if a member gives us the address.Never shown: unlisted, and tagged dating

Second Chapters

Late Supperunlisteddating, second-chaptersListed nowhere. Only if a member gives us the address.Never shown: unlisted, and tagged dating

Many Moons: Harbor Counties

Many Moonspublicnon-monogamy, community, friendship, datingIts host’s well-known fileKept out: tagged dating

Solo Poly Supper Club

Many Moonspublicnon-monogamy, solo-poly, friendshipIts host’s well-known fileReadable: public

The Orchard Street Household

Many Moonsunlistedhousehold, non-monogamyListed nowhere. Only if a member gives us the address.Never shown: unlisted

Platonic Life Partners

Hearthholdpublicplatonic-partnership, chosen-familyIts host’s well-known fileReadable: public

Intentional Co-Parents

Hearthholdunlistedco-parenting, chosen-familyListed nowhere. Only if a member gives us the address.Never shown: unlisted

Later-Life Housemates

Hearthholdpublichousemates, later-life, friendshipIts host’s well-known fileReadable: public

Date-Me Docs: Cascadia

Wren’s Listpublicdating, date-me-docIts host’s well-known fileKept out: tagged dating

The Singles Shelf

Second Tide Bookspublicdating, booksIts host’s well-known fileKept out: tagged dating

Queer Harbor: Dating

Queer Harborunlisteddating, queerListed nowhere. Only if a member gives us the address.Never shown: unlisted, and tagged dating

Face Up: Cascadia

Face UppublicdatingIts host’s well-known fileKept out: tagged dating

Heartwood: Nearby

HeartwoodpublicdatingIts host’s well-known fileKept out: tagged dating

Heartwood: Friends nearby

HeartwoodpublicfriendshipIts host’s well-known fileReadable: public

Sundial: Cascadia

SundialpublicdatingIts host’s well-known fileKept out: tagged dating

Card Catalog: Cascadia

Card CatalogpublicdatingIts host’s well-known fileKept out: tagged dating

Belay Partners

Drip Linepublicclimbing, belay, partnersIts host’s well-known fileReadable: public

Tuesday Regulars

Drip Linepublicbouldering, climbing, friendship, regularsIts host’s well-known fileReadable: public

The Saturday Run

Drip Linepublicrunning, friendship, regularsIts host’s well-known fileReadable: public

New to Climbing

Drip Linepublicclimbing, new-to-climbing, friendshipIts host’s well-known fileReadable: public

Thursday Night: Women and Nonbinary Climbers

Drip Lineunlistedclimbing, bouldering, women-and-nonbinary, friendshipListed nowhere. Only if a member gives us the address.Never shown: unlisted

Lend and Borrow

Foul Weather Friendspublicmutual-aid, lending, toolsIts host’s well-known fileReadable: public

Rides to Appointments

Foul Weather Friendspublicmutual-aid, rides, carpoolIts host’s well-known fileShown: Theo is in it

The Check-In Circle

Foul Weather Friendsunlistedmutual-aid, check-ins, neighborsListed nowhere. Only if a member gives us the address.Never shown: unlisted

Meals When It’s Hard

Foul Weather Friendspublicmutual-aid, meals, cookingIts host’s well-known fileShown: Theo is in it

Ada Quillon’s Listeners

Ada Quillonpublicmusic, listening, friendship, songwritingIts host’s well-known fileShown: Theo is in it

Release Night: Kitchen Light at the Ferry Room, Friday 16 October

Ada Quillonpublicmusic, show, kitchen-lightIts host’s well-known fileShown: Theo is in it

House Show in Tacoma, Saturday 17 October

Ada Quillonpublicmusic, show, house-show, kitchen-lightIts host’s well-known fileReadable: public

Portland, Friday 23 October

Ada Quillonpublicmusic, show, kitchen-lightIts host’s well-known fileReadable: public

Cape Tarrow First-Gen Alumni

Cape Tarrow Alumnipublicmentorship, first-generation, alumni, careersIts host’s well-known fileReadable: public

Midspan Mentors

Midspanpublicmentorship, first-generationIts host’s well-known fileReadable: public

Midspan Students

Midspaninvite-onlymentorship, first-generation, studentsListed nowhere. Only if a member gives us the address.Never shown: invite-only

Rain Check: Everyone

Rain Checkpublicboard-games, game-night, tabletop, rain-check, friendshipIts host’s well-known fileShown: Theo is in it

Port Ellery Thursdays

Rain Checkpublicboard-games, game-night, rain-check, port-elleryIts host’s well-known fileShown: Theo is in it

Olympia Thursdays

Rain Checkpublicboard-games, game-night, rain-check, olympiaIts host’s well-known fileReadable: public

Tacoma Thursdays

Rain Checkpublicboard-games, game-night, rain-check, tacomaIts host’s well-known fileReadable: public

Portland Thursdays

Rain Checkpublicboard-games, game-night, rain-check, portland, role-playingIts host’s well-known fileReadable: public

Big Game Day

Rain Checkpublicboard-games, game-day, rain-check, rides, lendingIts host’s well-known fileReadable: public

Seen Work: Harbor Trades

Seen Workunlistedtrades, referrals, workListed nowhere. Only if a member gives us the address.Never shown: unlisted

Seen Work Curators

Seen Workpublictrades, referrals, curatingIts host’s well-known fileReadable: public

Slack Water 2026

Slack Waterpublicfestival, slack-water, folk, maritime-music, friendshipIts host’s well-known fileReadable: public

Slack Water 2025

Slack Waterpublicfestival, slack-water, folk, maritime-music, friendshipIts host’s well-known fileReadable: public

Session Players

Slack Waterpublicsession, folk, fiddle, shanties, musicIts host’s well-known fileReadable: public

Crew and Volunteers

Slack Waterpublicvolunteering, crew, sound, festival-crewIts host’s well-known fileReadable: public

Rides Home

Slack Waterpubliccarpool, ridesIts host’s well-known fileReadable: public

Visibility rules

What Theo can see, and what he never will

  1. Pools Theo is in.

    Shown in full, with everyone who said yes to them.

  2. Public Pools.

    Readable. Shown when they are next door to his, or when he looks one up. Never pushed at him.

  3. Unlisted and invite-only Pools he isn’t in.

    Never shown, and never looked for §3.2.

  4. Anyone’s dating Pools.

    Never in a friends view, public or not, and nothing hints they exist.

Plainly, with names

Mae Castellano is in Friday Subs and Start a Band with Theo, so she is on his map. She is also on Queer Harbor’s dating list, which is unlisted, and in Many Moons: Harbor Counties, which is public but tagged dating. Neither appears.

Ada Quillon has a shelf-talker on Second Tide Books’ Singles Shelf. It is public and it is for dating, so it doesn’t appear either.

If Theo joins the Tuesday walk, Carl Jansen appears as a walker. His place in Late Supper’s Second Chapters, unlisted and for dating, never does.

Client conformance

A compliant Pool UI, point by point

§11.2 asks four things of a UI; §11.4 asks three of a messaging client. Here is how Familiar Faces does each.

  • Renders verification levels beside every profile (§4.5).

    Every person on every page carries KindlingDemo.levelBadge: the level in words, with an icon. Unverified is gray and dashed.

  • Honors the spam-filtering layers (§7).

    A hello is checked with canMessage against the sender’s level, the Pool’s own minimum, the person’s accept_from and no_cold_messages, and two block lists, before anything is sent.

  • Supports withdrawal (§5.3).

    Every group on the map has one “Leave” button, and every digest has one link per group. Each sends a withdrawal message to the keeper.

  • Never performs silent inclusion (§5.1).

    Familiar Faces can’t add anyone to any Pool. Requests come from keepers, and are answered with the host’s own accept and decline links.

  • As a messaging client (§11.4).

    Every message we write validates against kindling_message.schema.json, shows the sender’s level, and passes the identity gate first (§7.1).

Block lists

The two lists we check every hello against

Messages from anything on these lists are refused before they reach anyone §7.3.

Kindling public block list

Copy: blocklist.json · published at https://protocol.kindling.foundation/blocklist.json · version 3, 20 September 2026

The block list the Kindling project will publish under SPEC.md §7.3, for identities and implementations with confirmed abuse. The entries here are illustrative until the registry opens. No personal details are ever published.

TypeTargetReasonAdded
implementationscrapekit/0.3scraping2 July 2026
identitypromo-blast@mail.examplespam14 August 2026

The Circular consortium block list

Copy: circular/blocklist.json · published at https://thecircular.example/blocklist.json · version 8, 27 September 2026

Shared by every member of the Circular consortium. Each member subscribes; any member may propose an entry, and two others must second it.

TypeTargetReasonAdded
curator_identitylisted-them-anyway@mail.exampleconsent_violation27 September 2026
pool_urlhttps://free-friends-now.example/pools/everyone.jsonconsent_violation26 September 2026
identitybulk-intros@relay.examplespam3 September 2026
implementationscrapekit/0.3scraping3 July 2026

The files

Every document we publish, validated

Each validates against the repository’s JSON Schemas. There is no pools/ folder, because there are no Pools.

Honest limits

What the v0.1 schema can’t say yet

Where the specification text and a schema disagree, our JSON follows the schema. These are the gaps that touch a client like Familiar Faces.

  1. A client has no place in the protocol.

    v0.1 defines Pool hosts, UIs, parsers and messaging clients §11, but nothing for an app that only reads other hosts’ Pools. We publish a well-known file with an empty pools list so crawlers find an operator and a contact, and nothing else. A Pool can’t tell which clients read it.

  2. Nothing says “this Pool is for dating”.

    Intent tags are free text §3.2. We keep out any Pool tagged dating, which works for every Pool in this world. A Pool that wrote romance instead would slip through, and a Pool like Many Moons: Harbor Counties, tagged both friendship and dating, is kept out entirely because we can’t tell who meant which.

  3. Unlisted is not private.

    The protocol has no access control on a manifest §3.1. Anyone holding the address of an unlisted Pool can read who is in it, and a public Pool lists all its members to anyone. Keeping Mae’s other Pools out of Theo’s view is our choice, not something the protocol enforces.

  4. There is no way to ask to join.

    The handshake starts with a curator §5.2. “Ask to join” is an ordinary email to the Pool’s curator_contact, asking them to send a request.

  5. A digest has no message type, and no single Pool.

    §6.3 lists four types and the schema six. Neither has a digest, so we send a system message. It spans several Pools, and via_pool holds one, so the digest has none.

  6. Nothing links one person’s pages.

    Theo keeps a page for Meals When It’s Hard under his own address. v0.1 has nothing that says two pages belong to one person §3.5, so we count a page under your address as yours, and say so. A page on another host would not be found.

  7. Owning a page, for a client.

    §4.2 defines email verification when a Profile first enters a Pool. Nothing says how a reading client confirms that you own a page. We email a link to the Kindling identity already in your entries’ contact_methods.

  8. Verification is per entry.

    A vouch is local to one Pool §4.4. Yusra is curator-vouched in New in Town; in another Pool she could be email verified. We show the level from the Pool someone appears through, so one person can show two levels on one screen.

  9. Level names differ between the text and the schema.

    §4.5 names email-verified, oauth-verified, curator-vouched and unverified. The schemas say email, oauth, curator-vouched, unverified and cryptographic. Our JSON follows the schemas; our pages use the words.

  10. A Pool’s sender floor can’t name vouching.

    Friday Subs asks senders to be at least oauth. §7.1 says a vouched sender passes inside the Pool that vouched for them, but minimum_sender_verification allows only unverified, email or oauth. Theo, email verified, can’t write through Friday Subs; he can write to the same people through Start a Band, which sets no floor.

  11. Mutual interest has no field.

    no_cold_messages needs “confirmed mutual interest” §7.2, and nothing records it. Carl Jansen has it on, so Theo can’t write first, and no message type lets the two of them say they’d like to hear from each other.

  12. Dormant is not archived.

    §9.4 says archived Pools process no messages. It says nothing about dormant ones. We let hellos through Chess After Close while it rests, and say that it is resting.

  13. The window is configurable in text, not in the manifest.

    §5.2 says the 14-day window is “configurable per Pool”. There is no field for it. Friday Subs carries its 48 hours in each request’s expires_at and says so in governance_rules; we read the date, not a setting.

  14. Field names in the text and the schemas differ.

    §6.2 calls the Pool reference pool_ref; the schema calls it via_pool. §12.1 names kindling_version; every schema uses schema_version. Our JSON follows the schemas.

  15. No provenance on parsed profiles.

    §2.3 names extraction_source, but the parsed-profile schema has no such field and forbids extra ones. We can’t show which lines of Ada’s page were marked up and which were inferred.

  16. Thanks have no place in v0.1.

    A chargeable surface at the connection layer is a non-goal §1.3. Thanks after an introduction worked is in the v0.2 draft, which says it can never become a paywall. We follow it already, off the protocol.