# bbell backend a backend service primarily for [bluebell], providing scheduled posting and automatic post deletion. a hosted version is provided at [https://api.bbell.vt3e.cat]. [usage](#usage) - [setup](#setup) - [license](#license) ## usage first, you must authenticate via oauth at `/oauth/login`. you must pass in either a `pds` parameter or `identity` parameter, which can be either a DID or handle. you can then use either the "test" page (it's more like a proper frontend actually, i got a bit distracted) to schedule and delete posts, or use the xrpc routes. for examples when working with xrpc, see [`pkgs/server/examples`](pkgs/server/examples). for deleting posts, you can also add a self-label to your post, like `cat.vt3e.bbell#marker:`, where timestamp is the unix timestamp of when you want the post to be deleted in milliseconds. for example: ```json { "$type": "app.bsky.feed.post", "createdAt": "2026-03-24T00:47:47.474Z", "text": "awawwwaawawaw", "labels": { "$type": "com.atproto.label.defs#selfLabels", "values": [ { "$type": "com.atproto.label.defs#selfLabel", "val": "cat.vt3e.bbell#marker:1774313267000" } ] } } ``` for everything else, though, you can use the xrpc routes. you can find the lexicons for these at [`pkgs/lexicons`](pkgs/lexicons). ## setup see [`pkgs/server/README.md`](pkgs/server/README.md) for setup instructions. ## license this project is licensed under the european union public license (eupl) v1.2. you can find the full license text either [here][LISC] or on the official [eupl website][EU], which also contains translations of the license in various languages. all code within this repository is licensed under the same license unlesss explicitly stated otherwise. [LISC]: ./LICENSE.EUPL-1.2 [EU]: https://interoperable-europe.ec.europa.eu/collection/eupl/eupl-text-eupl-12 [bluebell]: https://tangled.org/did:plc:2hcnfmbfr4ucfbjpnvjqvt3e/bbell