polls on atproto pollz.waow.tech
Files
readme.md

pollz #

polls on AT Protocol: create a poll, vote, and watch the results. polls and votes are records in each user's own repo, under the tech.waow.pollz.poll and tech.waow.pollz.vote lexicons. the browser signs in with OAuth and writes them straight to the user's PDS. a collector follows Jetstream for those two collections and feeds a zeldi cell per poll, whose state lives in R2, and a read-only api serves the index.

live: pollz.waow.tech, reading from api.pollz.waow.tech

develop #

needs zig 0.17, node 22 with pnpm, and uv.

just test                              # frontend, cells, collector and seed tests
cd frontend && pnpm dev --host 127.0.0.1   # the site; VITE_API_URL names an AppView that allows its origin

just test runs the cells against a real zeldi on a recorded fixture. the collector only subscribes to the live firehose on a Fly machine; run nothing against it from a laptop.

deploy #

just deploy-frontend                   # cloudflare pages

the AppView runs on cellar, one Fly machine shared with other apps, which builds pollz's cells and collector from the commit it pins. to ship a change here, bump that pin and deploy cellar.

docs #

docs/ holds the deeper notes: how ingestion and browser writes work, what the deployed path measures, and what pollz used to run.