A jam is a shared-deadline creative challenge: one prompt, a roster of participants, a single due date. Submissions point at records that li
0

Configure Feed

Select the types of activity you want to include in your feed.

TypeScript 98.7%
CSS 0.8%
Dockerfile 0.5%
71 1 0

Clone this repository

https://git.vm.fail/natespilman.at/atjam.at https://git.vm.fail/did:plc:pvev6enol7g2ua2ddzr7rzdb
ssh://git@knot1.tangled.sh:2222/natespilman.at/atjam.at ssh://git@knot1.tangled.sh:2222/did:plc:pvev6enol7g2ua2ddzr7rzdb

For self-hosted knots, clone URLs may differ based on your setup.


README.md

atjam#

ATProto-native coordination layer for jams — shared-deadline creative challenges (song covers, game jams, writing jams, book clubs, etc.). atjam coordinates; other ATProto apps host the deliverables.

See PLAN.md for the full architecture and roadmap.

Layout#

Package Purpose
lexicons/ at.atjam.* lexicon JSON + generated TS types.
web/ TanStack Start web app.

Getting started#

pnpm install
cp web/.env.example web/.env
# edit web/.env — at minimum, set VITE_KNOWN_ORGANIZERS to one or more DIDs
pnpm dev

The dev server starts on http://127.0.0.1:3000. Use the IP, not localhost — OAuth requires a loopback IP for local-dev redirect URIs.

Status#

Pre-v1. Lexicons are unstable until proven by a real end-to-end EPTSS round.