Skip to the page

Invented app · built on Kindling · Why Kindling · The apps · The library · The spec

Threshold

Under the hood

How the desk maps onto the spec.

Threshold is a client. It hosts no Pools, reads the ones you keep from their own files, and writes back to them with your credentials. Here is every setting, the files it reads and writes, the block lists it honors, and what Kindling v0.1 can’t say yet.

Settings, and where they come from

SettingValueSpecWhy
What Threshold opensPools whose manifest names you in curator§3.2A desk shows only the Pools you keep. Visibility is the host’s business; Threshold never widens it.
VerificationIn words and with an icon, beside every person and curator§4.5Who is asking is always shown, including on the desk.
Handshake window14 days, carried in each request’s expires_at§5.2The default. Every window is written out in dates.
A declineRemembered per Pool and curator; “Ask again” is refused until the person allows it§5.2The spec’s rule, enforced by the desk, not left to memory.
A lapsed requestNothing is listed; you may ask again, once, with a new window§5.2No answer is not a no, and not a yes.
LeavingShown to the curator as “left”, with no reason and no way to write about it§5.3A member owes nobody an explanation.
Auto-acceptShown on the member as “joined by their own rule”§5.5Never silent: the person was told, and so are you.
VouchingRecorded with its words, local to one Pool§4.4The same person is email verified everywhere else.
Proposalssystem note to each, then an intro to both§5.4 §6.3For curator-only-adds Pools and matchmaker tables. Both say yes first.
MessagingStructured email from your own identity§6.1 §6.2Members answer from their own mail. They never need Threshold.
Block listsEach Pool’s own block_list_subscriptions§7.3The desk filters by the lists the manifest names, no more.
Consortium entriesOne member proposes, two others second, then it is published§7.3The Circular consortium’s rule. No personal details, ever.
The curation clock90 days from the last action the desk can see§9.1Written in dates, never as an alarm.
Transition14-day window, two thirds of active members who answer§9.2 §9.3Co-curators first. A host desk writes down votes given in person.
ArchiveReadable, listed, closed to new requests§9.4Revivable by a returning member.
DiscoveryThreshold hosts no Pools; its well-known file lists none§8.3 §10.2Your Pools are discovered where they live.
Loading a productindex.html#load-<product key>, from the Kindling registry, embedded when the app is built§3.2 §8.3Opens that product’s Pools, and only for the curators their manifests name: the desk signs in as one of them, and the Pools they don’t keep open read-only. A curator who isn’t one of this example’s people is named, never signed in as.

The well-known file

Threshold hosts no Pools, so its /.well-known/kindling-pool lists none (§8.3, §10.2). It names the operator, so a crawler that finds the domain knows what it is.

{
  "schema_version": "0.1",
  "pools": [],
  "operator": {
    "name": "Threshold, the desk for people who keep Pools",
    "contact": "desk@threshold.example",
    "url": "https://threshold.example"
  }
}

The Pools on the desks in this example

Four curators, and every Pool that names one of them, plus the dormant Pools their continuity work touches. Each links to its own file on its own site.

Founding Curators

Host
The Kindling project · founding-curators.json
Curators
  • Kindling maintainers (primary) · oauth
  • Rosa Delgado-Park · oauth
Consent
curator-only-adds
Visibility
public
Status
active
Entries
7
Last action seen
18 August 2026

Tuesday Morning Walkers

Host
The Board · tuesday-walkers.json
Curators
  • Maggie O’Rourke (primary) · email
  • Rosa Delgado-Park · oauth
Consent
universal-opt-in
Visibility
public
Status
active
Entries
4
Last action seen
22 September 2026

Seed and Cutting Swap

Host
The Board · seed-swap.json
Curators
  • June Okafor (primary) · email
  • Rosa Delgado-Park · oauth
Consent
universal-opt-in
Visibility
public
Status
active
Entries
3
Last action seen
19 September 2026

Conversation Partners, Any Language

Host
The Board · conversation-partners.json
Curators
  • Rosa Delgado-Park (primary) · oauth
Consent
vouching-required
Visibility
public
Status
active
Entries
3
Last action seen
15 September 2026

Carpool to the Coast

Host
The Board · carpool-to-the-coast.json
Curators
  • Bram de Wit (primary) · email
  • Rosa Delgado-Park · oauth
Consent
universal-opt-in
Visibility
public
Status
active
Entries
2
Last action seen
27 September 2026

New in Town

Host
The Board · new-in-town.json
Curators
  • Rosa Delgado-Park (primary) · oauth
Consent
universal-opt-in
Visibility
public
Status
active
Entries
2
Last action seen
10 September 2026

Fix-It Friday Volunteers

Host
The Board · fix-it-friday.json
Curators
  • Elena Vasquez (primary) · email
  • Rosa Delgado-Park · oauth
Consent
universal-opt-in
Visibility
public
Status
active
Entries
3
Last action seen
5 September 2026

