{"repo":"andraderaul/random-fy","free":true,"listed":false,"github":"https://github.com/andraderaul/random-fy","clone":"git clone https://github.com/andraderaul/random-fy.git","description":"Randomfy takes your most listened Spotify artists, selects one of them and shows you similar artists, so you can meet new artists based on the previous selected one.","language":"TypeScript","stars":10,"topics":["spotify","nextjs","react","random-fy","serverless"],"license":"MIT","category":"saas-starters-boilerplates","readme_excerpt":"randomfy About randomfy takes your most listened Spotify artists, selects one of them, and shows you similar artists so you can discover new music based on what you already like. Disclaimer: randomfy is not affiliated with Spotify. The app is built with Next.js, React, and the Spotify Web API. The codebase uses feature-based modules under src/features/ , Server Components and Server Actions for the main flow, Spotify calls only on the server , and session state carried in URL search params (no client store for recommendations). Token refresh runs in middleware. See ADR-002 — project structure for the full layering model. How it works At a high level: 1. After you sign in with Spotify, the app shows one artist recommendation at a time (image, name, and a track preview). 2. You can like or pass on each artist, similar to a card stack. 3. Liking an artist uses them as the new seed for related artists; liked tracks feed a public playlist and visual outputs on the result screen. Session rules (current app): you can open the result flow with at least 5 liked artists and up to 20 per session. The festival poster unlocks at 20 likes. The legacy doc above still describes the idea in depth; where it conflicts with these numbers, this README wins. For OAuth and local development (Spotify now requires 127.0.0.1 instead of localhost for redirect URIs), read Local setup. Quickstart Clone the repository: Use Node 20+ (see .nvmrc ): Install dependencies: Start the app: Open the URL printed i","default_branch":null,"files":null,"tree":[],"storefront":"/r/andraderaul","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/andraderaul/random-fy/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}