···3939 </style>
4040 </head>
4141 <body class="{% block body_classes %}{% endblock %}">
4242- <h1><a href="/">This</a> is an <a href="https://github.com/at-ucosm/links/tree/main/link_aggregator">atproto link aggregator</a> server from <a href="https://github.com/at-ucosm">µcosm</a>!</h1>
4242+ <h1><a href="/">This</a> is an <a href="https://github.com/at-ucosm/links/tree/main/constellation">atproto link aggregator</a> server from <a href="https://github.com/at-ucosm">µcosm</a>!</h1>
4343 {% block content %}{% endblock %}
44444545 <footer>
···11-µcosm links
22-===========
11+microcosm: links
22+================
33+44+this repo contains libraries and apps for working with cross-record references in at-protocol.
55+66+77+App: [Constellation](./tree/main/microcosm/)
88+--------------------------------------------
99+1010+A global atproto backlink index ✨
1111+1212+- Self hostable: handles the full write throughput of the global atproto firehose on a raspberry pi 4b + single SSD
1313+- Storage efficient: less than 2GB/day disk consumption indexing all references in all lexicons and all non-atproto URLs
1414+- Simple JSON API
1515+1616+All social interactions in atproto tend to be represented by links (or references) between PDS records. This index can answer questions like "how many likes does a bsky post have", "who follows an account", "what are all the comments on a [frontpage](https://frontpage.fyi/) post", and more.
1717+1818+- **status**: works! api is unstable and likely to change, and no known instances have a full network backfill yet.
1919+- source: [./microcosm/](./tree/main/microcosm/)
2020+- public instance: [links.bsky.bad-example.com](https://links.bsky.bad-example.com/)
2121+2222+_note: the public instance currently runs on a little raspberry pi in my house, feel free to use it! it comes with only with best-effort uptime, no commitment to not breaking the api for now, and possible rate-limiting. if you want to be nice you can put your project name and bsky username (or email) in your user-agent header for api requests._
2323+2424+2525+App: Spacedust
2626+--------------
32744-optimistically extract links from arbitrary atproto records, optionally resolving canonical representations and possibly validating StrongRefs.
2828+A notification subscription service 💫
5293030+using the same "link source" concept as [constellation](./tree/main/microcosm), offer webhook notifications for new references created to records
63177-status
88-------
3232+- **status**: in design
9331010-not at all ready (yet)
3434+3535+Library: [links](./tree/main/links/)
3636+------------------------------------
3737+3838+A rust crate (not published on crates.io yet) for optimistically parsing links out of arbitrary atproto PDS records, and potentially canonicalizing them
3939+4040+- **status**: unstable, might remain an internal lib for constellation (and spacedust, soon)
4141+4242+11431244---
4545+4646+4747+old notes follow, ignore
4848+------------------------
4949+13501451as far as i can tell, atproto lexicons today don't follow much of a convention for referencing across documents: sometimes it's a StrongRef, sometimes it's a DID, sometimes it's a bare at-uri. lexicon authors choose any old link-sounding key name for the key in their document.
1552