# Feed Broadcast Plan Channels and playlists for feed.aesthetic.computer. --- ## Channels ### 1. KidLisp (live) User-authored generative programs ranked by popularity. | Playlist | Type | Description | |----------|------|-------------| | Top 100 | dynamic | Most-hit $xxx pieces, all authors | | Top @jeffrey | dynamic | Most-hit by @jeffrey | | Top @fifi | dynamic | Most-hit by @fifi | | Colors | static | 151 CSS color names (valid one-line KidLisp) | Source: MongoDB `kidlisp` collection. Updates daily 06:00 UTC. ### 2. Paintings (new) User-created art from AC's drawing tools. | Playlist | Type | Description | |----------|------|-------------| | Recent Paintings | dynamic | Latest 100 paintings | | Top @jeffrey Paintings | dynamic | Jeffrey's art | | Top @fifi Paintings | dynamic | Fifi's art | Source: MongoDB `paintings` collection. Item URL: `https://aesthetic.computer/painting~{code}` CDN: `art-aesthetic-computer.sfo3.digitaloceanspaces.com` ### 3. Mugs (new) Print-on-demand ceramic mugs with spinning mockup previews. | Playlist | Type | Description | |----------|------|-------------| | Recent Mugs | dynamic | Latest mugs across all colors | | @jeffrey's Mugs | dynamic | Jeffrey's mugs | Source: MongoDB `products` collection. Item URL: `https://aesthetic.computer/mug~+{code}` Each mug has a 4-frame animated WebP mockup (front/right/front/left). ### 4. Clocks (new) The `clock` piece is a musical instrument + time display. Users save clock melodies with short codes. Thousands of user-created clocks exist. | Playlist | Type | Description | |----------|------|-------------| | Top Clocks | dynamic | Most-hit saved clocks | | Recent Clocks | dynamic | Newly created clocks | | @jeffrey's Clocks | dynamic | Jeffrey's clock melodies | Source: `/api/store-clock` (or MongoDB collection behind it). Item URL: `https://aesthetic.computer/clock~*{code}` Clock melodies use notepat notation: `ceg` = C major chord, `^cdefg` = struck piano notes, `{sine}cde` = sine wave melody. Each clock shows time + plays its melody on loop. ### 5. Moods (new) Text status updates from users. Short, personal, poetic. | Playlist | Type | Description | |----------|------|-------------| | Moods of the Day | dynamic | Today's moods from all users | | @jeffrey's Moods | dynamic | Jeffrey's thoughts | Source: MongoDB `moods` collection. Item URL: needs a display piece (e.g., `aesthetic.computer/mood-display~@handle~rkey`) or render as text items if DP-1 supports it. API: `/api/mood/moods-of-the-day?list=true` ### 6. Chats (new) Live oscillating display between `chat` and `laer-klokken` pieces -- community conversation in real-time. | Playlist | Type | Description | |----------|------|-------------| | Chat Rooms | static | Alternating: `chat`, `laer-klokken` | `chat` = live multiplayer chat with message history, syntax highlighting `laer-klokken` = "learn the clock" educational chat in warm terracotta theme These are live interactive pieces, not static content. The playlist would cycle between them for ambient community display. ### 7. Instruments (new) Curated parameterized sequences using JavaScript pieces for TV. | Playlist | Type | Description | |----------|------|-------------| | Chords | static | 31 Western chords via `clock` notepat | | Scales | static | Major/minor/modal scales via `clock` | | Drum Patterns | static | Common rhythms via `beat` or `3x3` | Chords moves here from KidLisp channel (it's not actually KidLisp). ### 8. Tapes (new) Session recordings and replays. | Playlist | Type | Description | |----------|------|-------------| | Recent Tapes | dynamic | Latest recordings | | Popular Tapes | dynamic | Most watched | Source: MongoDB `tapes` collection. Already has TV API: `/api/tv/tapes` CDN: `at-blobs-aesthetic-computer.sfo3.digitaloceanspaces.com/tapes/{code}.mp4` --- ## Status All 8 channels are **live** as of 2026.02.20. Updated daily at 06:00 UTC by `silo-update-feed.mjs` on silo via `feed-update.timer`. | Channel | Playlists | Items | Status | |---------|-----------|-------|--------| | KidLisp | 4 | ~400 | Live (Colors static, Chords moved to Instruments) | | Paintings | 3 | ~300 | Live | | Mugs | 1 | ~50 | Live | | Clocks | 2 | ~200 | Live | | Moods | 2 | ~150 | Live | | Chats | 1 | 2 | Live (static) | | Instruments | 1 | 31 | Live (Chords, static) | | Tapes | 1 | ~50 | Live | --- ## Implementation ### Updater Architecture Generalize `silo-update-top100.mjs` into `silo-update-feed.mjs` with a config-driven approach: ```javascript const CHANNELS = [ { slug: 'kidlisp', title: 'KidLisp', collection: 'kidlisp', playlists: [ { slug: 'top-100', handle: null, sort: 'hits', limit: 100 }, { slug: 'top-jeffrey', handle: 'jeffrey', sort: 'hits', limit: 100 }, { slug: 'top-fifi', handle: 'fifi', sort: 'hits', limit: 100 }, ], staticPlaylists: ['colors-id'], itemUrl: (doc) => `https://device.kidlisp.com/$${doc.code}`, }, { slug: 'paintings', title: 'Paintings', collection: 'paintings', playlists: [ { slug: 'recent', handle: null, sort: 'when', limit: 100 }, { slug: 'top-jeffrey', handle: 'jeffrey', sort: 'when', limit: 100 }, { slug: 'top-fifi', handle: 'fifi', sort: 'when', limit: 100 }, ], itemUrl: (doc) => `https://aesthetic.computer/painting~${doc.code}`, }, // ... mugs, clocks, tapes, moods ]; ``` Each channel follows the same lifecycle: 1. Query MongoDB collection 2. Join `@handles` for attribution 3. Build DP-1 playlist items 4. Create/replace playlists via feed API 5. Update channel 6. Delete old playlists ### Update Schedule | Channel | Frequency | Why | |---------|-----------|-----| | KidLisp | Daily 06:00 UTC | High activity | | Paintings | Daily 06:00 UTC | Moderate activity | | Clocks | Daily 06:00 UTC | Moderate activity | | Mugs | Weekly | Low volume | | Tapes | Daily 06:00 UTC | Moderate activity | | Moods | Every 6 hours | Time-sensitive ("of the day") | | Chats | Never (static) | Live pieces, no regeneration | | Instruments | Never (static) | Curated, no regeneration | ### Landing Page The landing page at feed.aesthetic.computer already reads from the API dynamically -- new channels will appear automatically as they're created. Update subtitle from "playlists and channels for KidLisp" to something broader once we have multiple channels. --- ## Summary 8 channels, ~25 playlists, covering all of AC's user-generated content: ``` feed.aesthetic.computer KidLisp [Top 100, Top @jeffrey, Top @fifi, Colors] Paintings [Recent, Top @jeffrey, Top @fifi] Mugs [Recent, @jeffrey's] Clocks [Top, Recent, @jeffrey's] Moods [Of the Day, @jeffrey's] Chats [chat, laer-klokken] Instruments [Chords, Scales, Drums] Tapes [Recent, Popular] ``` --- *Generated 2026.02.20*