`); w.document.close(); } return (

🎧 Rider Jukebox

Queue songs, then tap to open in your music app.

Rider Link

Open

Tip: Print a QR sign for riders with the button above. You can also paste this link into any QR site.

Brand & Tips

setPrefs(p=>({...p, logoText:e.target.value}))} className="w-full border rounded-xl px-3 py-2" />
setPrefs(p=>({...p, logoUrl:e.target.value}))} className="w-full border rounded-xl px-3 py-2" placeholder="https://..." />
setPrefs(p=>({...p, themeHex:e.target.value}))} className="w-full border rounded-xl px-3 py-2" placeholder="#111827" />
setPrefs(p=>({...p, rideName:e.target.value}))} className="w-full border rounded-xl px-3 py-2" placeholder="Candy's Car" />
setPrefs(p=>({...p, tipCashTag:e.target.value}))} className="w-full border rounded-xl px-3 py-2" />
setPrefs(p=>({...p, tipVenmo:e.target.value}))} className="w-full border rounded-xl px-3 py-2" />
setPrefs(p=>({...p, tipNote:e.target.value}))} className="w-full border rounded-xl px-3 py-2" />
setPrefs(p=>({...p, riderRules:e.target.value}))} className="w-full border rounded-xl px-3 py-2" />

Queue ({queue.length})

{queue.length === 0 ? (

No requests yet. Share the Rider Link!

) : (
    {queue.map((item) => (
  • {item.title} {item.artist && — {item.artist}}

    {item.note &&

    “{item.note}”

    }

    Added {new Date(item.addedAt).toLocaleTimeString()} • Votes: {item.votes||0}

  • ))}
)}
); } function App(){ const params = new URLSearchParams(window.location.search); const isGuest = params.get("guest") === "1"; const rideName = params.get("ride") ? decodeURIComponent(params.get("ride")) : undefined; const allowExplicit = params.get("x") === "1"; const [queue, setQueue] = useState(loadQueue()); useEffect(()=>{ saveQueue(queue); }, [queue]); const prefs = loadPrefs(); const handleGuestSubmit = (req) => { const q = [...queue, req]; setQueue(q); saveQueue(q); alert("Request sent! You can close this page."); }; return isGuest ? ( ) : ( ); } const root = ReactDOM.createRoot(document.getElementById("root")); root.render();