update lists
This commit is contained in:
133
terminal/atproto
Normal file
133
terminal/atproto
Normal file
@@ -0,0 +1,133 @@
|
||||
|
||||
|
||||
|
||||
[38;5;14m[1m![0m[38;5;12mAwesome[39m[38;5;14m[1m (https://awesome.re/badge.svg)[0m[38;5;12m (https://awesome.re)[39m
|
||||
|
||||
|
||||
[38;5;12m [39m[38;2;255;187;0m[1m[4mAwesome ATProto [0m
|
||||
|
||||
[38;5;11m[1m▐[0m[38;5;12m [39m[38;5;14m[1mAT Protocol[0m[38;5;12m (https://atproto.com/) is a federated protocol for building social applications on an open, decentralized network[39m
|
||||
|
||||
[38;2;255;187;0m[4mContents[0m
|
||||
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mAT Protocol[0m[38;5;12m (#at-protocol)[39m
|
||||
[48;5;235m[38;5;249m* **References** (#references)[49m[39m
|
||||
[48;5;235m[38;5;249m* **Articles** (#articles)[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mBrowsers[0m[38;5;12m (#browsers)[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mPlatforms[0m[38;5;12m (#platforms)[39m
|
||||
[48;5;235m[38;5;249m* **Bluesky** (#bluesky)[49m[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mTools[0m[38;5;12m (#tools)[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mLexicons[0m[38;5;12m (#lexicons)[39m
|
||||
|
||||
[38;2;255;187;0m[4mAT Protocol[0m
|
||||
|
||||
[38;2;255;187;0m[4mReferences[0m
|
||||
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mGlossary[0m[38;5;12m (https://atproto.com/guides/glossary) - Quick reference to AT Protocol terms.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mLexicons, Pinned Posts, and Interoperability[0m[38;5;12m (https://docs.bsky.app/blog/pinned-posts) - Post-mortem about the evolution of lexicons and lessons learned.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mQuick start guide to building applications on AT Protocol[0m[38;5;12m (https://atproto.com/guides/applications) - Guide to create a basic ATProto application.[39m
|
||||
|
||||
[38;2;255;187;0m[4mArticles[0m
|
||||
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFirst impressions of Bluesky's AT Protocol[0m[38;5;12m (https://educatedguesswork.org/posts/atproto-firstlook/) - In-depth analysis of Bluesky's ATProto, highlighting its aim to create a decentralized social media architecture.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mNostr and ATProto[0m[38;5;12m (https://shreyanjain.net/2024/07/05/nostr-and-atproto.html) - Comparison of Nostr and ATProto, two decentralized social media protocols, exploring their origins, similarities, and differences.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mHow decentralized is Bluesky really?[0m[38;5;12m (https://dustycloud.org/blog/how-decentralized-is-bluesky/) - Critical examination of Bluesky's decentralization claims and its architectural challenges compared to established protocols.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mReply on Bluesky and Decentralization[0m[38;5;12m (https://whtwnd.com/bnewbold.net/3lbvbtqrg5t2t) - Reply to Christine Lemmer-Webber's thoughtful (and widely read) "How decentralized is Bluesky really?" blog post.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mWhat is atproto.com good for?[0m[38;5;12m (https://bnewbold.net/2022/atproto_thoughts/) - Technical exploration of ATProto's design principles, architectural challenges, and potential limitations as a decentralized social media protocol.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mThe AT Protocol Architecture[0m[38;5;12m (https://hackernoon.com/the-at-protocol-architecture) - Analysis of the ATProto's architecture.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mNotes on Running a Full-Network atproto Relay (July 2024)[0m[38;5;12m (https://whtwnd.com/bnewbold.net/entries/Notes%20on%20Running%20a%20Full-Network%20atproto%20Relay%20(July%202024)) - Experience about running an ATProto relay.[39m
|
||||
|
||||
[38;2;255;187;0m[4mBrowsers[0m
|
||||
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mPDSls[0m[38;5;12m (https://pdsls.dev/) - ATProto repositories browser.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mATProto Browser[0m[38;5;12m (https://atproto-browser.vercel.app/) - ATProto URIs browser.[39m
|
||||
|
||||
[38;2;255;187;0m[4mPlatforms[0m
|
||||
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mBluesky[0m[38;5;12m (https://bsky.social) - The beloved social network and main ATProto platform.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mBlue Place[0m[38;5;12m (https://place.blue/) - Massive real-time collaborative canvas.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mBookhive[0m[38;5;12m (https://bookhive.buzz/) - Goodreads alternative.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFrontpage[0m[38;5;12m (https://frontpage.fyi/) - Federated link aggregator.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mGrayHaze[0m[38;5;12m (https://grayhaze.live/about) - Live streaming service (alpha).[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mLinkat[0m[38;5;12m (https://linkat.blue/) - Link in bio for Bluesky.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mPastesphere[0m[38;5;12m (https://pastesphere.link/) - Pastebin alternative.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mPicosky[0m[38;5;12m (https://psky.social/) - ATProto chatting appview.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mPinkSea[0m[38;5;12m (https://pinksea.art/) - Oekaki BBS.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mrecipe.exchange[0m[38;5;12m (https://recipe.exchange/) - Cooking recipes sharing.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mSkylights[0m[38;5;12m (https://skylights.my/) - Book reviews.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mSmoke Signal[0m[38;5;12m (https://smokesignal.events/) - Event creation and managing.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mSparta Social[0m[38;5;12m (https://github.com/dblock/sparta-social) - Exercise activity tracker (wip).[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mWhitewind[0m[38;5;12m (https://whtwnd.com/) - Markdown blog service using ATProto with no registration required.[39m
|
||||
|
||||
[38;2;255;187;0m[4mBluesky[0m
|
||||
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mClearSky[0m[38;5;12m (https://clearsky.app/) - Tool to explore Bluesky accounts.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mcleanfollow[0m[38;5;12m (https://cleanfollow-bsky.pages.dev/) - Select inactive or blocked accounts to unfollow.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mHandles directory[0m[38;5;12m (https://blue.mackuba.eu/directory/) - Handles ranking by TLDs.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mLabellers[0m[38;5;12m (https://blue.mackuba.eu/labellers/) - List of known labellers.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mBluSki[0m[38;5;14m[1m [0m[38;5;14m[1maccount[0m[38;5;14m[1m [0m[38;5;14m[1mhistory[0m[38;5;12m [39m
|
||||
[38;5;12m(https://mocku.me/nt/#%23+BluSki+account+history//%23%23+Whose+history%3F//Let's+pick+a+rando+hot+poster+from+Discovery+feed+--//%60%60%60JavaScript/%2F%2F+downloading+Discovery+feed+posts/let+discoveryFeedPosts+=+(await+fetch(/++'https:%2F%2Fa[39m
|
||||
[38;5;12mpi.bsky.app%2Fxrpc%2Fapp.bsky.feed.getFeed%3Ffeed=at:%2F%2Fdid:plc:z72i7hdynmk6r22z27h6tvur%2Fapp.bsky.feed.generator%2Fwhats-hot%26limit=100',/++%7B+headers:+%7B+'accept-language':+'en'+%7D+%7D).then(x+=%3E+x.json())).feed;//%2F%2F+sort+by+lik[39m
|
||||
[38;5;12mes/let+topTextPost+=+discoveryFeedPosts/++.filter(p+=%3E+p.post.record.text+%26%26+!p.post.record.embed)/++.sort((p1,+p2)+=%3E+p2.post.likeCount+-+p1.post.likeCount)%5B0%5D;//%2F%2F+let's+see+all+the+info+now/let+hotAuthor+=+%7B/++...topTextPos[39m
|
||||
[38;5;12mt.post.author,/++post:+%7B+...topTextPost.post,+...topTextPost.post.record,+post:+undefined,+record:+undefined,+author:+undefined+%7D/%7D;/%60%60%60//If+you're+after+specifc+handle,+specify+it+now.//%60%60%60JavaScript/let+bskyHandle+=+%2F%2F+'[39m
|
||||
[38;5;12moyin.bo';+++++++%2F%2F++%3C--+like+this/++hotAuthor.handle;+//let+resolvedAccount+=++await+fetch(/++'https:%2F%2Fpublic.api.bsky.app%2Fxrpc%2Fapp.bsky.actor.getProfile%3Factor='+%2B+bskyHandle).then(x=%3Ex.json())/%60%60%60//%23%23+Finding+PDS+[39m
|
||||
[38;5;12mfor+that+account//PDS,+personal+data+server+physically+stores+account's+data.+Usually+it's+one+of+a+couple+dozens+BluSki+servers+in+the+cloud.//By+tradition+they+get+Latin+mushroom+names.//Accounts+sometimes+shift+from+one+mushroom+to+another,+[39m
|
||||
[38;5;12mso+we+find+the+latest+most+actual+PDS.//%60%60%60JavaScript/let+plcEntries+=+await+fetch(%60https:%2F%2Fplc.directory%2F$%7BresolvedAccount.did%7D%2Flog%2Faudit%60).then(x+=%3E+x.json());+%2F%2F+full+account+registry/let+lastKnownPds+=+plcEntri[39m
|
||||
[38;5;12mes.slice().reverse().map(x=%3Ex.operation%3F.services%3F.atproto_pds%3F.endpoint).filter(Boolean)%5B0%5D;+%2F%2F+last+PDS+operation+record/%60%60%60//%23%23+Downloading+the+history+in+CAR%2FCBOR+format//Account+history+is+a+public+service,+beca[39m
|
||||
[38;5;12muse+it's+used+in+distributing+BluSki+data+across+the+network.+The+file+can+be+anything+between+1-50Mb+depending+on+shitposting+power.//The+binary+CAR%2FCBOR+format+saves+storage+and+bandwith,+and+has+extra+funky+cryptographic+signatures+(of+whi[39m
|
||||
[38;5;12mch+no+normal+person+cares).//%60%60%60JavaScript/let+binarySnapshot+=+await+fetch(lastKnownPds+%2B+'%2Fxrpc%2Fcom.atproto.sync.getRepo%3Fdid='+%2B+resolvedAccount.did).then(x+=%3E+x.arrayBuffer());/binarySnapshot.byteLength.toLocaleString()/%60[39m
|
||||
[38;5;12m%60%60//%23%23+Extracting+useful+data+from+CAR%2FCBOR//There+are+libraries+for+that+in+every+programming+language.+Just+invoke+and+it'll+come.//%60%60%60JavaScript/import+%7B+readCAR+%7D+from+'https:%2F%2Funpkg.com%2Fcoldsky';/let+parsedRecords[39m
|
||||
[38;5;12m+=+await+readCAR(resolvedAccount.did,+binarySnapshot,+%7B+sleep:+600+%7D)/%60%60%60//%23+Finally,+useful+info!//Having+this+rich+history+of+shitposts,+replies,+likes+and+more,+we+are+ready+to+look+at+actual+stats.//%23%23+What+kind+of+activity+[39m
|
||||
[38;5;12mdominates%3F//%60%60%60SQL/SELECT+%5B$type%5D,+COUNT([39m[48;2;30;30;40m[38;5;13m[3m)/FROM+$4+GROUP+BY+%5B$type%5D/ORDER+BY+COUNT([0m[38;5;12m)+DESC/%60%60%60//%23%23+5+days+of+heaviest+shitpost//%60%60%60SQL/SELECT+TOP+5+createdAt-%3Esplit('T')-%3E%5B0%5D+as+date,+COUNT([39m
|
||||
[48;2;30;30;40m[38;5;13m[3m)/FROM+$4/++WHERE+%5B$type%5D+=+%22app.bsky.feed.post%22/++GROUP+BY+createdAt-%3Esplit('T')-%3E%5B0%5D/ORDER+BY+COUNT([0m
|
||||
[38;5;12m)+DESC/%60%60%60//%23%23+5+days+of+love:+more+likes+gifted+to+others//%60%60%60SQL/SELECT+TOP+5+createdAt-%3Esplit('T')-%3E%5B0%5D+as+date,+COUNT([39m
|
||||
[48;2;30;30;40m[38;5;13m[3m)/FROM+$4/++WHERE+%5B$type%5D+=+%22app.bsky.feed.like%22/++GROUP+BY+createdAt-%3Esplit('T')-%3E%5B0%5D/ORDER+BY+COUNT([0m
|
||||
[38;5;12m)+DESC/%60%60%60//%23%23+10+favourite+accounts//%60%60%60SQL/SELECT+TOP+10+subject-%3Euri-%3Esplit('at:%2F%2F')-%3E%5B1%5D-%3Esplit('%2F')-%3E%5B0%5D+as+did,+COUNT([39m
|
||||
[48;2;30;30;40m[38;5;13m[3m)+AS+likes/FROM+$4/++WHERE+%5B$type%5D+=+%22app.bsky.feed.like%22/++GROUP+BY+subject-%3Euri-%3Esplit('at:%2F%2F')-%3E%5B1%5D-%3Esplit('%2F')-%3E%5B0%5D/ORDER+BY+COUNT([0m
|
||||
[38;5;12m)+DESC/%60%60%60//%23%23+Who+are+these+people%3F//Account+history+file+refers+to+other+accounts+with+hexadecimal+DID,+which+as+you+see+above+isn't+that+readable.//No+sweat,+BluSki+has+a+service+to+resolve+DID+to+account+name%2Fhandle%2Finfo.+He[39m
|
||||
[38;5;12mre+you+go.//%60%60%60JavaScript/Promise.all($8.map(async+entry+=%3E+%7B/++const+profile+=+await+fetch('https:%2F%2Fpublic.api.bsky.app%2Fxrpc%2Fapp.bsky.actor.getProfile%3Factor='+%2B+entry.did).then(x+=%3E+x.json());/++return+%7B/++++did:+prof[39m
|
||||
[38;5;12mile.did,+handle:+profile.handle,+displayName:+profile.displayName,/++++likesCount:+entry.likes,/++++postsCount:+profile.postsCount,/++++...profile/++%7D;/%7D))/%60%60%60//%23%23+10+accounts+getting+most+reply+traffic//%60%60%60SQL/SELECT+TOP+10[39m
|
||||
[38;5;12m+reply-%3Eparent-%3Euri-%3Esplit('at:%2F%2F')-%3E%5B1%5D-%3Esplit('%2F')-%3E%5B0%5D+as+did,+COUNT([39m
|
||||
[48;2;30;30;40m[38;5;13m[3m)+AS+replies/FROM+$4/++WHERE+%5B$type%5D+=+%22app.bsky.feed.post%22+AND+reply+AND+reply-%3Eparent-%3Euri/++GROUP+BY+reply-%3Eparent-%3Euri-%3Esplit('at:%2F%2F')-%3E%5B1%5D-%3Esplit('%2F')-%3E%5B0%5D/ORDER+BY+COUNT([0m
|
||||
[38;5;12m)+DESC+/%60%60%60//And+again,+with+names+and+extra.//%60%60%60JavaScript/Promise.all($10.map(async+entry+=%3E+%7B/++const+profile+=+await+fetch('https:%2F%2Fpublic.api.bsky.app%2Fxrpc%2Fapp.bsky.actor.getProfile%3Factor='+%2B+entry.did).then(x+[39m
|
||||
[38;5;12m=%3E+x.json());/++return+%7B/++++did:+profile.did,+handle:+profile.handle,+displayName:+profile.displayName,/++++repliesCount:+entry.replies,/++++postsCount:+profile.postsCount,/++++...profile/++%7D;/%7D))/%60%60%60//)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mEditable[39m[38;5;12m [39m[38;5;12mnotebook[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m
|
||||
[38;5;12manalyze[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mBluesky[39m[38;5;12m [39m[38;5;12maccount.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mStarter Packs[0m[38;5;12m (https://www.starterpacks.net/) - Search Bluesky starter packs and profiles.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mPDS self-hosting[0m[38;5;12m (https://atproto.com/guides/self-hosting) - Self-hosting a Bluesky PDS means running your own Personal Data Server that is capable of federating with the wider ATProto network.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mBluesky-powered comments for any website[0m[38;5;12m (https://github.com/czue/bluesky-comments) - Embed Bluesky comments on your website easily ([39m[38;5;14m[1mannouncement[0m[38;5;12m (https://www.coryzue.com/writing/bluesky-comments/)).[39m
|
||||
|
||||
[38;5;12mFor more Bluesky tools, check [39m[38;5;14m[1mAwesome Bluesky[0m[38;5;12m (https://github.com/notjuliet/awesome-bluesky), a more exhaustive list of tools and clients available for Bluesky.[39m
|
||||
|
||||
[38;2;255;187;0m[4mTools[0m
|
||||
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mATFile[0m[38;5;12m (https://github.com/ziodotsh/atfile) - Store and retrieve files on the ATmosphere.[39m
|
||||
|
||||
[38;2;255;187;0m[4mLexicons[0m
|
||||
|
||||
[38;5;12mLexicon is a schema definition language used to describe atproto records, HTTP endpoints (XRPC), and event stream messages.[39m
|
||||
|
||||
[38;5;12mFind below each platform's lexicons:[39m
|
||||
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mATFile[0m[38;5;12m (https://github.com/ziodotsh/lexicons/tree/main/blue/zio/atfile)[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mBluemoji[0m[38;5;12m (https://github.com/aendra-rininsland/bluemoji/tree/main/schema/blue.moji)[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mBluesky[0m[38;5;12m (https://github.com/bluesky-social/atproto/tree/main/lexicons/app/bsky)[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mBookhive[0m[38;5;12m (https://github.com/nperez0111/bookhive/tree/main/lexicons)[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFrontage[0m[38;5;12m (https://github.com/likeandscribe/frontpage/tree/main/lexicons/fyi/unravel/frontpage)[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mGrayHaze[0m[38;5;12m (https://github.com/hugeblank/grayhaze.live/tree/main/lexicons/live/grayhaze)[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mLinkat[0m[38;5;12m (https://github.com/mkizka/linkat/tree/main/lexicons/blue/linkat)[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mPastesphere[0m[38;5;12m (https://github.com/echo8/pastesphere/tree/main/lexicons)[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mPicosky[0m[38;5;12m (https://github.com/psky-atp/appview/tree/main/lexicons/social/psky)[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mPinkSea[0m[38;5;12m (https://github.com/shinolabs/PinkSea/tree/master/PinkSea.Lexicons/com/shinolabs/pinksea)[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mplace.blue[0m[38;5;12m (https://github.com/QuietImCoding/place.blue/tree/main/atproto/lexicons)[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mrecipe.exchange[0m[38;5;12m (https://recipe.exchange/lexicons/)[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mSkylights[0m[38;5;12m (https://github.com/Gregoor/skylights/tree/main/web/lexicons)[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mSkymdb[0m[38;5;12m (https://github.com/safwanyp/skymdb/tree/main/domain/lexicons)[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mSmoke Signal[0m[38;5;12m (https://github.com/SmokeSignal-Events/lexicon)[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mSparta Social[0m[38;5;12m (https://github.com/dblock/sparta-social/tree/main/lexicons)[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mWhitewind[0m[38;5;12m (https://github.com/whtwnd/whitewind-blog/tree/main/lexicons/com/whtwnd/blog) [39m
|
||||
|
||||
[38;2;255;187;0m[4mContributing[0m
|
||||
|
||||
[38;5;12mContributions welcome! Read the [39m[38;5;14m[1mcontribution guidelines[0m[38;5;12m (contributing.md) first.[39m
|
||||
|
||||
[38;5;12matproto Github: https://github.com/atblueprints/awesome-atproto[39m
|
||||
Reference in New Issue
Block a user