Skip to content

indicaindependent/blueboxd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

πŸ“Ί Blueboxd

Free public-domain cinema, with a film diary that lives in your Bluesky account.

A Letterboxd-style social layer for classic film β€” built on the AT Protocol. No accounts to create. No ads. No tracking. No video hosted by us.

Live β†’ blueboxd.com Β· Mirror β†’ cineclub.osintnet.uk Β· @blueboxd.bsky.social


What is this?

Blueboxd streams hand-curated public-domain films straight from the Internet Archive β€” film noir, classic horror, golden-age comedy, sci-fi, and more β€” and pairs them with a Letterboxd-style social layer that writes to your own Bluesky repo.

Your watch diary, ratings, reviews, and favorites aren't locked in our database. They're stored as records in your Personal Data Server via the AT Protocol β€” fully portable, yours forever, readable by any atproto app. We host zero video: every stream comes directly from archive.org's public-domain collection.

It runs as a single Cloudflare Worker at the edge. One file, no build step, no framework.

One differentiator: your film identity is data you own β€” not a profile we rent to you.


Features

  • 🎞️ Curated public-domain catalog β€” 6 hand-tuned channels (Film Noir, Classic Horror, Sci-Fi, Golden-Age Comedy, Carnival & Circus, Prison Block) sourced live from the Internet Archive
  • 🎭 Browse by star & director β€” TMDB-portrait rails for 40+ classic-era names (Bogart, Stanwyck, Lang, Wilder...)
  • πŸ“” Portable film diary β€” watches, ratings, and reviews written to your Bluesky PDS via AT Protocol
  • 🍿 The club is watching β€” a live community feed of what members are watching, built from public atproto records
  • πŸ”΄ Watch-party discovery β€” surfaces real #TCMParty / #FilmSky / #NoirAlley threads buzzing on Bluesky right now (read-only β€” we surface the buzz, we never spam it)
  • πŸ¦‹ Bluesky OAuth β€” log in with the account you already have; no new password
  • βš–οΈ Legal-first β€” clickwrap consent, DMCA takedown flow, public-domain-only sourcing, observability for playback health
  • ⚑ Edge-native β€” a single Cloudflare Worker, D1 for telemetry, KV for caching. Cold-starts in milliseconds.

Architecture

                    +-----------------------------+
   Bluesky user --->|   Cloudflare Worker (edge)  |
   (OAuth login)    |   cineclub_bundled.js       |
                    |                             |
                    |  - SPA shell + client render|
                    |  - /api/home   catalog rails|
                    |  - /api/detail  stream lookup|
                    |  - /api/discovery party feed|
                    |  - OAuth + session handling |
                    +------+--------------+-------+
                           |              |
              +------------+              +-------------+
              v                                         v
   +--------------------+                  +------------------------+
   |  Internet Archive  |                  |  Your Bluesky PDS      |
   |  (public-domain    |                  |  (diary / ratings /    |
   |   video streams)   |                  |   reviews -- you own)  |
   +--------------------+                  +------------------------+
              |                                         |
              v                                         v
   +--------------------+                  +------------------------+
   |  TMDB (portraits + |                  |  D1 + KV (telemetry,   |
   |   poster metadata) |                  |   caching, consent log)|
   +--------------------+                  +------------------------+

No origin server. No video on our infra. Your social graph is yours.


Self-hosting

Blueboxd is a single Cloudflare Worker. To run your own instance:

git clone https://github.com/indicaindependent/blueboxd.git
cd blueboxd
npm i -g wrangler
cp wrangler.example.toml wrangler.toml   # then fill in your IDs

1. Create the bindings (KV + D1):

wrangler kv namespace create CC_KV
wrangler d1 create blueboxd-social

Paste the returned IDs into wrangler.toml.

2. Set your owner identity -- edit the two placeholders near the top of cineclub_bundled.js:

var OWNER_DID = "did:plc:YOUR_OWNER_DID";   // your Bluesky host/owner account DID
var HOST_PDS  = "https://YOUR-PDS.host.bsky.network";  // your PDS endpoint

3. Set secrets (never commit these):

wrangler secret put BLUEBOXD_APP_PASSWORD   # host account app-password
wrangler secret put SESSION_SECRET
wrangler secret put CLIENT_PRIVATE_JWK      # OAuth client key
# optional alerting:
wrangler secret put SCRAMBLEMEBOT_TOKEN
wrangler secret put PETE_CHAT_ID

4. Deploy:

wrangler deploy

That's it -- no build pipeline, no node_modules in production. The entire app is cineclub_bundled.js.


Legal & ethics

Blueboxd streams only public-domain works sourced from the Internet Archive. We host no video and store no copyrighted media. A DMCA takedown flow is built in, and first-visit consent is logged. If you believe something is mis-categorized, use the in-app takedown form.


License

MIT (c) Indica Independent / VPDLNY


Part of the Indica Independent open-tools stack -- OSINT-grade software for the people Wall Street and Big Tech ignore.

osintnet.uk Β· WarHeatMap Β· Tuck Β· Strait Tracker

Built at the edge. Owned by you. πŸ“Ί

About

πŸ“Ί Free public-domain cinema with a film diary that lives in your own Bluesky repo β€” a Letterboxd-style social layer on the AT Protocol. Single Cloudflare Worker, no ads, no tracking. blueboxd.com

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors