n8

atproto dev chat V recap

March 8, 2026

March 10, 2026

i am human and i err! this was rendered from memory, AI-notes, and discord chat (thanks to @thisismissem.social for edits). pls comment/DM me if you see mistakes or misrepresentations


executive summary
The call opened with a conversation about what useful infra advice actually looks like for ATProto builders at different stages. A useful framing emerged: there are roughly three tracks — client-only (use Microcosm/Constellation, skip the backend entirely), managed services (Fly, Railway, Render — convenient but you're paying for that convenience), and bare metal / VPS (Hetzner etc. — best economics but you own everything). The documentation that exists today doesn't make these distinctions, which means (to some extent) that people are making avoidable early mistakes. shared real numbers for blento (~$18/month, ~650 users) and walked through a Cloudflare Workers r/place clone that runs on the free tier. The Margin story came up as a cautionary tale for managed service egress costs.
There was a lot of energy around how to share patterns. The room likes the idea of a structured interview series: document real app view architectures, costs, and tradeoffs in blog format. , , , and are going to develop a template together. Anything beyond "the code for these projects is on GitHub, go read it" was the bar to beat.

executive summary

The call opened with a conversation about what useful infra advice actually looks like for ATProto builders at different stages. A useful framing emerged: there are roughly three tracks — client-only (use Microcosm/Constellation, skip the backend entirely), managed services (Fly, Railway, Render — convenient but you're paying for that convenience), and bare metal / VPS (Hetzner etc. — best economics but you own everything). The documentation that exists today doesn't make these distinctions, which means (to some extent) that people are making avoidable early mistakes. shared real numbers for blento (~$18/month, ~650 users) and walked through a Cloudflare Workers r/place clone that runs on the free tier. The Margin story came up as a cautionary tale for managed service egress costs.

There was a lot of energy around how to share patterns. The room likes the idea of a structured interview series: document real app view architectures, costs, and tradeoffs in blog format. , , , and are going to develop a template together. Anything beyond "the code for these projects is on GitHub, go read it" was the bar to beat.

shared that Blacksky released their production AppView — the first drop-in replacement for Bluesky's proprietary data plane. Emelia also shared work-in-progress Adonis.js packages for building ATProto apps with a batteries-included feel.

The call closed on a teased major announcement for Monday morning (March 9, ~10–11 AM PT) that supposedly benefits "the entire open social web." Not the ActivityPub bridge. Probably auth-related. We'll see.

Quick links: plyr.fm/costs ∙ blento ∙ atmo.games/thousands ∙ blacksky-algorithms/atproto ∙ adonisjs-atproto-oauth ∙ adonisjs-atproto-tap ∙ bluesky-social/cookbook ∙ bluesky-social/deploy-recipes ∙ rusty_statusphere_example_app


table of contents

  • infrastructure patterns & costs

  • knowledge sharing formats

  • blacksky's production appview

  • profile & badge systems

  • community sustainability & proto fans

  • AI & development tools

  • charcoal safety tool

  • frameworks for building ATProto apps (Adonis.js)

  • teased announcement


Infrastructure Patterns & Costs

The early part of the call was trying to figure out what useful advice actually looks like for builders at different stages. A useful framing that emerged: there are roughly three tracks, and the tradeoffs are different enough that you almost need to give different advice to each.

Track 1: client-only. If you don't need your own backend, don't build one. Tools like Microcosm's Constellation and Slingshot let you bootstrap an app that reads from the network without deploying anything. This is a real path and worth surfacing explicitly — a lot of people reach for infrastructure they don't actually need yet.

Track 2: managed services (Fly, Railway, Render, Neon, etc.). You need some backend — a database, some server-side logic — but you don't want to think about bare metal. These platforms are genuinely convenient and cheap to start, but you're paying for that convenience, and the billing model is hard to reason about in advance. Margin was referenced as a recent example, whose bill came in higher than projected; they were running multiple vendors together and had large network egress concerns, illustrating the challenge. Ted brought up The call opened with a conversation about what useful infra advice actually looks like for ATProto builders at different stages. A useful framing emerged: there are roughly three tracks — client-only (use Microcosm/Constellation, skip the backend entirely), managed services (Fly, Railway, Render — convenient but you're paying for that convenience), and bare VPS (Hetzner etc. — best economics but you own everything). The documentation that exists today doesn't make these distinctions, which means people are making avoidable early mistakes. flo.bit shared real numbers for blento (~$18/month, ~650 users) and walked through a Cloudflare Workers r/place clone that runs on the free tier. The Margin story came up as a cautionary tale for managed service egress costs.'s scaling journey as a useful external reference — not ATProto, but a clean example of how the cost curves on these platforms can surprise you at growth inflection points.

There was a lot of energy around how to share patterns. The room likes the idea of a structured interview series: document real app view architectures, costs, and tradeoffs in blog format. @chaosgreml.in, @flo-bit.dev, @byarielm.fyi, @thisismissem.social, and @zzstoatzz.io are going to develop a template together. Anything beyond "the code is on GitHub" was the bar — we need more.

@thisismissem.social shared that Blacksky released their production AppView — the first drop-in replacement for Bluesky's proprietary data plane. Emelia also shared work-in-progress Adonis.js packages for building ATProto apps with a batteries-included feel.

The call closed on a teased major announcement for Monday morning (March 9, ~10–11 AM PT) that supposedly benefits "the entire open social web." Not the ActivityPub bridge. Probably auth-related. We'll see.

Track 3: Hetzner / bare VPS. You know what you're doing, you want the best unit economics, and you're willing to own the setup. This means handling observability, log management (OTel), database backups (dbmate), and responding manually to growth events since there's no autoscaling. High ceiling, high floor.

The tension the room kept returning to: you want to give clear advice, but the right answer is genuinely different depending on where someone is. The pattern documentation that exists today doesn't make these distinctions well.

Real numbers from the call: flo.bit's blento runs ~650 users for ~$18/month — Cloudflare Workers Pro ($5), a Fly.io Caddy instance + IPv4 for a custom domain ($7), Umami for self-hosted analytics ($6). n8 linked plyr.fm/costs. For a concrete example of what's possible on the free tier: flo.bit's r/place clone on ATProto ingests ~20M Bluesky like records per day and runs entirely on a Cloudflare Worker free plan. A worker fires every minute, aggregates all likes from the last minute, and writes the result to a single KV entry (~3,600 writes/day). Clients pull from KV (up to 1 minute stale) then connect to Jetstream from that timestamp for live updates. Worth reading if you're trying to understand what Cloudflare Workers can actually do before paying for anything.

Key resources: plyr.fm/costs ∙ blento ∙ atmo.games/thousands ∙ Margin status post ∙ bluesky-social/cookbook ∙ bluesky-social/deploy-recipes ∙ roadmap.sh/full-stack ∙ rusty_statusphere_example_app


Knowledge Sharing Formats

The three-track framing above is exactly why the room felt like the real work is just talking to people — find out what they built, what track they're on, what surprised them, and write it up. That's more useful than any amount of generalized advice.

The room liked blog-style interviews over surveys — you lose too much nuance in a form. Consistent format, real numbers, and a "what surprised you" question (e.g., Bluesky reportedly spends ~50% of their infrastructure cost on following feeds) would make for genuinely useful reading. suggested recording calls and hosting planned guests around recurring topics; the room was receptive.

The bar set: "anything beyond 'the code is on GitHub, go read it' is better than nothing." Bryan added that once you have enough data points, structured comparisons — rows and columns — get really powerful.

Action item: , , , and are going to coordinate async on a basic interview template. First app view TBD.


Blacksky's Production AppView

shared that Blacksky released their production AppView: blacksky-algorithms/atproto. It's the first drop-in replacement for Bluesky's proprietary data plane, based on the reference implementation (note: the PostgreSQL-based one in the Bluesky ATProto repo is local-dev only; Bluesky's actual data plane is proprietary and closed) but production-ready — with performance optimizations, caching, and community features. Not accepting contributions or PRs at this time.

Key resources: blacksky-algorithms/atproto ∙ Blacksky community feed API


Profile & Badge Systems

proposed ATProto-wide badges — self-labels for interests, roles, etc. — as a topic. Discussion was relatively brief but surfaced a few takes worth noting.

The floating idea was a self-modifying faceted system: users add custom facets as needed, pull relevant data rather than pre-defining everything. The room generally felt it's better to let users define within a standards framework than to standardize prematurely — the cost of missing use cases through early lock-in is high.

Relatedly, CaptainCalliope brought up RSS's history: it survived as long as it did largely because of podcasts, which makes the idea of a standard.site analogue for podcasting historically interesting. n8 and Jared had talked about this the Friday before. Consensus: a little early to standardize, but worth keeping on the radar.


Community Sustainability & atprotofans

Apps relying on Microcosm/Constellation for data retrieval should support Fig financially — GitHub Sponsors etc. Attribution requirements similar to iOS license disclosures were suggested as a model.

mentioned atprotofans.com: currently gated binary (paid/unpaid), with no tiered access model. More expressive subscription options are needed; bandwidth is the constraint.

also flagged the data-star framework as worth looking at for backend-first development patterns.


AI & Development Tools

This came up early and recurred throughout. LLM adoption is real among builders on this call — some reporting 4+ hour workdays with AI assistance. The usual tensions surfaced: tool dependency vs. building actual understanding, anti-AI sentiment on Bluesky vs. pragmatic usage by the people actually building things.

The real infrastructure knowledge gap isn't LLMs per se — it's that LLMs help you scaffold something that works before you understand what it costs to run. Validation is hard when you don't have a mental model for what you're deploying. Better ATProto-specific educational resources would help.


Charcoal Safety Tool

Bryan is building a proactive toxicity identification system. It uses language models to classify engagement patterns — specifically targeting users with a history of toxic behavior plus topic overlap with the current user, who aren't yet followers. Proactive muting and blocking with a review queue. Built on top of Roost safety tooling from GitHub, and referencing the Uli Learning Guide.

Alpha release was expected within days of the call; broader network intelligence scaling is planned.

Key resources: Uli Learning Guide


Frameworks for Building ATProto Apps (Adonis.js)

shared that she's been building ATProto-specific packages for Adonis.js aimed at making app development feel batteries-included:

  • adonisjs-atproto-oauth — OAuth support (v6 only for now)

  • adonisjs-atproto-tap — TAP integration

Still early — bugs happen, breaking changes are being managed. Adonis.js v7 updates to both packages are in progress.

Key resources: adonisjs-atproto-oauth ∙ adonisjs-atproto-tap ∙ Adonis.js


Teased Announcement

Someone on the call has been sitting on a major announcement for 2–3 weeks. Dropping Monday, March 9, ~10–11 AM PT. Said to benefit "the entire open social web." Not the ActivityPub bridge. Probably something auth-related, but nobody confirmed that. Watch your feeds.


all links

plyr.fm/costs ∙ blento ∙ atmo.games/thousands ∙ Margin status post ∙ Margin opencollective ∙ blacksky-algorithms/atproto ∙ Blacksky community feed API ∙ adonisjs-atproto-oauth ∙ adonisjs-atproto-tap ∙ Adonis.js ∙ bluesky-social/cookbook ∙ bluesky-social/deploy-recipes ∙ roadmap.sh/full-stack ∙ rusty_statusphere_example_app ∙ Uli Learning Guide

raw

raw

app view infra

  • document patterns

    • dont overextend (use a bunch of vendors, each with their own costs)

  • financial capacity is not always high

app view patterns

  • lots of app view idiosyncrasy, you can't really be prescriptive

  • more sharing to enable learning

  • OTel

  • interview blog -> infra stacks and costs

  • @chaosgreml.in @flo-bit.dev @byarielm.fyi @zzstoatzz.io are gonna develop a basic interview template to interview appviews and figure out generally what their stack is and why, broadly where their costs come from, where they build/buy etc

granola:

Infrastructure Challenges & Costs

  • Bryan’s Fly sprite crashed twice - no self-reset capability for Firecracker VMs

    • Support required for reboot, causing development delays

    • Considering move to Docker Desktop on Mac Mini

    • Would lose fast checkpointing feature (blob storage-based)

  • Railway cost concerns from community member (Margin)

    • Estimated monthly bill ~3x higher than expected

    • Multi-provider setup (Railway + Fly) causing network egress costs

    • User moved back to VPS after cost shock

Community Infrastructure Patterns Discussion

  • Need for written guidance on hosting patterns for different app types

    • Two different models of building applications:

      • Client only

      • Client with an Appview or Backend

    • For client only, they rely on other services for data:

      • uses third-party services like Microcosm's constellation and slingshot for retrieving data

      • talks directly to the PDS

    • When it comes to hosting an app view or backend, there's three options identified:

      • "serverless" (cloudflare workers)

      • managed services (render, railway, fly, neon, etc)

      • self-hosted (here's a server with linux on it, have fun)

    • Cost vs complexity tradeoffs poorly documented

    • Many developers start with managed services, and can hit cost walls as they start to scale.

  • Cloudflare Workers suggested for simple apps

    • Could handle most current apps for <$10/month

    • D1 database + KV storage sufficient for smaller use cases

    • Edge-scaling (auto-scaling)

    • Can have delayed updates (up to 1 minute) acceptable for most scenarios

    • Also heavily tied to Cloudflare-specific infrastructure, difficult to leave their stack.

  • Managed services usually are SaaS models, where you pay a monthly bill for a given service, which may be computed based on usage

    • Can easily auto-scale

    • Fairly easy to deploy to (usually connect a github repository and go)

    • Egress between managed services can be costly.

    • Estimating a bill can be difficult leading to unexpected costs

  • A VPS with Docker on it will also work for many applications, but you'll probably want some log management and observerability tooling, and database backups (dbmate, etc).

    • Some familiarity with Docker and Linux is needed

    • Sudden growth can be harder to respond to (no autoscaling)

App View Development Resources

  • Black Sky released production app view code

    • First drop-in replacement for BlueSky’s proprietary data plane

    • Not accepting contributions/PRs

    • Based on reference implementation but production-ready

      • The reference implementation that uses postgresql in the bluesky atproto repository is just intended for local development.

      • The actual BlueSky data plane is proprietary.

  • Proposed interview series for existing apps

    • Document actual architectures, costs, and trade-offs

    • Include “unexpected costs” like BlueSky’s 50% infrastructure spend on feeds (What surprised you)

    • Blog format preferred over surveys for nuanced details, but the format needs to be consistent.

    • Bryan volunteered to coordinate community podcast/interview series

Profile & Badge System Ideas

  • Profile lexicon concept discussed

    • Self-modifying faceted system for user identity

    • Users could add custom facets as needed

    • Pull relevant data rather than pre-define everything

  • AT Protocol-wide badge system considerations

    • Better to let users define within standards framework

    • Avoid missing use cases through premature standardization

    • Needs more development time before standardizing

Community Support & Sustainability

  • Compensation for service providers critical

    • Apps using Microcosm/Constellation should support Fig financially

    • GitHub Sponsors or SLA contracts suggested

    • Attribution requirements similar to iOS license disclosures

  • Proto Fans gating limitations

    • Currently binary (paid/unpaid) rather than tiered access

    • Need more expressive subscription models

    • Nick needs to focus development efforts

AI & Development Tools Discussion

  • LLM adoption creating productivity gains

    • Some developers reporting 4+ hour workdays with AI assistance

    • Concerns about tool dependency vs capability building

    • Anti-AI sentiment on Blue Sky vs pragmatic usage by developers

  • Infrastructure knowledge gaps

    • Many developers lack server/database management experience

    • LLMs helpful for learning but validation challenges remain

    • Need better educational resources for AT Protocol patterns

Charcoal Safety Tool Development

  • Bryan building proactive toxicity identification system

    • Uses language models to classify engagement patterns

    • Targets users with toxic history + topic overlap who aren’t followers

    • Proactive muting/blocking with review capability

    • Leveraging Rooster safety tools from GitHub

    • Launch delayed due to Fly infrastructure issues

      • Planning alpha release within days

      • Network intelligence scaling planned for broader signal

Frameworks for building AT Protocol Applications

  • Emelia mentioned how she's using Adonis.js and developing some packages for it to make building AT Protocol applications much easier

    • https://github.com/ThisIsMissEm/adonisjs-atproto-oauth/ (v6 only for now)

    • https://github.com/ThisIsMissEm/adonisjs-atproto-tap/

  • The idea is that these packages are essentially batteries included and straight forwards to use.

  • They're still new, and bugs happen, trying to manage breaking changes whilst still allowing flexibility.

Updates for Adonis.js v7 are coming to those packages, here's a preview:

Upcoming Announcements

  • Major announcement Monday 10-11am Pacific

    • Benefits entire open social web

    • Speculated to be authentication-related but not ActivityPub bridge

    • Community member has been sitting on news for 2-3 weeks

Subscribe to n8
to get updates in Reader, RSS, or via Bluesky Feed