A Bluesky appview focused on low resource consumption
AppViewLite is an ATProto (Bluesky) appview focused on low resource consumption, able to run independently of the main appview APIs.
It includes:
AppViewLite)AppViewLite.Web)
Indexing the firehose (posts, likes, reposts, follows, blocks) takes about 2.2 GB of disk space per day. By contrast, the raw data from the firehose (without inverse indexes) is reported to be around 200 GB per day. You can optionally prune old content that doesn't involve the social graph neighborhood of the users that use your AppViewLite instance.
Tip: You can browse to http://localhost:PORT/profile/... to easily convert a bsky.app URL into an AppViewLite one, or you can paste a profile URL into the search bar.
One of the goals is to be as independent as possible from the official Bluesky PBC infrastructure.
This AppView runs independently of the main bsky.app APIs.
bsky.network or JetStream), and optionally specify individual extra PDSes to listen to, making them uncensorable.cdn.bsky.app| Feature | AppViewLite (read) | AppViewLite (edit) | bsky.app |
|---|---|---|---|
| Posts | ✅ | ✅ | ✅ |
| Likes, bookmarks, reposts | ✅ | ✅ | ⚠️ No bookmarks |
| Profile pages | ✅ | ⚠️ No likes list | |
| Follows | ✅ | ✅ | ⚠️ No private follows |
| Search | ✅ | ✅ | ⚠️ No media search |
| Media grid view | ✅ | ⛔ | |
| Video | ✅ + download support | ⛔ | ✅ |
| Notifications | ✅ | ✅ | |
| Feeds | ✅ | ✅ | |
| Built-in feed: Recent | ✅ | ✅ | |
| Built-in feed: Balanced | ✅ | ⛔ | |
| Live post stat updates | ✅ | ⛔ | |
| Keyboard navigation (JK) | ✅ | ⛔ | |
| Recently viewed post history | ✅ | ⛔ | |
| Post interaction settings | ✅ Blurred posts | ⚠️ Remove reply only | ✅ Nuclear blocks |
| Blocks | ✅ Blurred posts | ✅ | ✅ Nuclear blocks |
| Labels | ✅ | ✅ | |
| Lists | ✅ | ⛔ | ✅ |
| Mutes | ✅ | ⚠️ No expiration | ⚠️ No user-specific mute words ⚠️ No mute by post type |
| Protocol: ATProto | ✅ | ✅ | ✅ |
| Protocol: Fediverse/Mastodon | ✅ | ⛔ | ⛔ |
| Protocol: RSS | ✅ | ⛔ | ⛔ |
| Protocol: Nostr | ✅ | ⛔ | ⛔ |
| Protocol: Imageboards | ✅ | ⛔ | ⛔ |
| Protocol: Tumblr | ✅ | ⛔ | ⛔ |
| Appearance settings | ✅ Custom accent colors | ✅ | |
| Chat | ⛔ | ⛔ | ✅ |
| Data export | ✅ | ⚠️ No images, no private data | |
| Self-hosting | ✅ Single-process ✅ Low-resource focused | ⚠️ Complex, resource intensive |
cd src/AppViewLite.Webdotnet run -c Release -- --allow-new-databasehttps://localhost:61749/Optionally, you can set various configuration settings, including APPVIEWLITE_DIRECTORY to specify where the data should be stored.
For containerized build and deployment, see examples in src/build-container.ps1.
Each "table" is a set of memory-mapped columnar storage files that associates one key, to one or many values. Both the keys and the values within a key are ordered to enable fast binary search lookups. All the slices of a table are periodically compacted into larger slices.
A primary / readonly replica mechanism is used (within the same process) with read/write lock semantics to allow for effectively lock-less reads for most HTTP requests.
Accounts are rekeyed using 32-bit integers. RKeys are converted back into their underlying 64-bit values in order to save space.
Post data is compressed by turning it into GPT/Tiktoken tokens, then encoding the 18-bit tokens using a variable-length bit representation, and then serializing everything into a Protobuf message (along with other metadata).
Fishyflip - a .NET ATProtocol/Bluesky Library
A .NET class library for the Bluesky social network.
A Bluesky client for Windows 11, Windows 10 and Windows 10 Mobile
An oekaki BBS board running on top of the AT Protocol.
Client for Bluesky
BlueSky client for Windows 10/11
Your Brand Here!
50K+ engaged viewers every month
Limited spots available!
📧 Contact us via email🦋 Contact us on Bluesky