Chad
banner
chadtmiller.com
Chad
@chadtmiller.com
software engineer, atproto hacking

Building @grain.social and @slices.network

grain profile: https://grain.social/profile/chadtmiller.com
January 30, 2026 at 11:32 PM
@teal.fm if you ever do a search input for plays "Thee Oh Sees" is a pretty good test artist to see if you return both osees and the oh sees and thee oh sees
January 29, 2026 at 7:51 PM
new @tangled.org account switcher is so nice
January 22, 2026 at 4:58 PM
atproto engineer showing up in job listings when?
January 19, 2026 at 5:20 PM
teal-relay-production.up.railway.app

got the graphql teal fm demo back up and running but with duckdb + lex-gql

had to go back to drawing board because there's over 600,000 scrobbles now and queries were slow 🫨
teal.fm
teal-relay-production.up.railway.app
January 18, 2026 at 1:57 AM
@zzstoatzz.io and I were talking earlier about setting up some kind of regular hang for atproto hackers and the like. Let us know if you’re interested!

Could be a place to share a new project, talk about patterns/pain points, etc
hey atproto hackers and enthusiasts!

@chadtmiller.com and I were just chatting and we were thinking it'd be fun to get a regular video call hangout going

i don't think we really care if its discord, zoom, gmeet etc

who would join?
January 18, 2026 at 12:50 AM
welll shoot guess I should use duckdb
January 17, 2026 at 12:24 AM
on a kick to simplify and extracted my ideas for what a lexicon graphql mapping looks like from quickslice into a separate standalone .js library. very poc stage with some stuff likely to change but i've got a basic statusphere example working with tap.

tangled.org/chadtmiller....
chadtmiller.com/lex-gql
GraphQL for AT Protocol
tangled.org
January 15, 2026 at 11:44 PM
tapping in
January 15, 2026 at 9:47 PM
making progress on pds.js tangled.org/chadtmiller...., there's something to be said about starting with the simplest possible implementation and working your way up from there. the core logic, at least, is zero dep, with a hexagonal architecture that allows different functionality via ports/adapters
January 14, 2026 at 10:32 PM
is the atproto based npm alternative still alive?
January 14, 2026 at 9:46 PM
we should just commit our prompts, that’s the real code these days
January 10, 2026 at 3:29 AM
hear me out, a PDS proxy/mirror that copies my data to all the different PDS implementations and allows me log in with all the available auth patterns
January 9, 2026 at 7:10 PM
what if i put a pds on pdsjs.dev so if you mistype pdsls.dev you get a pds.js pds.
pdsjs.dev
January 9, 2026 at 1:16 AM
added this lil scopes table and better scopes support to pds.js

we're at 5,324 lines
and ~27.5 KB gzipped deployed
January 8, 2026 at 11:53 PM
a cool feature of the comment model in @grain.social is being able to comment on a particular photo in a gallery, something a lot of other social apps don’t have @goose.art 📸
January 8, 2026 at 7:08 PM
If anyone wants to try the next version of @grain.social, kind of just letting it simmer on next.grain.social for a bit. it's basically peak quickslice, all views are hydrated via graphql (favs, comments, follows, etc). no complicated lexicon view defs. notifications, create moderation reports, etc
January 8, 2026 at 5:23 PM
pds.js oauth coming in hot

bringing back the single .js

zero deps besides cloudflare worker stuff

still ironing out stuff (and very basic scopes support) but it works on @pdsls.dev
January 8, 2026 at 2:48 AM
pretty awesome, pds.js already getting used for hacking on new patterns
s/o @chadtmiller.com for being a mad lad w pds.js which i forked and extended w xrpc endpoints to impl an inbox (maybe this is reasonable? not sure)

then deployed 2 of these modded PDSes as cf workers:
pds-message-demo.nate-8fe.workers.dev
pds-message-demo-2.nate-8fe.workers.dev
January 7, 2026 at 7:23 PM
things you say when working on a PDS
gah I think it's the CID
January 7, 2026 at 2:17 AM
anyone working on a custom PDS have trouble with the bsky cdn loading blobs? @mk.gg are you able to create a bsky post with images yet with your custom pds and see them load correctly?
January 7, 2026 at 1:03 AM
i think i waited too long to give cloudflare workers/R2 a try, the tooling anyways is really nice to work with, and easy to mock locally
January 7, 2026 at 12:11 AM
serious question: is anyone hiring? open to connecting. 10+ years of full stack experience plus 1 year of unhinged ai/atproto hacking
January 6, 2026 at 9:52 PM
it would be cool to do a gallery show with all the different PDS homepages. #atmosphereconf idea
January 6, 2026 at 8:08 PM
what have i done
lol you can literally just edit your PDS in a single file
January 6, 2026 at 6:26 PM