feat: Music for Life — curated Spotify playlists, maps, and hover polish#89
Conversation
Spotify's Feb-2026 API changes blocked listing playlists automatically
(/me/playlists and /users/{id}/playlists return 403 in Development Mode),
so playlist IDs are curated by hand in app/lib/spotify-playlists.ts —
array order is display order. Covers, descriptions and tracks are fetched
live from GET /playlists/{id} and the new /items endpoint (revalidate 1h).
Entry chip sits on the home Listening card next to last month's tops.
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Claude <noreply@anthropic.com>
…ver polish Add per-playlist detail routes and a fullscreen Mapbox viewer; fetch Spotify descriptions verbatim with period/places split on two lines and linked cities. Polish HoverTip bubbles (delayed fade/slide) and align place-link hovers with site list patterns. Update README and .env.example for new routes and Mapbox. Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Warning Review limit reached
Next review available in: 33 seconds Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (25)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
/playlists) — Curated public Spotify playlists (manual ID list; Spotify API cannot list playlists in Development Mode). Index shows cover, live Spotify description, and track count; cards link to detail pages. Home Listening chip renamed to music for life./playlists/[id]) — Full two-column track list, Spotify back-link on title/cover, ← music for life chip. Place-journal descriptions use Spotify text verbatim: period on line 1, places (incl. regions like Kyushu Island:) on line 2, with Mapbox-linked city names./playlists/map) — Fullscreen Mapbox GL JS (Standard monochrome); compact footer, no page scroll. RequiresNEXT_PUBLIC_MAPBOX_ACCESS_TOKEN..hover-tip-bubbleinglobals.css, 220ms ease); portal tooltips mount only when displayed. Place-name links use row-style hover (background first, accent text viagroup-hover, 300ms) instead of instant:hovercolor.CURATED_SPOTIFY_PLAYLISTS/placeCoords.Test plan
/playlists/playlists/[id]track list; city links →/playlists/mapnpm run lint && npm run typecheck && npm run test && npm run build(CI)Made with Cursor