-- URL type definition let URL : Type = { scheme : Text , host : Text , port : Optional Natural , path : Optional Text , query : Optional Text , fragment : Optional Text } let URLDefaults = { port = None Natural , path = None Text , query = None Text , fragment = None Text } -- Helper function to create URLs with defaults let makeURL = \(args : { scheme : Text, host : Text }) -> URLDefaults // args -- Helper function to create HTTPS URLs let https = \(host : Text) -> makeURL { scheme = "https", host = host } -- Helper function to create HTTP URLs let http = \(host : Text) -> makeURL { scheme = "http", host = host } -- Simple URL type for basic use cases (just validated text) let SimpleURL : Type = Text -- Project categories and languages let Category = < App | SDK | Library | Tool | Server | Bot | FeedGenerator | Platform | CLI | GitHubAction | DataExplorer | NetworkDashboard | AccountManagement | FeedUtility | StarterKit > let Language = < TypeScript | Go | Dart | Python | Swift | Kotlin | Rust | Java | PHP | Ruby | Elixir | Shell | JavaScript | C | CSharp > -- Project type definition let Project : Type = { name : Text , description : Text , category : Category , languages : List Language , repoURL : Optional SimpleURL , appURL : Optional SimpleURL , maintainers : Optional (List Text) } -- Comprehensive AT Protocol ecosystem data let atprotoProjects : List Project = -- Official SDKs and Libraries [ { name = "@atproto/api" , description = "The official TypeScript/JavaScript SDK. Powers the Bluesky app with APIs, session management, full type validation, and RichText library." , category = Category.SDK , languages = [ Language.TypeScript, Language.JavaScript ] , repoURL = Some "https://github.com/bluesky-social/atproto/tree/main/packages/api" , appURL = None SimpleURL , maintainers = Some [ "Bluesky Social PBC" ] } , { name = "indigo" , description = "The official Go implementation used for core backend services like PDS and Relays." , category = Category.SDK , languages = [ Language.Go ] , repoURL = Some "https://github.com/bluesky-social/indigo" , appURL = None SimpleURL , maintainers = Some [ "Bluesky Social PBC" ] } -- Community SDKs , { name = "atproto" , description = "A comprehensive, high-quality Python SDK with modular design for client, firehose, codegen, identity, and more. The de facto standard for Python." , category = Category.SDK , languages = [ Language.Python ] , repoURL = Some "https://github.com/MarshalX/atproto" , appURL = Some "https://atproto.blue" , maintainers = Some [ "MarshalX" ] } , { name = "atproto.dart" , description = "A suite of packages for Dart & Flutter development, providing type-safe API wrappers for ATProto and Bluesky, and text utilities." , category = Category.SDK , languages = [ Language.Dart ] , repoURL = Some "https://github.com/myConsciousness/atproto.dart" , appURL = Some "https://atprotodart.com" , maintainers = Some [ "myConsciousness" ] } , { name = "atproto-rs" , description = "A suite of libraries, tools, and daemons for building ATProto services in Rust." , category = Category.SDK , languages = [ Language.Rust ] , repoURL = Some "https://github.com/ngerakines/atproto-rs" , appURL = None SimpleURL , maintainers = Some [ "ngerakines" ] } , { name = "bsky-rs" , description = "An ATProto (Bluesky) API implementation in Rust." , category = Category.SDK , languages = [ Language.Rust ] , repoURL = Some "https://github.com/sizumita/bsky-rs" , appURL = None SimpleURL , maintainers = Some [ "sizumita" ] } , { name = "bsky4j" , description = "A community-maintained client library for ATProtocol and Bluesky in Java." , category = Category.SDK , languages = [ Language.Java ] , repoURL = Some "https://github.com/uakihir0/bsky4j" , appURL = None SimpleURL , maintainers = Some [ "uakihir0" ] } , { name = "Atproto.Net" , description = "A third-party C# library for interacting with the AT Protocol." , category = Category.SDK , languages = [ Language.CSharp ] , repoURL = Some "https://github.com/RoccoDev/Atproto.Net" , appURL = None SimpleURL , maintainers = Some [ "RoccoDev" ] } , { name = "swiftsky" , description = "An unofficial client library for Bluesky/ATProto written in Swift, suitable for iOS/macOS development." , category = Category.SDK , languages = [ Language.Swift ] , repoURL = Some "https://github.com/rmcan/swiftsky" , appURL = None SimpleURL , maintainers = Some [ "rmcan" ] } , { name = "atproto-elixir" , description = "An implementation of the ATProtocol client specification in Elixir." , category = Category.SDK , languages = [ Language.Elixir ] , repoURL = Some "https://github.com/mschae/atproto-elixir" , appURL = None SimpleURL , maintainers = Some [ "mschae" ] } -- Applications , { name = "Bluesky" , description = "The official flagship application for the AT Protocol, serving as a social network and proof-of-concept." , category = Category.App , languages = [ Language.TypeScript ] , repoURL = Some "https://github.com/bluesky-social/social-app" , appURL = Some "https://bsky.app" , maintainers = Some [ "Bluesky Social PBC" ] } , { name = "Graysky" , description = "A third-party client for Bluesky, built with React Native." , category = Category.App , languages = [ Language.TypeScript ] , repoURL = Some "https://github.com/mozzius/graysky" , appURL = Some "https://graysky.app/" , maintainers = Some [ "mozzius" ] } , { name = "Tangled" , description = "A git collaboration platform using ATProto for identity and social features, offering an alternative to GitHub." , category = Category.Platform , languages = [ Language.TypeScript ] , repoURL = Some "https://tangled.sh/atproto/tangled" , appURL = Some "https://tangled.sh" , maintainers = None (List Text) } , { name = "Whitewind" , description = "A blog service that allows users to publish Markdown articles using a custom lexicon." , category = Category.Platform , languages = [ Language.TypeScript ] , repoURL = Some "https://github.com/whtwnd/whitewind-blog" , appURL = Some "https://whtwnd.com" , maintainers = None (List Text) } , { name = "Smoke Signal" , description = "A platform for creating, discovering, and RSVPing to events, built with a community lexicon." , category = Category.Platform , languages = [ Language.TypeScript ] , repoURL = Some "https://github.com/SmokeSignal-Events/lexicon" , appURL = Some "https://smokesignal.events" , maintainers = None (List Text) } , { name = "Frontpage" , description = "A link aggregator and discussion platform, similar in concept to Reddit or Hacker News." , category = Category.Platform , languages = [ Language.TypeScript ] , repoURL = Some "https://github.com/likeandscribe/frontpage" , appURL = Some "https://frontpage.fyi" , maintainers = None (List Text) } , { name = "Skylights" , description = "A specialized social app for writing and sharing book reviews." , category = Category.App , languages = [ Language.TypeScript ] , repoURL = Some "https://github.com/Gregoor/skylights" , appURL = Some "https://skylights.my" , maintainers = Some [ "Gregoor" ] } , { name = "Picosky" , description = "An ATProto-native chatting application with its own web client and appview." , category = Category.App , languages = [ Language.TypeScript ] , repoURL = Some "https://github.com/psky-atp" , appURL = Some "https://psky.social" , maintainers = None (List Text) } , { name = "PinkSea" , description = "An 'Oekaki' (drawing) BBS that allows users to create and share art on the AT Protocol." , category = Category.App , languages = [ Language.TypeScript ] , repoURL = Some "https://github.com/shinolabs/PinkSea" , appURL = Some "https://pinksea.art" , maintainers = None (List Text) } , { name = "LinkAT Blue" , description = "A 'link-in-bio' service that allows users to create a personal landing page." , category = Category.Tool , languages = [ Language.TypeScript ] , repoURL = Some "https://github.com/mkizka/linkat" , appURL = Some "https://linkat.blue" , maintainers = Some [ "mkizka" ] } , { name = "recipe.exchange" , description = "An application for sharing and discovering cooking recipes." , category = Category.App , languages = [ Language.TypeScript ] , repoURL = Some "https://recipe.exchange/lexicons" , appURL = Some "https://recipe.exchange" , maintainers = None (List Text) } -- Developer Tools and Utilities , { name = "PDSls" , description = "A powerful tool to browse the raw records in any PDS. Allows authenticated users to create/edit records." , category = Category.DataExplorer , languages = [ Language.TypeScript ] , repoURL = None SimpleURL , appURL = Some "https://pdsls.dev" , maintainers = None (List Text) } , { name = "ATProto Browser" , description = "A user-friendly browser for AT URIs, DIDs, handles, and Lexicons, with rich previews for common record types." , category = Category.DataExplorer , languages = [ Language.TypeScript ] , repoURL = None SimpleURL , appURL = Some "https://atproto-browser.vercel.app" , maintainers = None (List Text) } , { name = "atp.tools" , description = "A multi-purpose dashboard to browse repo data, view the live firehose, and check network statistics." , category = Category.NetworkDashboard , languages = [ Language.TypeScript ] , repoURL = None SimpleURL , appURL = Some "https://atp.tools" , maintainers = None (List Text) } , { name = "goat" , description = "A Go-based CLI tool from the indigo repo used to publish custom Lexicon schemas to a PDS." , category = Category.CLI , languages = [ Language.Go ] , repoURL = Some "https://github.com/bluesky-social/indigo/tree/main/cmd/goat" , appURL = None SimpleURL , maintainers = Some [ "Bluesky Social PBC" ] } , { name = "ATFile" , description = "A command-line tool and associated lexicon for uploading and managing arbitrary files in a user's PDS." , category = Category.CLI , languages = [ Language.TypeScript ] , repoURL = Some "https://github.com/electricduck/atfile" , appURL = None SimpleURL , maintainers = Some [ "electricduck" ] } , { name = "Bluesky Post Action" , description = "A GitHub Action that allows workflows to send a post to Bluesky, useful for automated notifications." , category = Category.GitHubAction , languages = [ Language.JavaScript ] , repoURL = Some "https://github.com/marketplace/actions/send-bluesky-post" , appURL = None SimpleURL , maintainers = None (List Text) } , { name = "ATProto Feed Generator" , description = "A starter kit for building and publishing custom algorithmic feeds on the AT Protocol." , category = Category.StarterKit , languages = [ Language.TypeScript ] , repoURL = Some "https://github.com/bluesky-social/feed-generator" , appURL = None SimpleURL , maintainers = Some [ "Bluesky Social PBC" ] } , { name = "cleanfollow" , description = "A web tool to select and unfollow inactive or blocked accounts." , category = Category.AccountManagement , languages = [ Language.TypeScript ] , repoURL = None SimpleURL , appURL = Some "https://cleanfollow-bsky.pages.dev" , maintainers = None (List Text) } , { name = "Blue Mirage" , description = "A tool for copying the follow list of another user on Bluesky." , category = Category.AccountManagement , languages = [ Language.TypeScript ] , repoURL = None SimpleURL , appURL = Some "https://jiftechnify.github.io/blue-mirage/" , maintainers = Some [ "jiftechnify" ] } , { name = "Bluestream" , description = "An RSS/JSON/CSV feed generator for Bluesky user profiles." , category = Category.FeedUtility , languages = [ Language.TypeScript ] , repoURL = None SimpleURL , appURL = Some "https://bluestream.deno.dev" , maintainers = None (List Text) } -- Bridge Tools , { name = "SkyBridge" , description = "A bridge that connects the AT Protocol to the Fediverse (Mastodon, Pleroma, etc.)." , category = Category.Tool , languages = [ Language.Go ] , repoURL = Some "https://github.com/rmm5t/skybridge" , appURL = None SimpleURL , maintainers = Some [ "rmm5t" ] } , { name = "looksky" , description = "A tool to search for posts on Bluesky." , category = Category.Tool , languages = [ Language.Rust ] , repoURL = Some "https://github.com/junkato/looksky" , appURL = Some "https://looksky.pages.dev/" , maintainers = Some [ "junkato" ] } , { name = "Skyfeed" , description = "A powerful custom feed builder and client for Bluesky." , category = Category.Platform , languages = [ Language.TypeScript ] , repoURL = Some "https://github.com/RedSolver/skyfeed" , appURL = Some "https://skyfeed.app/" , maintainers = Some [ "RedSolver" ] } -- Bot Frameworks , { name = "bsky.bot" , description = "A framework for creating Bluesky bots." , category = Category.Library , languages = [ Language.Python ] , repoURL = Some "https://github.com/quinncasey/bsky.bot" , appURL = None SimpleURL , maintainers = Some [ "quinncasey" ] } ] in atprotoProjects