the site

This mixtape is a living site: a playlist that grows little by little, one song released per day, like someone recording a tape and filling up side A with care. The home page always shows the 7 most recent tracks; the "full playlist" keeps everything released since the start. While it plays, you can switch between the 3D cassette and the original video.

how it works

Songs join the queue through a simple form — just paste the YouTube link. Once a day, the next one in line is released automatically and shows up on the home page and the full playlist. No admin panel, no traditional database: a spreadsheet does that job.

tape box

Besides the day-to-day side A, there's a tape box with three shelves: editorial (curated tapes from the spreadsheet, always complete, no one-track-per-day rule), my tapes (your own local tapes and anything you've published), and community tapes (published by anyone, searchable by name or id, with a favorites shelf of its own). All three are paginated, 10 tapes per page.

types of tapes

The site has several kinds of playlists, which I call tapes. The order below runs from the most ethereal ones to the most robust, with the most persistent data. Every tape has a color, a title and videos — the maximum number of videos varies from type to type. When a tape is shared, you get a link to that same tape in phantom format, unless it's a community tape.

phantom tapes

Phantom tapes are the most fragile and ethereal tapes on the site. They aren't saved on the site and leave no record anywhere: a phantom tape's data lives exclusively in the sharing link. Its name, color and videos exist only inside the URL. Lose the URL and you lose the tape. They carry a little ghost sticker with a holographic effect in the bottom-left corner, which sets them apart from the rest, and can hold up to 20 videos.

I lost a phantom tape while testing. It was a test tape, with songs picked without any real criteria. Even so, when I realized I would never get that tape back, I felt sad — even knowing it had no obvious meaning or sentimental value, its loss was felt. Maybe it's the IKEA effect, I can't say for sure.

local tapes

This is the most fragile kind of tape that actually persists. Local tapes are your tapes saved in the browser's temporary files, listed under "my tapes" in the tape box. They hold up to 20 videos and are marked by a "play" icon in the bottom-left corner of the 3D view.

I consider local tapes less fragile than phantom ones, but since the data is saved only in the browser, they're more fragile than the types stored on the server: they can only be reached from the browser that created them. The editor is where they're born — a tape is built from a YouTube search (with thumbnails and track length) or from pasted links, several at once, separated by spaces, semicolons, or one per line. Whatever you build is saved automatically as a local tape unless you publish it. Age-restricted videos can be added to a tape, but they only play on YouTube, not on this site. Any tape playing (including ones from the tape box) has a "remix" button, to copy its tracks as a starting point for your own.

the home tape

This one is particularly interesting. Its playlist has 7 songs and changes every day: the oldest song leaves, a new one comes in. The most recent ones sit at the top of the playlist, the oldest at the bottom. The home tape has a cassette icon — the same one as the site's favicon — in the bottom-left corner. That icon marks the site's editorialized tapes; it's as if I signed them.

I built what I think is a fun dynamic around the songs coming in and out of the playlist. By Friday the home playlist is finished, or closed, or complete: over the week the videos reveal themselves one by one, and on Friday the week's playlist is revealed in full. Every video of the week follows some theme I pick, which creates a game between the editor (me) and the visitor: "can they guess this week's theme?". On Fridays I create editorial tapes with the week's playlist, for the record. Even when the home page changes, the history of the tapes remains — not without some curatorial effort.

community tapes

Community tapes are tapes saved on my servers. Technically they aren't on a server, they're in a spreadsheet, just like the home tape and the editorial tapes. I consider this type more fragile than editorial tapes and more robust than the home tape: they don't change constantly, but a community tape is easier to delete than an editorial one. They carry a "little people" icon in the bottom-left corner.

Community tapes are created out of local tapes: you can choose to publish your tape to the community — no account, no login. Right now we don't check names or the content of the videos in a tape; if YouTube lets it be published, it can go on a tape. Publishing gives you a link and a management code (kept in your browser) that lets you edit or delete it later — lose the code, lose control of that tape. Everything the site remembers about you (local tapes, favorites, tapes you've published) lives only in your browser and no sensitive data is collected; there's an export/import tool in the tape box to back it up or move it to another device — importing merges with what you already have instead of replacing it, and asks you to pick a side if the same tape conflicts between the two.

editorial tapes

Editorial tapes are tapes whose data is saved in a spreadsheet, which the site fetches to assemble them. Technically these tapes have no limit on how many videos they can hold, but playlists with more than 20 videos can cause trouble when remixed — I work around that by publishing editorial tapes with fewer than 20 videos. They carry a cassette icon, like the home tape, in the bottom-left corner of the 3D view.

I consider these the most robust tapes, because deleting them is harder: the data lives in a spreadsheet and anyone can reach them.

tech used

  • HTML5
  • CSS3
  • Vanilla JavaScript
  • YouTube IFrame API
  • YouTube Data API v3
  • Three.js
  • Fuse.js
  • Google Forms
  • Google Sheets (published CSV)
  • Google Apps Script
  • Claude Code

author

Made by Caio Amaral, with help from Claude Code.

caiomga.com

thanks

Thanks to Dr. Kuraxota, Simulador de Demência and Elis for testing the site and sending feedback. Thanks to Red Manance for feedback on tape setlists.

← back to home