# Mixtape — Social Music Curation Platform > Your taste is the post. Mixtape is a social platform for discovering, publishing, voting on, and discussing music mixtapes. The atomic social object is a **mixtape**—a curated collection of songs published by a person with a title, cover art, description, tracklist, and external legitimate streaming links (Spotify, YouTube, SoundCloud, Bandcamp, Apple Music). ## Core Principles - **The mixtape is the atomic social object**: The primary object is the curated collection, not individual disconnected tracks. - **Curation over consumption**: Mixtape does not host copyrighted audio files. It is a social discovery layer that links listeners to legitimate external sources. - **Taste is identity**: Users build reputation through the quality and community votes of their mixtapes. Each curator is limited to **one mixtape**. - **Simple social mechanics**: Upvote (+1), Downvote (-1), Threaded Comments, and Follows. ## Core URLs & Resources - [Homepage & Feed](https://mixtape.my.id/): Primary discovery feed featuring Trending, Newest, Top Voted, and Following filters. - [Explore & Random](https://mixtape.my.id/random): Random discovery of published community mixtapes. - [Public Mixtape Page](https://mixtape.my.id/mixtape/{slug}): Publicly accessible mixtape details, cassette deck visualizer, ordered tracklist, upvote score, and threaded discussion. - [Curator Profile](https://mixtape.my.id/u/{username}): Curator profile displaying published mixtape, received upvotes, and follower counts. - [Tag Discovery](https://mixtape.my.id/tags/{tag}): Categorized mixtape listings by genre and mood tags. ## API Endpoints (Supabase Edge Functions) - `GET /functions/v1/mixtapes?feed=trending|new|top|random|following`: Fetch public mixtapes feed. - `GET /functions/v1/mixtapes/{slugOrId}`: Fetch detailed mixtape with tracks and streaming sources. - `POST /functions/v1/mixtapes`: Publish or update a mixtape (enforces 1 mixtape limit per curator). - `POST /functions/v1/votes`: Upvote (1) or Downvote (-1) a mixtape. - `GET /functions/v1/comments?mixtape_id={id}`: Get threaded comments for a mixtape. - `POST /functions/v1/comments`: Submit a comment or reply. - `POST /functions/v1/follows`: Follow or unfollow a curator. - `GET /functions/v1/search?q={query}`: Search across mixtapes, curators, tracks, and tags.