streamhut#
AtmosphereConf 2026 Code Jam entry - serverless execution on AT Protocol.
What is this?#
A proof-of-concept system for running JavaScript bundles stored on your AT Protocol PDS. Your code is your data.
- at-run: Deploy and execute JS bundles from any PDS
- VOD app: AtmosphereConf video streaming backend built on at-run
Project Structure#
├── packages/at-run/
│ ├── runtime/ # Core types for bundle authors
│ ├── cli/ # Deploy bundles to PDS
│ ├── runner/ # HTTP server for execution
│ └── lexicons/ # AT Protocol schemas
│
├── apps/
│ ├── vod/ # AtmosphereConf VOD bundle
│ └── web/ # Video player frontend
Quick Start#
# Install dependencies
bun install
# Login to your PDS
bun packages/at-run/cli/src/index.ts login
# Build and deploy the VOD bundle
bun build apps/vod/src/index.ts --outfile=apps/vod/dist/bundle.js --target=browser
bun packages/at-run/cli/src/index.ts deploy apps/vod/dist/bundle.js
# Start the runner
bun packages/at-run/runner/src/index.ts
# Test it
curl http://localhost:3000/bundle/YOUR_DID/atmosphereconf-vod/latest/listVideos
How It Works#
- Write a bundle with declared permissions using
@at-run/runtime - Build with Bun targeting browser (for Deno compatibility)
- Deploy to your PDS as a blob with metadata record
- Execute via any runner - fetches bundle, sandboxes with Deno, returns result
import { manifest, endpoint } from "@at-run/runtime"
export const bundle = manifest({
name: "my-api",
permissions: { net: ["api.example.com"] },
})
export const getData = endpoint({
handler: async () => {
const res = await fetch("https://api.example.com/data")
return res.json()
},
})
Documentation#
- at-run README - Full documentation
- VOD Bundle - Example bundle
Requirements#
License#
MIT