The Atmosphere Report#
This project explores what would a timeline of different lexicons look like? A personal news paper showing you updates happening on The Atmosphere. This was my project for the atproto episode of CodeTV. You can try it out a news.modelo.social, but just know right now it's mostly a demo and more than likely has a couple of bugs.
If you want to see the original code of this project as the day of the CodeTV recording check the tag day-of-code-tv, and deploy-ready was the one that added no new features but did some work so it could be deployed easily. Everything after is new features.

How does it work?#
When you login for the first time the backend saves a list of who you follow. Then watches the firehose of the atprotocol for those users you follow. If it sees that any of your following listen to a song recorded on teal.fm, like a package on npmx.dev, or stars a repo on tangled.org, it saves the at-uri of that record to the database. Then when you load the feed it shows a timeline combined of those with Bluesky posts from the wonderful For You feed. The backend just serves an array of the at-uris, with the client loading the content of those records with slingshot from microcosm. The frontend combines the two feeds. The Bluesky one and the one from the API making a combined feed with one Bluesky post, then one of a different lexicon from the API.
Notes#
- app Is a Svelte frontend with oauth that uses @atcute packages for interacting with the atprotocol, including making authenticated XRPC requests to the api backend.
- api Is an axum backend that serves the XRPC endpoint found in ./lexicons/dad/pds/feed/getNewsPaperSkeleton.json as well as the firehose listener. The API uses the jacquard crates to interact with the atprotocol.
Will you finish this project?#
Good question. no idea. I'd like to keep playing around with it, add the ability to select the Bsky feed, filter which records to see, make actual cards for the other lexicons, as well as add other lexicons. But no idea if I will be able to find the time. But, good chance you will see these ideas in other atproto applications I work on.