ilan_woodward — admin_console /library

> music

// upload · shelve · words · moving pictures
upload_new_track
drop audio here / click to browse
mp3 · m4a · aac · wav · flac · ogg — select several for an EP/album; track order follows filename (01…, 02…)
optional square artwork / click to browse
jpg · png — auto-rendered in the site's dither style
tracks_on_disk
#titleartistinlenops

qr codes: each generates a public link ( /dl/<token> ) that downloads the original file. limit its downloads (1…n) or leave it infinite. the landing page never consumes a use — only the actual download does.

releases — eps & albums
#titletypetracksops

deleting a release deletes its tracks and files. individual songs (edit / qr / delete) are managed in tracks_on_disk above.

lyrics — shown on the /lyrics page
#songshelflinesops
music_videos — dithered on upload (this takes a few minutes)
drop a video here / click to browse
mp4 · mov · m4v · webm · mkv — re-rendered at 480px, 216 colours, dithered
#titlestatuslenops

after upload the video shows as processing… while the server re-renders it; the page checks back automatically until it's ready.

> admin

// inbox · newsletter · gigs · works · spotlight
inbox — messages from the contact page
fromreachmessagewhenops

// [ open ] shows the whole message and marks it read · unread rows are bold

newsletter — write, save, send

// subscribers: …

// none scheduled
optional photograph / click to browse
jpg · png — rendered in the site's dither style

// [ save + test ] (and [ test ] on any saved draft) mails ONLY the test address, subject marked [test] — the real [ send ] is untouched and the draft stays a draft

#subjectcarriesstatusops

// letters go out via brevo as news@ilanwoodward.com — one email per subscriber, each with its own unsubscribe link. [ send ] asks twice. a dropped photo only uploads when you hit [ save draft ] — check the "carries" column says photo before sending.

subscribersinceops
newsletter signup QR code

// this code takes the scanner straight to a signup-only page ( /newsletter ) — one code, reusable forever, no download attached

upcoming_gigs — shown on the library page
datetimevenueplaceeventlinkops
works_pages — other_works (+ sidelined: visuals_sound / written_work)
pagetitlelinkops
spotlight — the tile on the library page

// loading…

// placeholder = the meadow photo · spotlight = new_release! with artwork + a big play button (phones see it above the library)