{
"path": "/3mkyl2wsxpc23",
"site": "at://did:plc:xg2vq45muivyy3xwatcehspu/site.standard.publication/3m6bjy3xm5s2a",
"tags": [
"Android",
"Flutter",
"Announcement",
"BlueSky",
"BlackSky"
],
"$type": "site.standard.document",
"title": "Lazurite for Android",
"content": {
"$type": "pub.leaflet.content",
"pages": [
{
"id": "019df0a8-8469-7ff1-a6ca-c7b4194d1e25",
"$type": "pub.leaflet.pages.linearDocument",
"blocks": [
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "I'm so excited to announce the first release of Lazurite for Android! I've been working on this for months and am really excited to share this with the community!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 24,
"byteStart": 20
},
"features": [
{
"uri": "https://github.com/stormlightlabs/lazurite/releases/tag/v1.0.0-alpha",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "You can download it here:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"src": "https://github.com/stormlightlabs/lazurite/releases/tag/v1.0.0-alpha",
"$type": "pub.leaflet.blocks.website",
"title": "Release v1.0.0-alpha ยท stormlightlabs/lazurite",
"description": "First public alpha for Lazurite: a feature-rich ATProto client with multi-account support, advanced feed/profile tooling, moderation signals, media support, and offline-aware behavior. Highlights ...",
"previewImage": {
"$type": "blob",
"ref": {
"$link": "bafkreigt3dzqqfhwrtckd5q236vbsftkxggfib74c5ndq7xj6vixa3sase"
},
"mimeType": "image/png",
"size": 24114
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": ""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.image",
"image": {
"$type": "blob",
"ref": {
"$link": "bafkreieq2l425p5ydgxqvhwvedzoq7ayiu7ytpcn2hjydrzsmkcfnewdmy"
},
"mimeType": "image/webp",
"size": 27878
},
"aspectRatio": {
"width": 1024,
"height": 500
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"plaintext": "Highlights"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "OAuth2 authentication and multi-account support"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Full posting workflow: compose, draft persistence, edit (delete-recreate), delete, and thread/reply actions"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Profile, feed, list, and starter pack exploration"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Search across users, posts, hashtags, and starter packs"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Local + protocol-level save/bookmark flows"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Moderation labels and profile context (blocking/blocked-by/lists)"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Offline/low-connectivity handling with cached data display"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "AppView/provider-aware routing (BlueSky/BlackSky) with trending/listing support"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Rich theming, including Oxocarbon, Rose Pine, Nord, Catppuccin, and Shades-of-Purple/BlackSky-inspired theme"
}
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": ""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"plaintext": "Added"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "Core social features"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Profile screen with post viewing"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Feed management (reordering, pinning)"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Post actions: like, reply, repost"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Thread screen with threaded replies and depth-based auto-collapse"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Direct messages and message requests"
}
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "Composer and content management"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Post composer with persisted drafts"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Post deletion"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Post editing via delete-recreate"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "In-app URL resolution for profiles/posts/hashtags"
}
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "Discovery and navigation"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Search for posts and users"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Autocomplete/typeahead for login and actor/profile search"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Jump-to-profile from search"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Dedicated hashtag screen with Top/Latest sorting and related hashtag exploration"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Starter pack and list views"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Starter pack search"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Suggested follows tab for non-currently authenticated users"
}
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "Media and reliability"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Image/video playback and downloading"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Video upload limit controls in settings"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Offline/low-connectivity detection with cached data fallback"
}
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "Safety and power-user tools"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Moderation service integration with user labels"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Profile Context section (blocking/blocked-by/lists)"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Follow hygiene tooling for inactive/problematic account cleanup"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Dev Tools for logs and PDS record exploration"
}
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "Platform"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "AppView (BlueSky/BlackSky) swappable provider routing from Login/Settings"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Trending views and listings based on selected AppView"
}
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"plaintext": "Screenshots"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": ""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.image",
"image": {
"$type": "blob",
"ref": {
"$link": "bafkreid6bxv3k2y7zmv4hslavzaqs2xhoemu7pkzulhz5us7dfaspqpzzi"
},
"mimeType": "image/webp",
"size": 40786
},
"aspectRatio": {
"width": 864,
"height": 1920
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.image",
"image": {
"$type": "blob",
"ref": {
"$link": "bafkreiafm6yuqv2etx6ll36ts6gfsdcaxkoaaalldv7dl3bh7qwryaanfu"
},
"mimeType": "image/webp",
"size": 33440
},
"aspectRatio": {
"width": 864,
"height": 1920
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.image",
"image": {
"$type": "blob",
"ref": {
"$link": "bafkreifobltmwxux436a77xe7kwy6yrvcmqgaceryk7lpq6kkjgo6d7xei"
},
"mimeType": "image/webp",
"size": 118356
},
"aspectRatio": {
"width": 864,
"height": 1920
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.image",
"image": {
"$type": "blob",
"ref": {
"$link": "bafkreihljovwibl52jkoudbzn7lqtcweiy7rvyalpr2nuv5avzoaxfglzu"
},
"mimeType": "image/webp",
"size": 61464
},
"aspectRatio": {
"width": 864,
"height": 1920
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.image",
"image": {
"$type": "blob",
"ref": {
"$link": "bafkreibmw4bdhz7on4rnldo6ki2heze2r2xwibk3weg2vrdyarcwg5jxt4"
},
"mimeType": "image/webp",
"size": 65926
},
"aspectRatio": {
"width": 864,
"height": 1920
}
}
}
]
}
]
},
"coverImage": {
"$type": "blob",
"ref": {
"$link": "bafkreieq2l425p5ydgxqvhwvedzoq7ayiu7ytpcn2hjydrzsmkcfnewdmy"
},
"mimeType": "image/webp",
"size": 27878
},
"bskyPostRef": {
"cid": "bafyreied3g5azvs7o3rl4nqlvuox3ngtwatshevhub7v7fl2itztoxqjjq",
"uri": "at://did:plc:xg2vq45muivyy3xwatcehspu/app.bsky.feed.post/3mkyl334zoc2r",
"commit": {
"cid": "bafyreiflv2kfeayglrkxnabpdwt7ezydk6mpwhjhkmnvqcirecl7e3p6zm",
"rev": "3mkyl337yoz2x"
},
"validationStatus": "valid"
},
"description": "v1.0.0-alpha",
"publishedAt": "2026-05-04T01:57:41.337Z"
}