Stream thousands of radio stations from around the globe. Discover music, news, and culture.
https://sway.dablulite.dev
- TypeScript 92.5%
- CSS 7.4%
| .zed | ||
| app | ||
| public | ||
| .gitignore | ||
| eslint.config.mjs | ||
| global.d.ts | ||
| next.config.ts | ||
| package-lock.json | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| postcss.config.mjs | ||
| proxy.ts | ||
| README.md | ||
| tsconfig.json | ||
Sway Radio
Sway Radio is a Progressive Web App (PWA) for discovering, streaming, and organizing radio stations from around the world.
What The Web App Does
- Search and discover stations.
- Stream live radio with a full media player and mobile mini-player experience.
- Save favorites and build curated station collections.
- Track listening history and quickly jump back to recently played stations.
- Use power features like equalizer controls, sleep timer and alarms.
- Install as a PWA for an app-like experience across desktop and mobile.
Tech Stack
- Next.js 16 (App Router)
- React 19
- TypeScript 5
- Tailwind CSS 4
- IndexedDB for local persistence
Getting Started (pnpm)
1. Install dependencies
pnpm install
2. Run the development server
pnpm dev
Then open http://localhost:3000.
Build For Production (pnpm)
1. Create a production build
pnpm build
2. Start the production server
pnpm start
Lint
pnpm lint
Project Structure
app/(app)contains the main application routes, components, contexts, and feature modules.app/api/radiocontains API routes for station search, station details, countries, and metadata helpers.publiccontains brand assets, PWA icons, and static resources.
Notes
- Primary package manager:
pnpm - This app is designed as a PWA and supports installable/offline-friendly behavior.