···11+# Ionosphere
22+33+**A semantically enriched conference video archive for [ATmosphereConf 2026](https://atmosphereconf.org).**
44+55+[ionosphere.tv](https://ionosphere.tv)
66+77+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.
88+99+Built as an entry for the [Streamplace](https://stream.place) VOD JAM.
1010+1111+## What's here
1212+1313+**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.
1414+1515+**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.
1616+1717+**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.
1818+1919+**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.
2020+2121+**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.
2222+2323+## Architecture
2424+2525+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.
2626+2727+- **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.
2828+- **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.
2929+- **Data** — Conference schedule ingested from the ATmosphereConf calendar, VOD recordings from Streamplace, transcripts aligned to talk boundaries using diarization-based chunking.
3030+3131+## Development
3232+3333+```bash
3434+# Start local PDS + Jetstream
3535+cd apps/ionosphere-appview
3636+docker compose up -d
3737+3838+# Start appview
3939+PORT=3001 npx tsx src/appview.ts
4040+4141+# Start frontend (use 127.0.0.1 for OAuth)
4242+cd apps/ionosphere
4343+NEXT_PUBLIC_API_URL=http://localhost:3001 npx next dev
4444+```
4545+4646+## Deployment
4747+4848+Deployed on [Fly.io](https://fly.io) with persistent SQLite storage.
4949+5050+```bash
5151+flyctl deploy --config fly.appview.toml --remote-only
5252+flyctl deploy --config fly.web.toml --remote-only
5353+curl -X POST https://api.ionosphere.tv/xrpc/tv.ionosphere.invalidate
5454+```
5555+5656+## Author
5757+5858+Built by [Blaine Cook](https://bsky.app/profile/blaine.bsky.social).
5959+6060+## License
6161+6262+MIT