~/talk

Building a Decentralized Social Media App with Go and ATProto

Talkat GopherCon 2025 · 2025-08-26..08-28· [go, web-platform]
links:none on file
slides:none on file

Builds a photo‑sharing AppView in Go that ingests the ATProto firehose (JetStream JSON), extracts images, generates timelines with feed generators, and writes likes/comments back into each user’s personal data server (PDS). Code uses the standard Go http library, handles OAuth registration flows, verifies signed JSON‑schema lexicon records, and shows how to resolve a handle to a DID via DNS or the PLC directory. Demo runs live against Bluesky, showing posts and comments propagated.

AI-written summary · about

  1. 0:00Introduction
  2. 0:48ATProto history
  3. 1:34Authenticated protocol components
  4. 3:19Personal Data Server ownership
  5. 4:46Relays and data fire hose
  6. 5:52Live demo: ATProto fire hose
  7. 6:13App views in ecosystem
  8. 7:19Labelers and moderation
  9. 8:22Feed generators and timelines
  10. 9:08Handles and decentralized identity
  11. 10:37Handle resolution to PDS
  12. 12:43DID documents and PDS location
  13. 13:45Verifying DIDs and handles
  14. 14:52ATProto API transition
  15. 15:34Building app view in Go
  16. 17:05OAuth in ATProto apps
  17. 18:12Live demo: gallery app
  18. 20:43ATProto apps showcase
  19. 21:51Closing remarks
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.