An entry for the streamplace vod showcase
TypeScript 92.0%
CSS 6.5%
JavaScript 1.0%
HTML 0.5%
3 1 0

Clone this repository

https://tangled.org/mainasara.dev/streamplace-vod https://tangled.org/did:plc:p3cygo5s7wru2argeci6wfv6/streamplace-vod
git@tangled.org:mainasara.dev/streamplace-vod git@tangled.org:did:plc:p3cygo5s7wru2argeci6wfv6/streamplace-vod

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

Download tar.gz
README.md

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#

  1. Write a bundle with declared permissions using @at-run/runtime
  2. Build with Bun targeting browser (for Deno compatibility)
  3. Deploy to your PDS as a blob with metadata record
  4. 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#

Requirements#

  • Bun - Runtime and bundler
  • Deno - Sandbox execution

License#

MIT