1<!DOCTYPE html> 2<html lang="en"> 3 4<head> 5 <title> 6 ATProto blog posts collection â mackuba.eu 7 </title> 8 9 <meta charset="UTF-8"> 10 <meta name="viewport" content="width=device-width"> 11 <meta name="author" content="Kuba Suder"> 12 13 <meta property="og:url" content="https://mackuba.eu/2025/11/18/atproto-blog-posts/"> 14 <meta property="og:title" content="ATProto blog posts collection"> 15 <meta property="og:type" content="article"> 16 <meta property="og:description" content="(Last update: 16 Aug 2026.)"> 17 18 <meta name="fediverse:creator" content="@[email protected]"> 19 20 <!-- 21 icons thx to: 22 Paul Robert Lloyd http://paulrobertlloyd.com 23 Mark James http://www.famfamfam.com 24 Smashing Magazine http://www.smashingmagazine.com 25 Ahmad Galal http://3nc.deviantart.com/ 26 Artua Design Studios http://www.artua.com/ 27 W3C http://www.w3.org/html/logo/ 28 Open Clip Art Library http://www.openclipart.org/ 29 Ãmer ÃETİN http://omercetin.deviantart.com/ 30 HiClipart https://www.hiclipart.com (note) 31 --> 32 33 <link rel="alternate" href="https://mackuba.eu/feed.xml" type="application/atom+xml" title="Posts feed (Atom)"> 34 <link rel="alternate" href="https://mackuba.eu/feed-notes.xml" type="application/atom+xml" title="Notes feed (Atom)"> 35 <link rel="alternate" href="https://mackuba.eu/feed-all.xml" type="application/atom+xml" title="Feed with everything (Atom)"> 36 37 <link rel="icon" href="/favicon.ico?1790026422"> 38 <link rel="shortcut icon" href="/favicon.ico?1790026422"> 39 <link rel="apple-touch-icon" href="/apple-touch-icon.png?1790026422"> 40 41 <link rel="me" href="https://101010.pl/@mackuba"> 42 43 <link rel="site.standard.publication" href="at://did:plc:oio4hkxaop4ao4wz2pp3f4cr/site.standard.publication/3mn5mackuba26"> 44 45 <link rel="site.standard.document" href="at://did:plc:oio4hkxaop4ao4wz2pp3f4cr/site.standard.document/3m5ugyehya2ex"> 46 47
47<script type="text/javascript" nonce="PLctgT91rRH/QYjJyP4OAg=="> 48 window.postData = {"blueskyURI":"at://did:plc:oio4hkxaop4ao4wz2pp3f4cr/app.bsky.feed.post/3m5wgr3eu422m","mastodonInstance":"martianbase.net","mastodonStatusId":"115572285477653239"}; 49 </script>
49 50 51
51<script defer src="/javascripts/dompurify/purify.min.js?1790026422" type="text/javascript" nonce="PLctgT91rRH/QYjJyP4OAg=="></script>
51 52
52<script defer src="/javascripts/comments.js?1790026422" type="text/javascript" nonce="PLctgT91rRH/QYjJyP4OAg=="></script>
52 53 54 <link href="/javascripts/photoswipe/photoswipe.css?1790026422" rel="stylesheet" type="text/css" nonce="PLctgT91rRH/QYjJyP4OAg=="> 55 <link href="/stylesheets/style.css?1790026422" rel="stylesheet" type="text/css" nonce="PLctgT91rRH/QYjJyP4OAg=="> 56 <link href="/javascripts/highlighter/shSwift.css?1790026422" rel="stylesheet" type="text/css" nonce="PLctgT91rRH/QYjJyP4OAg=="> 57 58
58<script defer src="/javascripts/highlighter/shCore.js?1790026422" type="text/javascript" nonce="PLctgT91rRH/QYjJyP4OAg=="></script>
58 59
59<script defer src="/javascripts/highlighter/shAutoloader.js?1790026422" type="text/javascript" nonce="PLctgT91rRH/QYjJyP4OAg=="></script>
59 60
60<script defer src="/javascripts/blog.js?1790026422" type="text/javascript" nonce="PLctgT91rRH/QYjJyP4OAg=="></script>
60 61 62
62<script type="module"> 63 import PhotoSwipeLightbox from '/javascripts/photoswipe/photoswipe-lightbox.esm.min.js'; 64 window.PhotoSwipeLightbox = PhotoSwipeLightbox; 65 </script>
65 66 67
67<script> 68 let _paq = window._paq = window._paq || []; 69 _paq.push(['setExcludedQueryParams', ['fbclid', 'tdsourcetag']]); 70 _paq.push(['setTrackerUrl', 'https://mackuba.eu/m/ping']); 71 _paq.push(['setRequestMethod', 'POST']); 72 _paq.push(['setSiteId', '5']); 73 _paq.push(['disableAlwaysUseSendBeacon']); 74 _paq.push(['disableCookies']); 75 _paq.push(['trackPageView']); 76 _paq.push(['enableLinkTracking']); 77 </script>
77 78</head> 79 80<body class="show"> 81 <header> 82 <div class="title"> 83 <h1><a href="/">MacKuba</a></h1> 84 <h4><span class="japko">ð</span> Kuba Suder's blog on Mac/iOS & web dev</h4> 85 </div> 86 87 <nav> 88 <a href="https://blue.mackuba.eu">Bluesky</a> 89 <a href="/swiftui/">SwiftUI</a> 90 <a href="/notes/">Notes</a> 91 92 <a href="/projects">Projects</a> 93 <a href="/about">About me</a> 94 95 <span class="icons"> 96 <a rel="me" title="Tangled" href="https://tangled.org/mackuba.eu" 97 target="_blank"><img class="tangled" alt="Tangled" src="/images/tangled_dolly.svg?1790026422" width="20" height="20"></a> 98 99 <a rel="me" title="Bluesky" href="https://bsky.app/profile/did:plc:oio4hkxaop4ao4wz2pp3f4cr" 100 target="_blank"><img class="bluesky" alt="Bluesky" src="/images/bsky-logo.svg?1790026422" width="20" height="20"></a> 101 102 <a rel="me" title="Mastodon" href="https://martianbase.net/@mackuba" 103 target="_blank"><img class="mastodon" alt="Mastodon" src="/images/masto-logo.svg?1790026422" width="20" height="20"></a> 104 </span> 105 </nav> 106 </header> 107 108 <div id="page"> 109 <div id="page_body"> 110 <article> 111 <header> 112 <h2> 113 <a href="/2025/11/18/atproto-blog-posts/">ATProto blog posts collection</a> 114 </h2> 115 116 <p class="info"> 117 <time datetime="2025-11-18T18:59:04+01:00" title="2025-11-18T18:59:04+01:00"> 118 Tuesday, 18 November 2025 119 </time> 120 121 <span class="tags"> 122 <img alt="Categories:" src="/images/tag_blue.png?1790026422" width="16" height="16"> 123 <a href="/category/social/">Social</a> 124 </span> 125 126 </p> 127</header> 128 129 130 <div class="body"> 131 132 133<div class="hide-in-intro"> 134 <p><i>(Last update: 16 Aug 2026.)</i></p> 135</div> 136 137 138<p>I come across a lot of blog posts about the AT Protocol and Bluesky technicals â both on Bluesky official blogs and those of the team members, and by independent developers from the community. So many people are blogging now (especially now that <a href="https://leaflet.pub">Leaflet</a> got popular in these circles) that I <a href="https://lab.mackuba.eu/3m5tyjv3ssc2p">started using an RSS reader again</a> just to keep up with everything.</p> 139 140<p>These posts are usually shared widely for a day or two, and then kind of forgotten â but a lot of them contain some valuable knowledge that is still relevant much later. Even if someone remembers that something like this has been written, it’s not always easy to dig it out from the archive.</p> 141 142<p>I thought it would be nice to have one place collecting those old and newer blog posts to make them easier to find. So I went through those RSS feeds, my <a href="https://lab.mackuba.eu/3m46zeyme3e6n">like archives</a> and other places, and collected everything I could find here in an organized list. I also included the documents from the <a href="https://github.com/bluesky-social/proposals">“Proposals” GitHub repo</a>, and various posts from the <a href="https://github.com/bluesky-social/atproto/discussions">“Discussions” section</a> in the ATProto repo.</p> 143 144<p>This is a subjective selection â from many blogs I skipped some less relevant posts or only included a couple out of many â so if you’re interested, click through to the home page from any post and look for the other posts there.</p> 145<hr /> 146 147<p class="noindent">Search posts by title: <input type="search" id="blog_post_search"></p> 148 149 150<h2>Bluesky official sources</h2> 151 152<h4>atproto.com articles</h4> 153 154<ul> 155<li><a href="https://atproto.com/articles/atproto-for-distsys-engineers">Atproto for distributed systems engineers</a> (Sep 2024)</li> 156<li><a href="https://atproto.com/articles/atproto-ethos">Atproto Ethos</a> (Apr 2025)</li> 157</ul> 158 159 160<h4>bsky.social/about/blog (non-technical blog)</h4> 161 162<ul> 163<li><a href="https://bsky.social/about/blog/4-13-2023-moderation">Composable Moderation</a> (Apr 2023)</li> 164<li><a href="https://bsky.social/about/blog/4-28-2023-domain-handle-tutorial">How to verify your Bluesky account</a> (Apr 2023)</li> 165<li><a href="https://bsky.social/about/blog/5-5-2023-federation-architecture">Federation Architecture Overview</a> (May 2023)</li> 166<li><a href="https://bsky.social/about/blog/02-22-2024-open-social-web">Bluesky: An Open Social Web</a> (Feb 2024)</li> 167<li><a href="https://bsky.social/about/blog/03-12-2024-stackable-moderation">Blueskyâs Stackable Approach to Moderation</a> (Mar 2024)</li> 168<li><a href="https://bsky.social/about/blog/05-31-2024-search">Tips and Tricks for Bluesky Search</a> (May 2024)</li> 169<li><a href="https://bsky.social/about/blog/08-06-2024-board">Bluesky Welcomes Mike Masnick to Board of Directors</a> (Aug 2024)</li> 170<li><a href="https://bsky.social/about/blog/10-24-2024-series-a">
170Bluesky Announces Series A to Grow Network of 13M+ Users</a> (Oct 2024)</li> 171<li><a href="https://bsky.social/about/blog/12-30-2024-year-in-review">2024 In Review</a> (Dec 2024)</li> 172<li><a href="https://bsky.social/about/blog/10-01-2025-patent-pledge">Bluesky’s Patent Non-Aggression Pledge</a> (Oct 2025)</li> 173<li><a href="https://bsky.social/about/blog/01-26-2026-whats-next-at-bluesky">What’s Next at Bluesky</a> (Jan 2026)</li> 174<li><a href="https://bsky.social/about/blog/03-09-2026-a-new-chapter-for-bluesky">A New Chapter for Bluesky</a> (Mar 2026)</li> 175<li><a href="https://bsky.social/about/blog/03-19-2026-series-b">Bluesky’s 2025 $100M Series B Lays Foundation for Open Social Web</a> (Mar 2026)</li> 176<li><a href="https://bsky.social/about/blog/07-10-2026-toni-schneider-ceo">Bluesky names Toni Schneider CEO</a> (Jul 2026)</li> 177</ul> 178 179 180<h4>atproto.com/blog (dev blog)</h4> 181 182<p><details> 183 <summary>Click to expand</summary></p> 184 185<h4>2023</h4> 186 187<ul> 188<li><a href="https://atproto.com/blog/block-implementation">Why are blocks on Bluesky public?</a> (Jun 2023)</li> 189<li><a href="https://docs.bsky.app/blog/feature-skyfeed">Featured Community Project: Skyfeed</a> (Aug 2023)</li> 190<li><a href="https://atproto.com/blog/create-post">Posting via the Bluesky API</a> (Aug 2023)</li> 191<li><a href="https://atproto.com/blog/repo-sync-update">Updates to Repository Sync Semantics</a> (Aug 2023)</li> 192<li><a href="https://docs.bsky.app/blog/rate-limits-pds-v3">Rate Limits, PDS Distribution v3, and More</a> (Sep 2023)</li> 193<li><a href="https://atproto.com/blog/bgs-and-did-doc">Bluesky BGS and DID Document Formatting Changes</a> (Oct 2023)</li> 194<li><a href="https://atproto.com/blog/protocol-roadmap">2023 Protocol Roadmap</a> (Oct 2023)</li> 195<li><a href="https://atproto.com/blog/repo-export">Download and Parse Repository Exports</a> (Nov 2023)</li> 196<li><a href="https://docs.bsky.app/blog/feature-bridgyfed">Featured Community Project: Bridgy Fed</a> (Dec 2023)</li> 197</ul> 198 199 200<h4>2024</h4> 201 202<ul> 203<li><a href="https://atproto.com/blog/self-host-federation">Early Access Federation for Self-Hosters</a> (Feb 2024)</li> 204<li><a href="https://atproto.com/blog/atproto-grants">Announcing AT Protocol Grants</a> (Mar 2024)</li> 205<li><a href="https://docs.bsky.app/blog/blueskys-moderation-architecture">Blueskyâs Moderation Architecture</a> (Mar 2024)</li> 206<li><a href="https://atproto.com/blog/atproto-grants-recipients">Meet the second batch of AT Protocol Grant Recipients</a> (Apr 2024)</li> 207<li><a href="https://atproto.com/blog/2024-protocol-roadmap">2024 Protocol Roadmap</a> (May 2024)</li> 208<li><a href="https://atproto.com/blog/label-grants">Labeling Services Microgrants</a> (May 2024)</li> 209<li><a href="https://docs.bsky.app/blog/ts-api-refactor">Typescript API Package Auth Refactor</a> (Aug 2024)</li> 210<li><a href="https://atproto.com/blog/oauth-atproto">OAuth for AT Protocol</a> (Sep 2024)</li> 211<li><a href="https://atproto.com/blog/pinned-posts">Lexicons, Pinned Posts, and Interoperability</a> (Oct 2024)</li> 212<li><a href="https://atproto.com/blog/jetstream">Introducing Jetstream</a> (Oct 2024)</li> 213<li><a href="https://atproto.com/blog/relay-ops">Relay Operational Updates</a> (Nov 2024)</li> 214</ul> 215 216 217<h4>2025</h4> 218 219<ul> 220<li><a href="https://atproto.com/blog/looking-back-2024">Looking Back At 2024 AT Protocol Development</a> (Jan 2025)</li> 221<li><a href="https://atproto.com/blog/2025-protocol-roadmap-spring">2025 Protocol Roadmap (Spring and Summer)</a> (Mar 2025)</li> 222<li><a href="https://atproto.com/blog/relay-updates-sync-v1-1">Relay Updates for Sync v1.1</a> (May 2025)</li> 223<li><a href="https://atproto.com/blog/network-account-management">Network Account Management</a> (May 2025)</li> 224<li><a href="https://atproto.com/blog/oauth-improvements">OAuth Improvements</a> (Jun 2025)</li> 225<li><a href="https://atproto.com/blog/plc-directory-org">Creating an Independent Public Ledger of Credentials (PLC) Directory Organization</a> (Sep 2025)</li> 226<li><a href="https://atproto.com/blog/taking-at-to-the-ietf">Taking AT to the IETF</a> (Sep 2025)</li> 227<li><a href="https://docs.bsky.app/blog/incoming-migration">Enabling Account Migration Back to Blueskyâs PDS</a> (Sep 2025)</li> 228<li><a href="https://atproto.com/blog/protocol-check-in-fall-2025">Protocol Check-in (Fall 2025)</a> (Oct 2025)</li> 229<li><a href="https://docs.bsky.app/blog/contact-import-rfc">Request For Comments: A secure contact import scheme for social networks</a> (Nov 2025)</li> 230<li><a href="https://atproto.com/blog/introducing-tap">Introducing Tap: Repository Synchronization Made Simple</a> (Dec 2025)</li> 231</ul> 232 233 234<h4>2026</h4> 235 236<ul> 237<li><a href="https://atproto.com/blog/relay-rollout">Upcoming Relay Transition</a>
237 (Jan 2026)</li> 238<li><a href="https://atproto.com/blog/new-site-2026">Welcome to the New atproto.com</a> (Feb 2026)</li> 239<li><a href="https://atproto.com/blog/plc-replicas">PLC Read Replicas</a> (Feb 2026)</li> 240<li><a href="https://atproto.com/blog/npmx-alpha-launch">Supporting the npmx Alpha Launch</a> (Mar 2026)</li> 241<li><a href="https://atproto.com/blog/working-to-decentralize-fedcm">Working to Decentralize FedCM</a> (Mar 2026)</li> 242<li><a href="https://atproto.com/blog/introducing-hubble-a-public-mirror-for-the-whole-atmosphere">Introducing Hubble: A Public Mirror for the Whole Atmosphere</a> (Mar 2026)</li> 243<li><a href="https://atproto.com/blog/2026-spring-roadmap">AT Protocol Roadmap (Spring 2026)</a> (Mar 2026)</li> 244<li><a href="https://atproto.com/blog/kicking-off-the-atp-working-group">Kicking off the ATP Working Group at the IETF</a> (Apr 2026)</li> 245<li><a href="https://atproto.com/blog/indexing-standard-site">Indexing Standard Site</a> (Apr 2026)</li> 246<li><a href="https://atproto.com/blog/serving-the-for-you-feed">Serving the For You Feed</a> (Apr 2026)</li> 247<li><a href="https://atproto.com/blog/report-based-moderation">Report-Based Moderation in Ozone</a> (May 2026)</li> 248<li><a href="https://atproto.com/blog/ts-sdk-upgrades">TypeScript SDK Upgrades</a> (May 2026)</li> 249<li><a href="https://atproto.com/blog/standard-site-bluesky-timeline">Now in your timeline: Standard.site</a> (May 2026)</li> 250<li><a href="https://atproto.com/blog/going-off-protocol">Going Off Protocol</a> (Jun 2026)</li> 251<li><a href="https://atproto.com/blog/at-protocol-trademark">AT Protocol Trademark</a> (Jul 2026)</li> 252<li><a href="https://atproto.com/blog/introducing-bluesky-protocol-services">Introducing Bluesky Protocol Services</a> (Aug 2026)</li> 253</ul> 254 255 256<p></details></p> 257 258<h4>github.com/bluesky-social/atproto/discussions</h4> 259 260<p><details> 261 <summary>Click to expand</summary></p> 262 263<h4>2023</h4> 264 265<ul> 266<li><a href="https://github.com/bluesky-social/atproto/discussions/1156">brainstorm ideas for Cool Developer Tools</a> (Feb 2023)</li> 267<li><a href="https://github.com/bluesky-social/atproto/discussions/1410">Intention to remove repository history</a> (Jul 2023)</li> 268<li><a href="https://github.com/bluesky-social/atproto/discussions/1510">Planned Changes to DID Documents (August 2023)</a> (Aug 2023)</li> 269<li><a href="https://github.com/bluesky-social/atproto/discussions/1632">DID PLC Rate Limits and Validation</a> (Sep 2023)</li> 270<li><a href="https://github.com/bluesky-social/atproto/discussions/1711">Upcoming Disruptive Protocol and Infra Changes</a> (Oct 2023)</li> 271<li><a href="https://github.com/bluesky-social/atproto/discussions/1832">Migrating bsky.social to Multiple PDS Instances</a> (Nov 2023)</li> 272<li><a href="https://github.com/bluesky-social/atproto/discussions/1847">That which we call a âBGSâ, By any other name would smell as sweet</a> (Nov 2023)</li> 273<li><a href="https://github.com/bluesky-social/atproto/discussions/1910">Tightening Datetime, Record Key, and TID validation</a> (Dec 2023)</li> 274</ul> 275 276 277<h4>2024</h4> 278 279<ul> 280<li><a href="https://github.com/bluesky-social/atproto/discussions/2128">Protocol Tech Debt</a> (Feb 2024)</li> 281<li><a href="https://github.com/bluesky-social/atproto/discussions/2220">Summary of Recent Changes</a> (Feb 2024)</li> 282<li><a href="https://github.com/bluesky-social/atproto/discussions/2224">Decision to allow colon character (:) in Record Keys</a> (Feb 2024)</li> 283<li><a href="https://github.com/bluesky-social/atproto/discussions/2293">March 2024 Protocol Updates</a> (Mar 2024)</li> 284<li><a href="https://github.com/bluesky-social/atproto/discussions/2350">What does a PDS implementation entail?</a> (Mar 2024)</li> 285<li><a href="https://github.com/bluesky-social/atproto/discussions/2415">What goes in to a Bluesky or atproto SDK?</a> (Apr 2024)</li> 286<li><a href="https://github.com/bluesky-social/atproto/discussions/2656">OAuth Roadmap</a> (Jul 2024)</li> 287<li><a href="https://github.com/bluesky-social/atproto/discussions/2687">Service auth token iteration â method binding & nonces</a> (Aug 2024)</li> 288<li><a href="https://github.com/bluesky-social/atproto/discussions/2754">Brainstorming: atproto Dev Tooling and Experience</a> (Aug 2024)</li> 289<li><a href="https://github.com/bluesky-social/atproto/discussions/2961">What does an AppView implementation entail?</a> (Nov 2024)</li> 290<li><a href="https://github.com/bluesky-social/atproto/discussions/3036">Relay Operational Updates</a> (Nov 2024)</li> 291<li><a href="https://github.com/bluesky-social/atproto/discussions/3049">Call for Developer Projects</a> (Nov 2024)</li> 292<li><a href="https://github.com/bluesky-social/atproto/discussions/3074">RFC: Lexicon Resolution</a> (Nov 2024)</li> 293<li><a href="https://github.com/bluesky-social/atproto/discussions/3175">Account Lifecycle Best Practices</a> (Dec 2024)</li> 294<li><a href="https://github.com/bluesky-social/atproto/discussions/3176">Account Migration Details</a> (Dec 2024)</li> 295</ul> 296 297 298<h4>2025</h4> 299 300<ul> 301<li><a href="https://github.com/bluesky-social/atproto/discussions/3655">Proposal: OAuth Scopes</a> (Mar 2025)</li> 302<li><a href="https://github.com/bluesky-social/atproto/discussions/3928">Relaxing DID PLC Verification Method Constraints</a> (Jul 2025)</li> 303<li><a href="https://github.com/bluesky-social/atproto/discussions/3950">OAuth Client Security in the Atmosphere</a> (Jul 2025)</li> 304<li><a href="https://github.com/bluesky-social/atproto/discussions/4068">Adding internal repositories to Blueskyâs workflows</a> (Jul 2025)</li> 305<li><a href="https://github.com/bluesky-social/atproto/discussions/4118">Progress on Auth Scopes Implementation (August 2025)</a> (Aug 2025)</li> 306<li><a href="https://github.com/bluesky-social/atproto/discussions/4245">Draft Lexicon Style Guide (Lexinomicon)</a> (Oct 2025)</li> 307<li><a href="https://github.com/bluesky-social/atproto/discussions/4316">PLC Operational Updates</a> (Oct 2025)</li> 308<li><a href="https://github.com/bluesky-social/atproto/discussions/4343">Lexicon Language Corner Cases</a> (Nov 2025)</li> 309<li><a href="https://github.com/bluesky-social/atproto/discussions/4437">Early Permission Sets</a> (Dec 2025)</li> 310</ul> 311 312 313<h4>2026</h4> 314 315<ul> 316<li><a href="https://github.com/bluesky-social/atproto/discussions/4508">PLC Export API
316Update</a> (Jan 2026)</li> 317<li><a href="https://github.com/bluesky-social/atproto/discussions/4618">Adding content-disposition on getBlob HTTP responses</a> (Feb 2026)</li> 318<li><a href="https://github.com/bluesky-social/atproto/discussions/4832">Increasing Bluesky Post Image Size Limit</a> (Apr 2026)</li> 319<li><a href="https://github.com/bluesky-social/atproto/discussions/4978">Integrating Standard Site Into Bluesky</a> (May 2026)</li> 320<li><a href="https://github.com/bluesky-social/atproto/discussions/5032">New Post Embed: Gallery</a> (Jun 2026)</li> 321<li><a href="https://github.com/bluesky-social/atproto/discussions/5255">Proposal: allow localhost redirect URIs in the localhost dev exception in the OAuth spec</a> (Jul 2026)</li> 322</ul> 323 324 325<p></details></p> 326 327<h4>github.com/bluesky-social/proposals</h4> 328 329<ul> 330<li><a href="https://github.com/bluesky-social/proposals/tree/main/0001-user-lists-replygating-and-thread-moderation">0001: User Lists, Reply-Gating, and Thread Moderation</a> (Jun 2023)</li> 331<li><a href="https://github.com/bluesky-social/proposals/tree/main/0002-labeling-and-moderation-controls">0002: Labeling and Moderation Controls</a> (Jun 2023)</li> 332<li><a href="https://github.com/bluesky-social/proposals/tree/main/0003-hashtags">0003: Hashtags</a> (Jun 2023)</li> 333<li><a href="https://github.com/bluesky-social/proposals/tree/main/0004-oauth">0004: OAuth 2.0 for the AT Protocol</a> (Feb 2024)</li> 334<li><a href="https://github.com/bluesky-social/proposals/tree/main/0005-mod-history">0005: Ozone Moderation History</a> (Oct 2024)</li> 335<li><a href="https://github.com/bluesky-social/proposals/tree/main/0006-sync-iteration">0006: AT Protocol Sync v1.1</a> (Feb 2025)</li> 336<li><a href="https://github.com/bluesky-social/proposals/tree/main/0007-mod-report-routing">0007: Moderation Report Routing</a> (Feb 2025)</li> 337<li><a href="https://github.com/bluesky-social/proposals/tree/main/0008-user-intents">0008: User Intents for Data Reuse</a> (Mar 2025)</li> 338<li><a href="https://github.com/bluesky-social/proposals/tree/main/0009-mod-report-granularity">0009: Moderation Report Granularity</a> (May 2025)</li> 339<li><a href="https://github.com/bluesky-social/proposals/tree/main/0010-client-assertion-backend">0010: Client assertion backend for browser-based applications</a> (Jun 2025)</li> 340<li><a href="https://github.com/bluesky-social/proposals/tree/main/0011-auth-scopes">0011: Auth Scopes for ATProto</a> (Jun 2025)</li> 341<li><a href="https://github.com/bluesky-social/proposals/tree/main/0012-infra-abuse-notices">0012: Infrastructure Abuse Notices</a> (Nov 2025)</li> 342<li><a href="https://github.com/bluesky-social/proposals/tree/main/0013-service-auth-refs">0013: Consistent References to DID Services</a> (Mar 2026)</li> 343<li><a href="https://github.com/bluesky-social/proposals/tree/main/0014-service-auth-revised">0014: Service Auth Audience Revised</a> (Apr 2026)</li> 344<li><a href="https://github.com/bluesky-social/proposals/tree/main/0015-json-subscriptions">0015: JSON Event Stream Encoding</a> (Jun 2026)</li> 345<li><a href="https://github.com/bluesky-social/proposals/tree/main/0016-permissioned-data">0016: Permissioned Data</a> (Jul 2026)</li> 346</ul> 347 348 349<hr /> 350 351<h2>Bluesky team</h2> 352 353<h4>jaygraber.medium.com (Jay Graber, CEO)</h4> 354 355<ul> 356<li><a href="https://jaygraber.medium.com/web3-is-self-certifying-9dad77fd8d81">Web3 is Self-Certifying</a> (Dec 2021)</li> 357</ul> 358 359 360<h4>pfrazee.com (Paul Frazee, CTO)</h4> 361 362<ul> 363<li><a href="https://www.pfrazee.com/blog/why-facets">Why RichText facets in Bluesky</a> (Jan 2024)</li> 364<li><a href="https://www.pfrazee.com/blog/why-not-rdf">Why not RDF in the AT Protocol?</a> (Jan 2024)</li> 365<li><a href="https://www.pfrazee.com/blog/why-not-p2p">Why isn’t Bluesky a peer-to-peer network?</a> (Jan 2024)</li> 366<li><a href="https://www.pfrazee.com/blog/lexicon-guidance">Guidance on Authoring Lexicons</a> (Mar 2025)</li> 367<li><a href="https://www.pfrazee.com/blog/atmospheric-computing">Atmospheric Computing</a> (Dec 2025)</li> 368<li><a href="https://www.pfrazee.com/blog/practical-decentralization">Practical Decentralization</a> (Feb 2026)</li> 369</ul> 370 371 372<h4>
372pfrazee.leaflet.pub (Paul Frazee, CTO)</h4> 373 374<ul> 375<li><a href="https://pfrazee.leaflet.pub/3lyucxaykg22w">We probably need to rename the AppView</a> (Sep 2025)</li> 376<li><a href="https://pfrazee.leaflet.pub/3lz4sgu7iec2k">Update on Protocol Moderation</a> (Sep 2025)</li> 377<li><a href="https://pfrazee.leaflet.pub/3lzhmtognls2q">Private data: developing a rubric for success</a> (Sep 2025)</li> 378<li><a href="https://pfrazee.leaflet.pub/3lzhui2zbxk2b">Three schemes for shared-private storage</a> (Sep 2025)</li> 379<li><a href="https://pfrazee.leaflet.pub/3m3dogbx2es2g">Social platforms are not neutral</a> (Oct 2025)</li> 380<li><a href="https://pfrazee.leaflet.pub/3m5hwua4sh22v">The politics of purely client-side apps</a> (Nov 2025)</li> 381</ul> 382 383 384<h4>bnewbold.net (Bryan Newbold)</h4> 385 386<ul> 387<li><a href="https://bnewbold.net/2024/atproto_progress/">Progress on atproto Values and Value Proposition</a> (Aug 2024)</li> 388</ul> 389 390 391<h4>whtwnd.com/bnewbold.net (Bryan Newbold)</h4> 392 393<ul> 394<li><a href="https://whtwnd.com/bnewbold.net/3kwzl7tye6u2y">Notes on Running a Full-Network atproto Relay</a> (Jul 2024)</li> 395<li><a href="https://whtwnd.com/bnewbold.net/3l5ii332pf32u">Migrating PDS Account with ‘goat’</a> (Oct 2024)</li> 396<li><a href="https://whtwnd.com/bnewbold.net/3lbvbtqrg5t2t">Reply on Bluesky and Decentralization</a> (Nov 2024)</li> 397<li><a href="https://whtwnd.com/bnewbold.net/3lj7jmt2ct72r">Registering Identity Recovery Keys via PDS, using goat</a> (Feb 2025)</li> 398<li><a href="https://whtwnd.com/bnewbold.net/3lo7a2a4qxg2l">A Full-Network Relay for $34 a Month</a> (May 2025)</li> 399<li><a href="https://whtwnd.com/bnewbold.net/3m2j6ccx2bs2t">AT Moderation Architecture</a> (Oct 2025)</li> 400<li><a href="https://whtwnd.com/bnewbold.net/3mdc7fpbxhk26">Creating a did:web atproto account using goat</a> (Jan 2026)</li> 401</ul> 402 403 404<h4>bnewbold.leaflet.pub (Bryan Newbold)</h4> 405 406<ul> 407<li><a href="https://bnewbold.leaflet.pub/3m2x7bilyrc23">AT Namespaces for Community Spaces</a> (Oct 2025)</li> 408<li><a href="https://bnewbold.leaflet.pub/3m5jsx7qrws2n">Record Versioning</a> (Nov 2025)</li> 409<li><a href="https://bnewbold.leaflet.pub/3m7e3hk57rs2u">Big Indexing</a> (Dec 2025)</li> 410<li><a href="https://bnewbold.leaflet.pub/3me3ea64bhk26">Community Spaces on AT Protocol</a> (Feb 2026)</li> 411<li><a href="https://bnewbold.leaflet.pub/3mg25i5na5c2a">Blob AT-URIs</a> (Mar 2026)</li> 412<li><a href="https://bnewbold.leaflet.pub/3mimokt4o5c2f">Expanding the Lexicon Language</a> (Apr 2026)</li> 413<li><a href="https://bnewbold.leaflet.pub/3mishgmvjes2i">Lexicon Service Docs</a> (Apr 2026)</li> 414</ul> 415 416 417<h4>dholms.leaflet.pub (Daniel Holms)</h4> 418 419<ul> 420<li><a href="https://dholms.leaflet.pub/3m6zswymcqk2p">PLC Threat-modeling & Auditability</a> (Dec 2025)</li> 421<li><a href="https://dholms.leaflet.pub/3meluqcwky22a">Permissioned Data Diary 1: To Encrypt or Not to Encrypt</a> (Feb 2026)</li> 422<li><a href="https://dholms.leaflet.pub/3mfrsbcn2gk2a">Permissioned Data Diary 2: Buckets</a> (Feb 2026)</li> 423<li><a href="https://dholms.leaflet.pub/3mguviy6iks2a">Permissioned Data Diary 3: Your Bucket, My Data</a> (Mar 2026)</li> 424<li><a href="https://dholms.leaflet.pub/3mhbuoc64xk2a">Permissioned Data Interlude: Spaces</a> (Mar 2026)</li> 425<li><a href="https://dholms.leaflet.pub/3mhj6bcqats2o">Permissioned Data Diary 4: The Big Picture</a> (Mar 2026)</li> 426<li><a href="https://dholms.leaflet.pub/3mlegohgtps2k">Permissioned Data Diary 5: Whatâs in a Name?</a> (May 2026)</li> 427<li><a href="https://dholms.leaflet.pub/3mndhk7ihsc2g">Modeling communities on permissioned data</a> (Jun 2026)</li> 428<li><a href="https://dholms.leaflet.pub/3mnkrxp7rt22i">Permissioned Data Diary 6: Boring Auth</a> (Jun 2026)</li> 429<li><a href="https://dholms.leaflet.pub/3mqtqvjidqs2p">Permissioned Data Diary 7: Off the Record</a> (Jul 2026)</li> 430</ul> 431 432 433<h4>divyzone.pckt.blog (Devin Ivy)</h4> 434 435<ul> 436<li><a href="https://divyzone.pckt.blog/atmospheric-login-diary-1-on-the-button-ysue174">Atmospheric Login Diary 1: On the Button</a> (Jun 2026)</li> 437</ul> 438 439 440<h4>jimray-bsky.leaflet.pub (Jim Ray)</h4> 441 442<ul> 443<li><a href="https://jimray-bsky.leaflet.pub/3maenxn7kqc2a">The Importance of Backfillability</a> (Dec 2025)</li> 444</ul> 445 446 447<h4>mozzius.dev (Samuel)</h4> 448 449<ul> 450<li><a href="https://mozzius.dev/post/3l777nhz4h32w">React Native, and “the native feel”</a> (Oct 2024)</li> 451<li><a href="https://mozzius.dev/post/3ljlqmchv2b2a">ATProto by example part 1: Records and Views</a> (Mar 2025)</li> 452</ul> 453 454 455<h4>jazco.dev (Jaz, ex-Bluesky)</h4> 456 457<ul> 458<li><a href="https://jazco.dev/2023/09/28/request-coalescing/">Solving Thundering Herds with Request Coalescing in Go</a> (Sep 2023)</li> 459<li><a href="https://jazco.dev/2024/01/10/golang-and-epoll/">Scaling Go to 192 Cores with Heavy I/O</a> (Jan 2024)</li> 460<li><a href="https://jazco.dev/2024/04/15/in-memory-graphs/">Your Data Fits in Memory (GraphD Part 1)</a> (Apr 2024)</li> 461<li><a href="https://jazco.dev/2024/04/20/roaring-bitmaps/">An entire Social Network in 1.6GB (GraphD Part 2)</a> (Apr 2024)</li> 462<li><a href="https://jazco.dev/2024/07/05/hls/">How HLS Works</a> (Jul 2024)</li> 463<li><a href="https://jazco.dev/2024/09/24/jetstream/">Jetstream: Shrinking the AT Proto Firehose by >99%</a> (Sep 2024)</li> 464<li><a href="https://jazco.dev/2025/02/19/imperfection/">When Imperfect Systems are Good, Actually: Bluesky’s Lossy Timelines</a> (Feb 2025)</li> 465<li><a href="https://jazco.dev/2025/09/26/interning/">Turning Billions of Strings into Integers Every Second Without Collisions</a> (Sep 2025)</li> 466</ul> 467 468 469<h4>hailey.at (Hailey, ex-Bluesky)</h4> 470 471<ul> 472<li><a href="https://hailey.at/posts/3mcy5b5gfi222">Topics on Bluesky</a>
472 (Jan 2026)</li> 473</ul> 474 475 476<h4>emilyliu.me (Emily Liu, ex-Bluesky)</h4> 477 478<ul> 479<li><a href="https://emilyliu.me/blog/comments">Using Bluesky posts as blog comments</a> (Nov 2024)</li> 480</ul> 481 482 483<hr /> 484 485<h2>ATProto community</h2> 486 487<h4>whtwnd.com/futur.blue (Futur)</h4> 488 489<ul> 490<li><a href="https://whtwnd.com/futur.blue/3lkubavdilf2m">atproto relay any% speedrun</a> (Mar 2025)</li> 491<li><a href="https://whtwnd.com/futur.blue/3ls7sbvpsqc2w">in and out, quick appview adventure</a> (Jun 2025)</li> 492</ul> 493 494 495<h4>overreacted.io (Dan Abramov, ex-Bluesky)</h4> 496 497<ul> 498<li><a href="https://overreacted.io/open-social/">Open Social</a> (Sep 2025)</li> 499<li><a href="https://overreacted.io/where-its-at/">Where It’s at://</a> (Oct 2025)</li> 500<li><a href="https://overreacted.io/a-social-filesystem/">A Social Filesystem</a> (Jan 2026)</li> 501<li><a href="https://overreacted.io/there-are-no-instances-in-atproto/">There Are No Instances in atproto</a> (Jun 2026)</li> 502</ul> 503 504 505<h4>underreacted.leaflet.pub (Dan Abramov, ex-Bluesky)</h4> 506 507<ul> 508<li><a href="https://underreacted.leaflet.pub/3m23gqakbqs2j">we can just do things</a> (Oct 2025)</li> 509</ul> 510 511 512<h4>bsky.bad-example.com (Phil)</h4> 513 514<ul> 515<li><a href="https://bsky.bad-example.com/consuming-the-firehose-correctly/">consuming the jetstream firehose correctly</a> (Feb 2025)</li> 516<li><a href="https://bsky.bad-example.com/can-atproto-scale-down/">Can atproto scale down?</a> (Feb 2025)</li> 517</ul> 518 519 520<h4>mackuba.eu ð</h4> 521 522<ul> 523<li><a href="https://mackuba.eu/2024/02/21/bluesky-guide/">A complete guide to Bluesky</a> (Feb 2024)</li> 524<li><a href="https://mackuba.eu/2025/08/20/introduction-to-atproto/">Introduction to AT Protocol</a> (Aug 2025)</li> 525<li><a href="https://mackuba.eu/2026/02/04/pds-undockered/">Running Bluesky PDS undockered</a> (Feb 2026)</li> 526<li><a href="https://mackuba.eu/2026/07/20/atproto-in-practice-identity/">ATProto in Practice #1: Identity</a> (Jul 2026)</li> 527</ul> 528 529 530<h4>shreyanjain.net (Shreyan)</h4> 531 532<ul> 533<li><a href="https://shreyanjain.net/2024/07/05/nostr-and-atproto.html">Nostr and ATProto</a> (Jul 2024)</li> 534</ul> 535 536 537<h4>jcsalterego.leaflet.pub (Jerry Chen)</h4> 538 539<ul> 540<li><a href="https://jcsalterego.leaflet.pub/3m3x2oftqbs2v">We live in a space station</a> (Oct 2025)</li> 541</ul> 542 543 544<h4>da.vidbuchanan.co.uk (David Buchanan, @retr0.id)</h4> 545 546<ul> 547<li><a href="https://www.da.vidbuchanan.co.uk/blog/hacking-bluesky.html">Hijacking Bluesky Identities with a Malleable Deputy</a> (Sep 2023)</li> 548<li><a href="https://www.da.vidbuchanan.co.uk/blog/adversarial-pds-migration.html">Adversarial ATProto PDS Migration</a> (Jul 2025)</li> 549</ul> 550 551 552<h4>marvins-guide.leaflet.pub (Bailey Townsend)</h4> 553 554<ul> 555<li><a href="https://marvins-guide.leaflet.pub/3m5fjxkcans2i">Host a PDS via a Cloudflare Tunnel</a> (Jul 2025)</li> 556<li><a href="https://marvins-guide.leaflet.pub/3m5fknwepe22y">A blob in the bucket</a> (Aug 2025)</li> 557<li><a href="https://marvins-guide.leaflet.pub/3lyqxqbbqkc2p">What the hell is the atmosphere anyway</a> (Sep 2025)</li> 558<li><a href="https://marvins-guide.leaflet.pub/3m4qzoj6ubc2h">What the hell is a rotation key? </a> (Nov 2025)</li> 559</ul> 560 561 562<h4>updates.microcosm.blue (@bad-example.com)</h4> 563 564<ul> 565<li><a href="https://updates.microcosm.blue/3mik73ajygk2m">Atmosphere sync: Tap, Hydrant, roll-your-own?</a> (Apr 2026)</li> 566</ul> 567 568 569<h4>dame.is (Dame)</h4> 570 571<ul> 572<li><a href="https://dame.is/writing/blogs/how-i-made-an-automated-dynamic-avatar-for-my-bluesky-profile/">How I made an automated dynamic avatar for my Bluesky profile</a> (Feb 2025)</li> 573<li><a href="https://dame.is/writing/blogs/creating-a-decentralized-bathroom-at-protocol/">Creating a decentralized bathroom (powered by the AT Protocol)</a> (Mar 2025)</li> 574<li><a href="https://dame.is/writing/blogs/a-guestbook-and-welcome-message-for-my-pds/">A guestbook and welcome message for my atproto PDS</a> (May 2025)</li> 575</ul> 576 577 578<h4>steveklabnik.com (Steve Klabnik)</h4> 579 580<ul> 581<li><a href="https://steveklabnik.com/writing/how-does-bluesky-work/">How Does BlueSky Work?</a> (Feb 2024)</li> 582</ul> 583 584 585<h4>knotbin.leaflet.pub (Roscoe Rubin-Rottenberg)</h4> 586 587<ul> 588<li><a href="https://knotbin.leaflet.pub/3lx3uqveyj22f">Wherever you get your Podcasts</a> (Aug 2025)</li> 589</ul> 590 591 592<h4>blog.smokesignal.events</h4> 593 594<ul> 595<li><a href="https://blog.smokesignal.events/posts/3lwopvsmtx22a-creating-a-did-method-web-identity-for-atprotocol">Creating a did-method-web Identity for ATProtocol</a> (Aug 2025)</li> 596</ul> 597 598 599<h4>graysky.app</h4> 600 601<ul> 602<li><a href="https://graysky.app/blog/2024-02-05-adding-blog-comments">Adding comments to this blog</a> (Feb 2024)</li> 603</ul> 604 605 606<hr /> 607 608<h2>Other recommended blogs</h2> 609 610<ul> 611<li><a href="https://connectedplaces.online">Connected Places newsletter</a> (Laurens Hof)</li> 612<li><a href="https://connectedplaces.leaflet.pub">Connected Places Leaflet</a> (Laurens Hof)</li> 613<li><a href="https://blog.stream.place">How Streamplace Works</a> (Eli Mallon)</li> 614<li><a href="https://blog.tangled.org">Tangled engineering</a> (@tangled.org)</li> 615<li><a href="https://ngerakines.leaflet.pub">Nick’s Blog</a> (Nick Gerakines)</li> 616<li><a href="https://retrobailey.leaflet.pub">Bailey’s Weekly Retrospective</a> (Bailey Townsend)</li> 617<li><a href="https://dame.leaflet.pub">dame’s leaflets</a> (Dame)</li> 618<li><a href="https://icy.leaflet.pub">icy takes</a> (Anirudh Oppiliappan)</li> 619<li><a href="https://juliet.leaflet.pub">Juliet’s rambles</a> (Juliet)</li> 620<li><a href="https://samuel.leaflet.pub">mildly at-musing</a> (Samuel)</li> 621<li><a href="https://smokesignal.leaflet.pub">The Smoke Signal blog</a> (@smokesignal.events)</li> 622<li><a href="https://matthieu.leaflet.pub">Matthieu’s Leaflet</a> (Matthieu Sieben)</li> 623<li><a href="https://augment.leaflet.pub">augment</a> (Anuj Ahooja)</li> 624<li><a href="https://blog.anew.social">A New Social</a> (Bridgy Fed)</li> 625<li><a href="https://lab.mackuba.eu">Kuba’s Lab Notes</a> ð</li> 626</ul> 627 628
629<script type="text/javascript"> 630 document.getElementById('blog_post_search').addEventListener('input', (e) => { 631 let query = e.target.value.trim().toLowerCase(); 632 let entries = Array.from(document.querySelectorAll('article ul li')); 633 let details = Array.from(document.querySelectorAll('article details')); 634 let headers = Array.from(document.querySelectorAll('article h4')); 635 636 function ulHasVisibleEntries(h) { 637 return Array.from(h.nextElementSibling.querySelectorAll('li')).some(x => x.style.display === ''); 638 } 639 640 if (query.length > 0) { 641 entries.forEach(li => { li.style.display = (li.innerText.toLowerCase().includes(query) ? '' : 'none') }); 642 headers.forEach(h => { h.style.display = (ulHasVisibleEntries(h) ? '' : 'none') }) 643 details.forEach(d => { d.open = true }); 644 } else { 645 entries.forEach(li => { li.style.display = '' }); 646 headers.forEach(h => { h.style.display = '' }) 647 details.forEach(d => { d.open = false }); 648 } 649 }); 650</script>
650 651 652 653 </div> 654 655 <section id="comments"> 656 <div class="comments-group"> 657 <h2></h2> 658 659 660 <p class="comment-here">ð¬ You can add a comment here by replying to the post on <a href="https://bsky.app/profile/did:plc:oio4hkxaop4ao4wz2pp3f4cr/post/3m5wgr3eu422m">Bluesky</a> or <a href="https://martianbase.net/statuses/115572285477653239">Mastodon</a>.</p> 661 662</div> 663 664 </section> 665 666 <template id="comment-template"> 667 <article class="social-comment"> 668 <div class="comment-main"> 669 <div class="avatar"> 670 <img data-field="avatar" alt=""> 671 </div> 672 673 <header> 674 <p class="name"> 675 <span data-field="author" class="author-name"></span> 676 <a data-field="handle" class="handle" rel="nofollow noopener noreferrer"></a> 677 </p> 678 679 <p class="date"> 680 <a data-field="timestamp" rel="nofollow noopener noreferrer"> 681 <time data-field="created-at"></time> 682 </a> 683 </p> 684 </header> 685 686 <div class="comment-body" data-field="body"></div> 687 </div> 688 689 <div class="comment-replies" data-field="replies"></div> 690</article> 691 692 </template> 693</article> 694 695 </div> 696 697 <footer> 698 <p> 699 <a href="/sitemap">Sitemap</a> ⢠700 <a href="/feeds">Feeds</a> 701 </p> 702 <p>Copyright © 2008â2026 Kuba Suder</p> 703 </footer> 704 </div> 705 706
706<script type="text/javascript" nonce="PLctgT91rRH/QYjJyP4OAg=="> 707 document.addEventListener('DOMContentLoaded', () => { 708 Blog.init(); 709 window.Comments?.init(); 710 }); 711 </script>
711 712 713
713<script src="https://mackuba.eu/m/script.js"></script>
713 714</body> 715</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.