openletter#
An ATProto-native petition system. Anyone can create a petition, and anyone can endorse any number of petitions.
This is the monorepo for two domains:
- openletter.pub — the lexicon namespace (
pub.openletter.*) defining the records and APIs for petitions and endorsements. - openletter.vote — the AppView and web frontend where petitions are browsed, created, and endorsed.
How it works#
The data model leans into ATProto's account-centric design:
- Petitions live on the originator's PDS. You own the petitions you start.
- Endorsements live on each endorser's PDS. Your signatures are yours, stored on your own repo.
The AppView (openletter.vote) aggregates these records across the network to present petitions, tally endorsements, and surface activity — but it never owns the underlying data. Every petition and every signature is a record in someone's personal repository, portable and verifiable like anything else on ATProto.
Layout#
This is a monorepo organized by domain:
openletter.pub/— the lexicon definitionsopenletter.vote/— the AppView and web frontend
Status#
Early days. The domains are registered and the design is taking shape. No implementation language or framework has been chosen yet.
License#
MIT — see LICENSE.