Skip to content

The architecture

The directory is one screen of a system.

Priority candidates flow in. The deliberation pipeline runs. Tagged community uses come back from the field. The 2027 Congress is built on top of the evidence the 2026 directory generates. This page shows the whole machine.

The deliberation pipeline

From 140 to 10, on purpose.

The Congress methodology is a 7-stage funnel. Open Call collects candidates. Affinity clustering compresses. Strategic Communication coding tests each cluster against Value, Barrier, Action, Vision. The Joy Filter rejects what won't make anyone want to wake up tomorrow. The room votes. Top ten publish. And then the system inverts: tagged community uses flow back in, becoming the source material for 2027.

140

Candidates

submitted via Open Call

30

Clusters

after affinity grouping + coding

Stages 1-2: Intake + Clustering

Stages 3-5: Coding + Joy Filter + Vote

Stage 6: Publish

1 Stage

Intake

SLA: Open Call: 6-8 weeks pre-Congress

Auto: Confirmation email · Slack ping · NLP auto-tag

2 Stage

Affinity Clustering

SLA: 1 week pre-Congress

Auto: Embedding similarity suggests groupings

3 Stage

Strategic Coding

SLA: Day 1 of Congress

Auto: Length validators + missing-dimension warnings

4 Stage

Joy Filter

SLA: Day 2 morning

Auto: No automation. The human gate.

5 Stage

Vote

SLA: Day 2 afternoon

Auto: Live tally + ranked-choice

6 Stage

Publish

SLA: Day 3 of Congress

Auto: Slug generation · static rebuild · email submitter

7 Stage

Track Uses

SLA: Continuous, between Congresses

Auto: Verify → publish to /uses · feed 2027 Open Call

Data model

What the schema actually is.

The proposal recommended Airtable + Softr. Here is the schema that lives in your git repo instead. Three tables do most of the work. Phase 2 graduates from a TypeScript module to D1, same shape.

Priority

The 10 published priorities. Static for the Congress cycle.

  • id · uuid
  • slug · text
  • title · text
  • themes[] · enum
  • questions[] · enum
  • status · enum
  • value · text
  • barrier · text
  • action · text
  • vision · text
  • scales.local · text
  • scales.national · text
  • scales.global · text

PriorityCandidate

Submissions from /submit. Pipeline workhorse.

  • id · uuid
  • submittedAt · timestamp
  • submitterEmail · email
  • submitterCommunity · text
  • value · text
  • barrier · text
  • action · text
  • vision · text
  • pipelineStage · enum (intake → published)
  • clusterId · uuid?
  • nlpSuggestedThemes[] · enum

CommunityUse

Tagged uses of priorities in real-world advocacy. The OUT-flow.

  • id · uuid
  • priorityId · string (P01-P10)
  • useType · enum (deputation · sermon · curriculum · op-ed · proposal)
  • userCommunity · text
  • geography · text
  • useTitle · text
  • useUrl · url
  • useExcerpt · text
  • dimensionsCited[] · enum
  • consentToPublish · bool
  • verifiedBy · uuid?

Plus

  • · DeliberationCluster (affinity grouping during Congress)
  • · Favorite (per-attendee, localStorage Phase 1, KV Phase 2)
  • · SubmissionEvent (audit trail, every state change)
  • · TagEvent (provenance, human vs NLP)
  • · Vote (Pol.is-style ranked-choice signal stream)

Why this beats Softr + Airtable

  • · Schema lives in your git repo, not behind two SaaS logins
  • · Phase 2 D1 stays $5/mo to ~5GB; Airtable Plus is $20/seat/mo
  • · No template constraints (Softr's directory layouts fence in your visual identity)
  • · Workers + KV gives you real custom interactions, not Softr's component library
  • · Open data API at Phase 3 - academic research, journalism, partner orgs read directly

Automation

When X happens, Y fires.

The system is opinionated about what triggers what. Submissions confirm themselves. The deliberation team gets pinged on Slack. Tagged uses route to verification. Quarterly digests pull from /uses to feed the next Congress. Six rules cover most of it. Phase 3 adds NLP enrichment and email sequences.

PriorityCandidate.submitted

Resend confirmation email + Slack ping deliberation channel + Workers AI theme classification

PriorityCandidate.stage = published

Email submitter "your candidate is now Priority P0X" + auto-generate canonical URL + social card

CommunityUse.submitted

Slack ping verification team + auto-tag NLP + queue for 7-day verification SLA

CommunityUse.verified

Auto-publish to /uses + email reporter + add to quarterly digest pipeline

PriorityCandidate untouched > 7 days

Nudge deliberation team via Slack + flag for review

CommunityUse weekly sweep

Anonymized aggregate report → 2027 Congress Open Call material

The feedback loop

Why this is movement infrastructure, not a brochure.

A Congress organizer in Asheville quotes Priority 4 in a city council deputation on stormwater. They tag the use at /uses. Their deputation gets verified within 7 days, joins the public archive, and gets routed into the quarterly digest.

A teacher in New Mexico builds a 4-week unit on Priority 10. They tag it. Their curriculum becomes a reference for the next teacher. The Indigenous Education Institute sees the pattern in three districts and writes a grant.

By 2027, the Open Call goes live with one specific change: the most-used priorities have visible evidence behind them. The next Congress doesn’t restart from zero. It builds on top of every council deputation, every sermon, every classroom adaptation that the directory captured between 2026 and 2027.

That is the difference between a deliberation report and movement infrastructure.

Roadmap

Three phases. Built so each one stands alone.

Phase 1 ships in this Upwork demo. Phase 2 is the post-disco build that graduates to a real CRM. Phase 3 is the compounding layer that makes 2027 better than 2026 by default.

01 Phase

Demo

This deploy

Cost

$0/mo

Stack

Static Astro + localStorage + mailto:

Deliverable

Working preview, all 8 routes, mock dashboard

02 Phase

Production CRM

Weeks 2-4 post-disco

Cost

$25-45/mo

Stack

Astro + CF Workers + D1 + Resend + Cloudflare Access

Deliverable

Real submissions, verified uses, Access-gated admin

03 Phase

Compounding

Month 2+

Cost

$80-150/mo

Stack

Above + Workers AI + PostHog + email sequences

Deliverable

Self-improving system, quarterly digests, open data API

Phase 1 mock

See the deliberation pipeline as a kanban board.

The /admin route is a static preview of what Phase 2 ships as a real Cloudflare Access-gated dashboard. It shows the Intake → Cluster → Coding → Joy Filter → Vote → Publish pipeline with sample candidates in each column.

Open admin preview

The system needs your candidate.

Open Call for the 2027 Congress runs continuously. Submit a priority your community has deliberated. Tag a community use. Both feed the next round.