This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

6 2 0

Clone this repository

https://git.vm.fail/guid.foo/openletter https://git.vm.fail/did:plc:h5i4dnu3mtc2ydy3szmhapqu
ssh://git@knot.guid.foo:2222/guid.foo/openletter ssh://git@knot.guid.foo:2222/did:plc:h5i4dnu3mtc2ydy3szmhapqu

For self-hosted knots, clone URLs may differ based on your setup.


README.md

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 definitions
  • openletter.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.