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.
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
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)
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