ness.city
👤

Civic Protocol · v0.1 · MIT

A network shouldn't die with its venue.

An open contract for startup societies to interoperate, so a network can outlive any one venue, licence, or founder.

Why

Every startup society is built as a product: a closed app, its own login, its own database. When a node dies — a licence pulled, a lease lost, a founder leaving — its people can carry nothing with them. Not identity, not reputation, not even an address book. The community simply scatters.

A protocol fixes the class of problem no single node can fix for itself.

Discovery

Any node serves a manifest, no prior arrangement needed:

curl https://ness.city/.well-known/civic.json

Four rules

1. Nodes own their data. The protocol owns only the contract. No central server, no registry anyone must join, no one who can revoke you.

2. Read-only and public by default. Anything private stays behind the node's own gate and never appears on the federated surface.

3. Consent over completeness. Publish people who opted in, never your full directory. This is the rule people are tempted to break.

4. Exit is a feature. Members can export their own data in full, at any time. If they can't leave, they're inventory, not members.

Endpoints

/api/civic/nodeAggregate vital signs. Counts only, never a list.
/api/civic/peopleOnly members who opted in. Never a directory.
/api/civic/problemsOpen civic problems. Public by design.
/api/civic/eventsContract fixed now; live once a node implements it.

The full spec, with response shapes and an implementation guide, lives in the repo: docs/CIVIC-PROTOCOL.md. MIT licensed. Implement it, fork it, ignore the parts you dislike.

See it in use: nskpi.com is a registry, a client that polls node manifests and renders honest numbers. It holds no authority over any node and can be replaced.