Inspiration
Everyone saves movie and TV recs from TikTok. Nobody watches them. I wanted something like the recipe-saving app reci-me, but for all those "you HAVE to watch this" videos. ShowerHacks asked for absurd, so Q'd (said "queued") doesn't just save your recs. It judges you for ignoring them.
Saved from your feed. Judged by us.
What it does
Four tabs: My list, Discover, Save and Court.
- Save from any short video: one box takes a screenshot, a link, a caption, or all three, from TikTok, Instagram Reels, YouTube Shorts, Facebook, Snapchat, X or Threads. Q'd names the app a link came from, and the AI reads the on-screen text and the scene, shows "What we noticed" clues, then says "Found it" or asks "Did you mean A or B?" A link with no clues gets a friendly prompt to add a screenshot or a few words instead of an error.
- My list: real posters, search, and one Filter button that opens genre (8 genres, each with its own theme color), length, To watch / Watched and sort options, with live counts on every chip. Saves stay on your phone after a reload, and every save, removal and swipe can be undone.
- Roast My Watchlist: four levels (Polite, Sassy, Savage, Unhinged). Each roast picks one specific mismatch in your list and is read out loud, with a voice you choose.
- Shame me (opt-in): pass 8 unwatched saves and Q'd stages a fake group-chat takeover, with AI-written replies from your "friends." Nothing is actually sent.
- Discover: a Moviebuff poster shelf, Search by mood, actor or keyword, and Match me, a swipeable deck of 10 posters. Choose Random (wildcards from genres you never save) or Tailored ("Because you saved Hereditary"). Swipe right to Q it.
- Decision Court: two people can't agree on what to watch. Judge Flix, an AI agent, decides what evidence it needs and slams down Exhibits from your watchlist (when you saved it, who recommended it, how badly you wanted it, your viewing history), then reads a verdict aloud citing them by letter. You subpoena the other person with a Share button (WhatsApp, Messages, Telegram, Email or a link), and they enter their name, pick and opening statement from their own phone. The verdict shows up on both phones.
- The sentence: the loser plays Popcorn Panic, catching popcorn in a striped cinema bucket and dodging burnt kernels, and has to hit the score the court demands.
- Bring in your lists: Letterboxd watchlist import, plus honest step-by-step guides for exporting your viewing history from streaming services.
How we built it
I'm an absolute beginner, so I built this in one day by pairing with Claude (Claude Code) and keeping a detailed build log. The demo went through 24 versions.
- A single-page web app (HTML, CSS, JavaScript) published as a Claude artifact, so it opens from a link on any phone.
- AI: Claude, through the artifact's built-in "ask Claude" ability. It handles screenshot-to-title matching (vision), roasts, the group chat, Match me decks, and Judge Flix's evidence gathering and verdicts.
- Multiplayer: the artifact's shared "room" connects both phones for Decision Court.
- Voice and sound: the browser's speech synthesis for the judge and roasts; sound effects (gavel, knocks) generated with the Web Audio API, no sound files.
- Popcorn Panic is drawn on an HTML canvas.
- Movie data and posters from the OMDb API: 100 posters, served as separate full-size and thumbnail files that load only as you scroll.
- Saves are kept in the browser's local storage.
We ran three UX reviews ("coverage reports") during the hackathon, measured the app each time and shipped the fixes:
- The first movie on screen moved from 782 pt down the page to 262 pt, so movies show the moment the app opens.
- The page went from 4.2 MB to 150 KB (28× lighter) and loads in about 381 ms.
- My list went from 51 controls to 24, and every button is at least 44 pt.
- Accessibility: text and buttons pass contrast, the title page works as a proper dialog (Escape closes it, focus returns), and screen readers hear chips like "Horror, 2 titles."
Challenges we ran into
- TikTok links can't be read directly. There's no public API, and unofficial scrapers need login cookies and get blocked as bots. We switched to screenshots, which also made it work for Reels, Shorts and more.
- Streaming services don't share your watchlist. The only way would be asking users for their streaming passwords, which breaks terms of service and is a security disaster. We refused to fake it and built honest export guides instead.
- Posters. They first wouldn't load at all because of sandbox and network allowlists. Then, once built into the page, they made it 4.2 MB. Moving them to separate, lazy-loaded files fixed both.
- Keeping the AI honest: if the AI is unavailable, roasts fall back to pre-written jokes, but screenshot matching shows an error instead of a made-up answer.
Accomplishments that we're proud of
- Going from zero coding experience to a working, multiplayer, AI-powered demo in one day.
- Judge Flix isn't scripted: it chooses its own evidence and cites it by exhibit letter.
- Treating a joke app like a real product: three measured UX reviews, with the numbers to show for it.
What we learned
- Scope ruthlessly: a clickable web demo instead of a native app.
- Platform limits, APIs and terms of service shape a product as much as ideas do.
- Embedding images in a page is convenient but heavy; separate files load lazily and get cached.
- In the real app, the iOS share sheet hands over links from every one of these video apps the same way, so one Share Extension covers them all.
- How to write jokes that land: one specific detail, twist on the last word, never explain it.
What's next for Q'd
- Put the personality up front: a "Tonight" card with a roast line, Match me and Take it to Court, and a "Pick your fighter" poster picker in Court.
- The real iPhone app (React Native with Expo, Android later), with TMDB for live movie data and where-to-stream info.
- Sign in with Apple, Google or email, and saves synced across devices.
- "Watch now" buttons that open the right streaming app.
- Friends, "see more like this," more genre mini games, and a sister app for books.
- "Hey Siri, what should we watch?" A Siri Shortcut you can talk to that picks from your watchlist and tells you why.
- Schedule a watch. Put a movie night on your Apple, Google or Outlook calendar and send invites from the app.
- Brutal reviews on save. When you add a title, Q'd finds the funniest bad review of it online and uses it to roast you.
Honest limits of the demo: movie details and streaming info are demo data or AI best guesses, "Watch now" doesn't open a streaming app yet, saves live only on the phone you used, and it's a web page, not an App Store app yet.
Built With
- canvas
- claude
- claude-code
- css3
- html5
- javascript
- localstorage
- omdb-api
- web-audio-api
- web-speech-api
Log in or sign up for Devpost to join the conversation.