···11+## Design Context
22+33+### Users
44+Developers, researchers, and ATmosphereConf attendees browsing conference talks across desktop and mobile. They need to quickly scan talks, find relevant sessions by title, and jump into playback with minimal friction.
55+66+### Brand Personality
77+Atmospheric, focused, and technical. The experience should feel calm and immersive while still snappy and practical for heavy browsing.
88+99+### Aesthetic Direction
1010+Dark, glassy, aurora-inspired interface with subtle motion and texture. Monospace-first typography per product requirement, translucent surfaces over a deep blue/teal/purple backdrop, and restrained interactive glow for key controls.
1111+1212+### Design Principles
1313+1. Keep browsing fast and legible first, then layer atmosphere through motion and texture.
1414+2. Use glass treatment purposefully for navigational and content surfaces, not decorative overuse.
1515+3. Maintain strong interaction clarity with touch-friendly controls and immediate feedback.
1616+4. Prioritize resilient UX: clear loading, graceful failures, and predictable recovery.
1717+5. Preserve mobile parity with desktop through adaptive navigation and gesture support.
+21
LICENSE
···11+MIT License
22+33+Copyright (c) 2026 Jack
44+55+Permission is hereby granted, free of charge, to any person obtaining a copy
66+of this software and associated documentation files (the "Software"), to deal
77+in the Software without restriction, including without limitation the rights
88+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
99+copies of the Software, and to permit persons to whom the Software is
1010+furnished to do so, subject to the following conditions:
1111+1212+The above copyright notice and this permission notice shall be included in all
1313+copies or substantial portions of the Software.
1414+1515+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1616+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1717+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1818+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1919+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
2020+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2121+SOFTWARE.
+38
README.md
···11+# Atmosphere VODs
22+33+Atmosphere VODs is a minimalist glassy PWA for browsing ATmosphereConf 2026 talks from the
44+Streamplace AT Protocol VOD beta API.
55+66+## What it includes
77+88+- React + Vite + TypeScript app with Tailwind + shadcn-style UI primitives
99+- PDS-aware data fetching: resolves the repo DID in PLC directory, then fetches records from that PDS
1010+- HLS playback via `hls.js` with custom controls and mobile swipe-down dismiss
1111+- Search by talk title with instant client-side filtering
1212+- Mobile-first navigation: bottom tabs on mobile, sidebar on desktop
1313+- PWA setup with `vite-plugin-pwa` and Workbox runtime caching
1414+1515+## Run locally
1616+1717+```bash
1818+npm install
1919+npm run dev
2020+```
2121+2222+## Build for production
2323+2424+```bash
2525+npm run build
2626+```
2727+2828+## Deploy to Vercel
2929+3030+1. Push this repo to GitHub.
3131+2. In Vercel, import the repository.
3232+3. Deploy with defaults, or run `vercel deploy` from your terminal.
3333+3434+No environment variables are required because all APIs are public.
3535+3636+## License
3737+3838+MIT