tvillarete/ipod-classic-js

An iPod Classic simulator that connects to Apple Music and Spotify. Built with React & Styled Components

TypeScript

1,634

228 commits

updated Oct 15, 2026

See the code

README

iPod.js

The iPod Classic, rebuilt for the streaming era.

Spotify and Apple Music in a pixel-perfect iPod Classic, complete with click wheel, games, and themes.

Try it live

ipod


Quick Start

pnpm install
pnpm dev

On first run, you'll be prompted to enter values for each secret (Spotify credentials, Apple Developer Token). These are stored in a local Cloudflare Secrets Store managed by Wrangler.

Visit http://127.0.0.1:3000/ipod to start.

Use 127.0.0.1 instead of localhost. Spotify's redirect URIs require it.

Secrets

This project uses Cloudflare Secrets Store for managing secrets in both production and local development.

First-time setup

Running pnpm dev will automatically detect missing secrets and prompt you for values. You can also run the setup manually:

pnpm sync-dev-vars

You'll need the following values:

SecretHow to get it
SPOTIFY_CLIENT_IDCreate an app in the Spotify Developer Dashboard
SPOTIFY_CLIENT_SECRETSame Spotify app — copy the Client Secret
APPLE_DEVELOPER_TOKENSee the Apple Music JWT Generator

Spotify redirect URI

Add http://127.0.0.1:3000/ipod as a redirect URI in your Spotify app settings. Must be 127.0.0.1, not localhost.

Updating secrets

To update local secret values at any time:

pnpm sync-dev-vars

Deployment

Deployed on Cloudflare Workers via OpenNext.

pnpm build                        # Next.js + Serwist service worker
npx opennextjs-cloudflare build   # Bundle for Cloudflare Workers
npx opennextjs-cloudflare deploy  # Deploy to production

Production secrets are managed in the Cloudflare Secrets Store via the dashboard or wrangler secrets-store CLI.

Built With

Next.js, React, TypeScript, Styled Components, Motion.

License

MIT


apple-music

tvillarete/ipod-classic-js

An iPod Classic simulator that connects to Apple Music and Spotify. Built with React & Styled Components

TypeScript

1,634

228 commits

updated Oct 15, 2026

See the code

README

iPod.js

The iPod Classic, rebuilt for the streaming era.

Spotify and Apple Music in a pixel-perfect iPod Classic, complete with click wheel, games, and themes.

Try it live

ipod


Quick Start

pnpm install
pnpm dev

On first run, you'll be prompted to enter values for each secret (Spotify credentials, Apple Developer Token). These are stored in a local Cloudflare Secrets Store managed by Wrangler.

Visit http://127.0.0.1:3000/ipod to start.

Use 127.0.0.1 instead of localhost. Spotify's redirect URIs require it.

Secrets

This project uses Cloudflare Secrets Store for managing secrets in both production and local development.

First-time setup

Running pnpm dev will automatically detect missing secrets and prompt you for values. You can also run the setup manually:

pnpm sync-dev-vars

You'll need the following values:

SecretHow to get it
SPOTIFY_CLIENT_IDCreate an app in the Spotify Developer Dashboard
SPOTIFY_CLIENT_SECRETSame Spotify app — copy the Client Secret
APPLE_DEVELOPER_TOKENSee the Apple Music JWT Generator

Spotify redirect URI

Add http://127.0.0.1:3000/ipod as a redirect URI in your Spotify app settings. Must be 127.0.0.1, not localhost.

Updating secrets

To update local secret values at any time:

pnpm sync-dev-vars

Deployment

Deployed on Cloudflare Workers via OpenNext.

pnpm build                        # Next.js + Serwist service worker
npx opennextjs-cloudflare build   # Bundle for Cloudflare Workers
npx opennextjs-cloudflare deploy  # Deploy to production

Production secrets are managed in the Cloudflare Secrets Store via the dashboard or wrangler secrets-store CLI.

Built With

Next.js, React, TypeScript, Styled Components, Motion.

License

MIT


apple-music

Significant stargazers

Shunsuke KITADA

173 followers · starred Jan 2023

Boris Bügling

1,572 followers · starred Jun 2021

aaronraimist

137 followers · starred Jun 2021