Ionosphere.tv
3
fork

Configure Feed

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

docs: add README

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

+62
+62
README.md
··· 1 + # Ionosphere 2 + 3 + **A semantically enriched conference video archive for [ATmosphereConf 2026](https://atmosphereconf.org).** 4 + 5 + [ionosphere.tv](https://ionosphere.tv) 6 + 7 + Ionosphere turns conference recordings into a browsable, searchable, interconnected archive. Every talk is transcribed with word-level timestamps, enriched with extracted concepts and topics, and linked to the social conversation that happened around it on Bluesky. 8 + 9 + Built as an entry for the [Streamplace](https://stream.place) VOD JAM. 10 + 11 + ## What's here 12 + 13 + **Talks & Transcripts** — 95+ talks with synchronized video playback and word-level transcripts. Click any word to jump to that moment. Leave comments and reactions anchored to specific passages. 14 + 15 + **Concordance Index** — A multi-column concordance of every significant term across all talks, with cross-references and timecode links. Scroll horizontally through the index and click any entry to watch the relevant moment. 16 + 17 + **Community** — A curated overview of what people said about the conference on Bluesky: top posts, blog recaps with OG previews, conference photos, YouTube talk uploads, 20+ VOD JAM sites, and 80+ projects featured at the conference. Built by pulling ~2,000 posts from the Bluesky search API, extracting links and images, matching posts to talks by speaker mentions and timestamps. 18 + 19 + **Mentions** — On each talk page, a sidebar shows Bluesky posts that mentioned the speaker during their talk, time-aligned with the transcript. Thread replies expand inline. Click a mention to seek the video to that moment. 20 + 21 + **Speakers & Concepts** — Browse talks by speaker or by extracted concept. The NLP pipeline identifies named entities, topics, and relationships across talks, linking them into a navigable web. 22 + 23 + ## Architecture 24 + 25 + Ionosphere is built on [AT Protocol](https://atproto.com). Talks, speakers, transcripts, and concepts are published as AT Protocol records on a PDS, making the entire archive addressable and interoperable with the atmosphere ecosystem. 26 + 27 + - **Appview** — A Hono server that indexes records from Jetstream, serves XRPC endpoints, and manages a SQLite database. Enrichment pipelines handle transcription (Whisper), sentence/paragraph segmentation, named entity recognition, concept extraction, and speaker diarization. 28 + - **Frontend** — A Next.js app with synchronized video playback (HLS.js), scroll-synced transcript rendering, OAuth-based commenting, and multi-column layouts using greedy column-fill algorithms. 29 + - **Data** — Conference schedule ingested from the ATmosphereConf calendar, VOD recordings from Streamplace, transcripts aligned to talk boundaries using diarization-based chunking. 30 + 31 + ## Development 32 + 33 + ```bash 34 + # Start local PDS + Jetstream 35 + cd apps/ionosphere-appview 36 + docker compose up -d 37 + 38 + # Start appview 39 + PORT=3001 npx tsx src/appview.ts 40 + 41 + # Start frontend (use 127.0.0.1 for OAuth) 42 + cd apps/ionosphere 43 + NEXT_PUBLIC_API_URL=http://localhost:3001 npx next dev 44 + ``` 45 + 46 + ## Deployment 47 + 48 + Deployed on [Fly.io](https://fly.io) with persistent SQLite storage. 49 + 50 + ```bash 51 + flyctl deploy --config fly.appview.toml --remote-only 52 + flyctl deploy --config fly.web.toml --remote-only 53 + curl -X POST https://api.ionosphere.tv/xrpc/tv.ionosphere.invalidate 54 + ``` 55 + 56 + ## Author 57 + 58 + Built by [Blaine Cook](https://bsky.app/profile/blaine.bsky.social). 59 + 60 + ## License 61 + 62 + MIT