Commit Graph

7 Commits

Author SHA1 Message Date
Jeff Emmett fdb1efcb1e feat: add PWA manifest with radio shortcut + cache radio page
- Create manifest.json with app name, icons, and shortcuts (Music, Radio, Offline)
- Add /radio to service worker shell cache for offline navigation
- Bump SW cache version to v2 to invalidate stale caches
- Link manifest in layout metadata

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 17:26:59 -04:00
Jeff Emmett c9cd56b452 feat: add World Radio page with 3D globe + Radio Garden integration
- New /radio page with interactive Three.js globe showing 30K+ radio stations worldwide
- Radio Garden API proxy routes (places, channels, stream resolver, search) with caching
- Extended Track type to MusicTrack | RadioTrack discriminated union
- MusicProvider handles radio streams (skip IndexedDB/precache, direct stream URL)
- Mini-player and full-screen player show LIVE badge, hide seek/download/lyrics for radio
- Shared globe component reused on /request-channel page (Search/Globe tab toggle)
- Homepage gets rose "Listen to Radio" button with Waves icon
- react-globe.gl for efficient rendering of 40K+ geo-points

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 16:48:01 -04:00
Jeff Emmett c24962f829 feat: search dedup, MusicBrainz discovery, swipe-to-queue, audio output selector
- Deduplicate Navidrome search results by title+artist (keep highest bitRate)
- Deduplicate Soulseek results by filename across peers (show peer count badge)
- Add MusicBrainz fuzzy search with one-tap Soulseek auto-download
- Add swipe-right-to-queue gesture on mobile song rows
- Add audio output device selector (phone/Bluetooth) in full-screen player
- Include offline mode, download button, and service worker from prior work

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-31 19:06:28 -07:00
Jeff Emmett 7a01ea37c2 feat: replace favicon with ROFL laughing emoji 🤣
- Updated icon.svg to use 🤣 emoji
- Added generate-favicon.mjs script for PNG generation
- Added canvas dependency for favicon generation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 23:18:04 -05:00
Jeff Emmett 73988e6378 Add Open Graph and Twitter Card metadata for social sharing
- Add og-image.jpg (1200x630) for link previews
- Add metadataBase, openGraph, and twitter metadata to layout.tsx

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 22:11:51 +01:00
Jeff Emmett 2852ad78f5 Remove personal photos from website
- Remove jeff-tea.jpg, jeff-blueberries.jpg, jeff-donkey.jpg
- Update page.tsx to remove Image components referencing these photos
- Remove unused next/image import

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 18:02:07 -05:00
v0 980ec86afe Initialized repository for chat Jefflix website
Co-authored-by: Jeff Emmett <46964190+Jeff-Emmett@users.noreply.github.com>
2025-11-28 02:08:25 +00:00