Chess After Close

Host
The Board · chess-after-close.json
Curators
  • Amos Whitlock (primary) · email
Consent
universal-opt-in
Visibility
public
Status
dormant
Entries
3
Last action seen
18 June 2026

Late Supper Matchmakers

Host
Late Supper · matchmakers.json
Curators
  • Nadia Farouk (primary) · oauth
Consent
curator-only-adds
Visibility
public
Status
active
Entries
1
Last action seen
1 September 2026

The Tuesday Table

Host
Late Supper · tuesday-table.json
Curators
  • Nadia Farouk (primary) · oauth
Consent
curator-only-adds
Visibility
unlisted
Status
active
Entries
4
Last action seen
21 September 2026

Second Chapters

Host
Late Supper · second-chapters.json
Curators
  • Nadia Farouk (primary) · oauth
Consent
curator-only-adds
Visibility
unlisted
Status
active
Entries
2
Last action seen
14 September 2026

Slack Water 2026

Host
Slack Water · slack-water-2026.json
Curators
  • Marit Halvorsen · oauth
  • Birdie Novak (primary) · oauth
Consent
universal-opt-in
Visibility
public
Status
active
Entries
18
Last action seen
21 September 2026

Slack Water 2025

Host
Slack Water · slack-water-2025.json
Curators
  • Marit Halvorsen (primary) · oauth
Consent
universal-opt-in
Visibility
public
Status
dormant
Entries
7
Last action seen
26 June 2026

Seen Work: Harbor Trades

Host
Seen Work · harbor-trades.json
Curators
  • Delphine Arceneaux (primary) · oauth
  • Rigoberto “Rigo” Paz · oauth
Consent
vouching-required
Visibility
unlisted
Status
active
Entries
6
Last action seen
24 September 2026

Seen Work Curators

Host
Seen Work · seen-work-curators.json
Curators
  • Delphine Arceneaux (primary) · oauth
  • Rigoberto “Rigo” Paz · oauth
Consent
curator-only-adds
Visibility
public
Status
active
Entries
2
Last action seen
14 September 2026

Block lists it honors

Every Pool on these desks subscribes to both (§7.3). The desk filters by the lists each manifest names, and nothing else.

What it writes

Sample files, validated against the repo’s schemas. The desk builds the same shapes live, and shows each one under “The messages, as JSON”.

What the v0.1 schema can’t say yet

  • There is no message type for a proposal.

    §6.3 names four types and the schema six, adding withdrawal and system. None of them is a proposal. Threshold sends each note as a system message, then an intro to both once both said yes, as Late Supper does. It marks them with an X-Threshold-Kind: proposal header, which another client would not know to read.

  • A vouch has no place for its words.

    A vouch is local to one Pool (§4.4), and the manifest records only curator-vouched and, in the parsed profile, a verifier and a date. The witness, the job and the words live in the host’s own vouch record, as at Seen Work. Threshold shows them, and says where they count.

  • Nominations, votes and the window have no format.

    The manifest can say dormant or archived (§9.1, §9.4), and the well-known file can too. Nothing records who nominated whom, who answered, or when the 14-day window closes (§9.3). Threshold writes them as system messages to the host.

  • A handover is only a manifest edit.

    There is no message for “will you keep this Pool?” and no field for “stepped back, stays listed, takes no action”. Threshold sends a system message and, on a yes, edits the curator list in the manifest.

  • The clock counts actions a manifest can’t see.

    §9.1 counts handshake reviews and removal responses as curation, and neither changes updated_at. Threshold shows the last action it can see: a manifest edit, a consent proof, or a request it sent. A host that keeps no log of the others can’t prove a Pool is active.

  • The handshake window isn’t a manifest field.

    §5.2 says the 14-day window is configurable per Pool. The manifest has no field for it, so each request carries it in expires_at.

  • A declined request, and the owner’s permission to ask again, have no format.

    §5.2 says a decline MUST be recorded and a curator MUST NOT resubmit without permission. Neither the record nor the permission is a document in v0.1. Threshold keeps both per Pool and per curator.

  • A request can’t state its consent model.

    A handshake request’s pool object carries the charter, curator, intent and visibility, but not consent_model. Threshold says it in words in every invitation.

  • There is no write API for curators.

    v0.1 says how a Pool is read: a JSON document from a Git repository or an endpoint (§3.1). It says nothing about how a curator edits one. Threshold writes through each host’s own repository or API, with the curator’s own credentials, and hosts nothing itself.

  • Block-list proposals and seconds have no format.

    Only the published list has a schema (§7.3). The Circular consortium’s rule, one member proposes and two others second, lives in its description. Threshold keeps the proposals at the desk and publishes an entry only when it has its two seconds.

  • Verification names differ.

    §4.5 says email-verified, oauth-verified, curator-vouched and unverified. The schemas say email, oauth, curator-vouched, unverified and cryptographic. The JSON follows the schemas; the desk shows words.