A platform for every ward,
starting with one.
Solystopia has argued for distributed capability for long enough. This is the argument built: one social platform per UK electoral ward, chronological and local by construction, funded by the businesses who trade there, governed by the people who live there. It opens in Kearsley, Bolton — 11,000 people between the Croal and the Irwell — and it is meant to run in all 8,694 of them.
Open the Kearsley CommonsNothing here is original.
The incentives are.
Facebook Groups
Kept — The local group as default civic unit — lost property, roadworks, the school run.
Discarded — An algorithmic feed tuned to outrage, and a group you only find by accident.
Nextdoor
Kept — Address-level locality and verified residency.
Discarded — Suspicion as a growth engine, and moderation owned by a company in another country.
Kept — Boards with their own rules, and moderation done by the people affected.
Discarded — Karma as status, and scale that makes a moderator anonymous to their community.
X / Twitter
Kept — Speed. A ward should hear about a burst water main in seconds.
Discarded — Context collapse, and a reach economy that rewards the loudest stranger.
Wikipedia
Kept — A durable, edited, shared record that outlives the thread.
Discarded — Nothing — the ward ledger is the point.
Mastodon
Kept — Federation, portability, and the right to fork.
Discarded — A setup process that assumes the user enjoys setup processes.
Craigslist
Kept — Plain, fast, unbranded listings that solved a real errand.
Discarded — A total absence of accountability for who is posting.
Ten clauses.
Each one is a constraint on the code.
- 01
Every post belongs to exactly one ward. There is no national feed, no trending tab, and no way to be shown to strangers you will never stand next to.
Defends capability — posts.ward_id is NOT NULL; every read path is scoped by ward slug, and RLS refuses cross-ward writes.
- 02
The feed is time and proximity, never predicted engagement. Ranking may surface what is urgent or near, never what is inflammatory.
Defends agency — lib/commons/ranking.ts is a pure, readable function with no engagement term. Recency, board weight, and consent are the only inputs.
- 03
A vote is consent or objection on a proposal, not applause. There are no vanity counters — score is never shown as a leaderboard of people.
Defends agency — votes carry a stance of support | object | abstain, and are aggregated per post, never per author.
- 04
Residency, not follower count, grants standing. One verified resident, one vote, and verification is a local act.
Defends capability — ward_members.standing tracks resident | worker | visitor; only residents vote on proposals.
- 05
Local trade funds local infrastructure. Sponsorship is a flat, published, ward-level rate — never an auction for attention, never behavioural targeting.
Defends substitutability — sponsors carry a fixed monthly pence rate and a visible slot; nothing about a reader is used to select which sponsor is shown.
- 06
No profiling, no cross-site tracking, no ad tech. What the platform knows about you is what you typed into it.
Defends agency — No third-party ad scripts, no profile table for inferred interests, sponsor rotation is deterministic by date.
- 07
A ward can leave. The data, the charter, and the software are exportable and the licence permits a fork.
Defends substitutability — Every board and post is plain rows with stable slugs; export is a read, not a negotiation.
- 08
The ward keeps working when the platform does not. Anything critical must have an offline equivalent named on the page.
Defends recoverability — Ward records carry a physical meeting place and a noticeboard location, printed on the ward page.
- 09
A notification exists only when it changes what a resident should do. There is none for applause, none for a vote on your post, and none whose purpose is to bring you back.
Defends agency — commons_notification_outbox.kind is a closed set of five: urgent, proposal opened, proposal closing, a reply on your own thread, and the digest. There is no row type that could carry a vanity notice. Every one queues visibly before it is sent, and unsubscribing takes one click with no sign-in.
- 10
Every decision made here is readable by someone who was not in the room. Proposals record what was asked, who could vote, and what was decided.
Defends access — Proposal posts render their full vote ledger, including objections, to any reader.
Nine boards, everywhere.
Move ward, find the same rooms.
Urgent
Burst mains, road closures, power cuts, missing people, flood warnings.
House rule — Only things that change what someone should do in the next few hours. Close the post when it is over.
Noticeboard
What is happening this week — markets, meetings, surgeries, bin changes.
House rule — Date, place, and a human to ask. Anything else is a discussion post.
Proposals
Things the ward could decide to do, and the ledger of how it decided.
House rule — State the ask, the cost, and who pays before you ask for support. Objections stay published.
Energy & Repair
Solar, insulation, heat pumps, repair cafes, tools to borrow, things that broke and how they were fixed.
House rule — Post the numbers. What it cost, what it saved, what went wrong.
Growing
Allotments, verges, orchards, seed swaps, surplus to give away.
House rule — Say where. A photo of a courgette helps nobody find the courgette.
Trade
Local businesses, trades, jobs, and what people are selling or giving away.
House rule — Businesses post as themselves, not as neighbours. One listing per thing.
Help
Asking for a hand, and offering one. Lifts, shopping, childcare, a ladder.
House rule — No means-testing your neighbours. Close the post when you are sorted.
Council & Casework
Planning applications, councillor surgeries, licensing, and what happened to that pothole report.
House rule — Link the reference number. Chase in public so the next person can follow it.
The Record
The ward’s durable memory: decisions taken, projects finished, what a thing cost, who to ask.
House rule — Edited, not argued. Every entry cites the thread it came from.
Every ward gets a page.
A resident makes it a place.
Bolton Metropolitan Borough Council
Wards outside Bolton are not yet generated. Opening one is a single database call and a resident willing to steward it — that is the whole barrier, and it is deliberately that low.