Most movie trackers are dreadful at horror. Dreadfuls wants a penny for your frights, and it keeps score.

Dreadfuls is a mobile app for horror fans to track, rate, and celebrate the genre they love. Where general-purpose platforms like Letterboxd treat horror as one genre among many, Dreadfuls is built exclusively for it, with a rating system designed around what actually matters to horror viewers: a precise decimal score paired with dedicated subcategory ratings for Scariness, Story, and Rewatchability.

The app grew out of a personal tradition: every October, my wife and I watch one horror movie per night, organized into themed marathons. Over the years, we realized no existing tool captured how horror fans actually engage with the genre: the seasonal rituals, the curated marathons, the debates over whether a film is scary versus simply good. Dreadfuls turns that experience into a product, complete with custom marathon scheduling, personal archives and watchlists, and shareable rating cards built for social.

Horror is one of the most passionate, community-driven fandoms in film, yet it's underserved by generic tracking tools. Dreadfuls gives that audience a home: a place where the genre isn't a filter, it's the whole point.

Role: Founder · Product Designer

Built With AI: Claude · Claude Code · Recraft · Ideogram · Quiver · Adobe Firefly

Live: dreadfuls.app (sign-up site) · app.dreadfuls.app (closed October test)

The Dreadfuls page for Hush: backdrop and poster, 2016, 82 minutes, directed by Mike Flanagan, a Rate it button, and where to watch it free or streaming.
The Dreadfuls home screen: tonight's marathon film, Longlegs, night 14 of 31; recently rated films with their scores; and trending horror this week.
Rating Oddity in Dreadfuls: after Loved it, the app asks which you liked more, Oddity or Get Out, with a Too close to call option.

Origin

First conversation: · Written down: September 13, 2026

Dreadfuls started as a conversation on May 3, 2026, and stayed conversations until September: seven of them, May 3 through September 1. Four months of arguing with myself about how horror should be rated, with nothing built.

On September 13 I turned all of it into a single markdown file: every flow, every section, every page, with the decisions and the reasons behind them. It is the source of truth, and everything gets built from it, so the thinking and the build never drift apart. It is why a rename, a palette repair, and a whole rating model could land in one week without losing the thread.

Mobbin through MCP jump-started the components. The subcategory row came from looking at how Tripadvisor and foodpanda ask a question before they show a scale, rather than inventing a pattern people would have to learn.

The source of truth file for Dreadfuls: its opening lines beside a table of all twenty sections with line counts and status markers reading LOCKED, RULED, PENDING, and REFERENCE.
605 lines, 20 sections, and a status marker on each one.

The Sign-Up Site

Live since: · dreadfuls.app ↗

dreadfuls.app is where people sign up to test. It went live two days before the October marathon started.

The phone on it isn't a mockup. It's the app's real Rate flow, built from the same code, so you can rate a movie before you ever sign up. The first version was an old, hand-copied flow, and I caught it. Now it can't fall behind.

“Why I made it” shows last October's actual sheet, Ana's scores and mine. And there's a jump scare at the end, with the skull from my logo.

The dreadfuls.app home page on a desktop: the headline Help me build Dreadfuls over a dark wall of horror movie posters, a Join the test group button, and an October 2026 calendar with night 1 marked by a skull and Saw as the first film.
The first screen of dreadfuls.app.

Dreadfuls

Build Log

What I built, where AI came in, and what I threw away. Newest first.

Day 18 2 entries

  1. Share a rating as an image

    Two Dreadfuls share cards for The Exorcist, side by side. Story: Daniel rated on Dreadfuls at the top, the poster with an 8.9 score stamp on its corner, the title and 1973, and Scariness 5/5, Story 5/5, and Rewatch 4/5 along the bottom. Square: the same poster and stamp on the left, with the title, year, and the three answers listed on the right, and dreadfuls.app in the corner.
    Story or square, exactly as the app draws them.
    What I Built
    After you rate a movie, you can share it. The card shows the poster, your score, and your answers. Share it, save it, or copy it, as a story or a square. It's also on the film page and in a swipe in Your Horror.
    Where AI Came In
    Claude drew the card as an image the phone can share, and moved the top line below where Instagram puts your username.
    What I Threw Away
    Links. A row for Threads, X, WhatsApp, and Messages got built and pulled. “I only want the image to be shareable at the moment.”
  2. A LinkedIn comment changed the rating screen

    Before and Now, side by side, for Oddity rated 9.0. Before: ghosts, masks, and repeat arrows that grow from small to large across each row. Now: Scariness, Story, and Rewatch each with five same-size icon buttons, the pick filled solid, a plain word under it (Very scary, Great, Probably), and n/5 beside each name.
    Same three questions. One icon each, and the pick says what it means.
    What I Built
    Ryan commented on my subcategories post. Some of the icons didn't translate, especially rewatch. He was right. The icons got bigger to show "more," and a bigger repeat arrow doesn't mean anything. Now each question uses one icon, five times. Your pick is solid, it says what you picked in plain words, and it saves as a number out of 5.
    Where AI Came In
    Claude built five versions of the screen in a day, so I could try each one on my phone.
    What I Threw Away
    The growing icons. And Ryan's slider. “I've never been a big fan of sliders.” I don't think they say what they mean. His point was right, though, so I kept that part.

Day 17 1 entry

  1. The film page got three new doors

    The poster, Dead Meat, and A24, all from one film page.
    What I Built
    Three things in one week. Tap the poster to see it full screen, with the title as a real header. "Covered on Dead Meat" opens their Kill Count episode for that movie; 458 movies are matched. And "From A24" sits under the title. 13 horror studios get their own page, and search finds them, even if you type "bloomhouse."
    Where AI Came In
    Claude matched Dead Meat's whole Kill Count playlist to the right movies. TMDB doesn't list who released a movie, so it pulled A24, Neon, and IFC Midnight's films from Wikidata.
    What I Threw Away
    Every other studio. TMDB lists every company on a movie, so only 13 hand-picked horror studios show.

Day 16 1 entry

  1. A tie is an answer too

    Two Dreadfuls screens side by side. Left, labeled Too close to call: Oddity and Get Out posters under Which did you like more?, with a Too close to call button below. Right, labeled Tied: the score 9.0, the line Tied with Get Out, and a ranked list with Oddity and Get Out both at 9.0.
    One tap on Too close to call, and the score lands right beside the other movie.
    What I Built
    Rating works by comparing. Is this movie better or worse than one you've already rated? But sometimes two movies are just too close to call. Before, a tie asked you another question anyway. Now a tie ends the compares. You go straight to the details, and the score says "Tied with" the other movie.
    Where AI Came In
    Claude made the change and checked that a tie never moves your score.
    What I Threw Away
    The extra question after a tie. If you can't pick between two movies, a third won't help.

Day 15 1 entry

  1. The whole screen could be dragged sideways

    A phone screenshot of the Dreadfuls Your Horror screen dragged sideways: the title, the Archive, Shelves and Watchlist tabs, and the Yours and Found tabs all shifted right, with an empty strip down the left and Watchlist cut off at the right edge.
    Everything shifted right, and the Watchlist tab cut off.
    What I Built
    On the Shelves screen I could grab the page and drag it sideways, like it wasn't attached to anything. That's not how it should work. The page should only go up and down. The rows of posters still slide sideways on their own, because that's what they're for.
    Where AI Came In
    Claude found the cause: the part of the app that scrolls was only told how to go up and down, so the iPhone let it move every direction. It locked it to up and down, checked the poster rows still reached the edge, and it went live the same night.
    What I Threw Away
    Fixing just the Shelves screen. The cause was in the frame every screen sits in, so one change fixed all of them.

Day 14 3 entries

  1. Feedback goes through the app, not my inbox

    The reminder email: the Dreadfuls skull coin, the heading Hey! Hope you're enjoying Dreadfuls, a highlighted line asking people to rate at least 5 movies, three questions as bullets, and an Open Dreadfuls button.
    The reminder that went out Thursday at 6 PM.
    What I Built
    I sent a reminder to 15 testers asking them to rate at least 5 movies, then tell me three things: did the score feel right, was anything confusing or annoying, and would you keep using it after October. My first draft said to reply to the email. I changed it to the Send Daniel a note button in the app, because that's where the ratings happen and the note tells me exactly what screen they were on. I left out anyone who'd already opened the app that week, and the four people who signed up two days before.
    Where AI Came In
    Claude wrote the send and scheduled each email for 6 PM. It also checked whether notes email me. They already did, since September 30. We tested it instead of building it again.
    What I Threw Away
    Reply-to-this-email as the way to give feedback. Also, sending all 15 at once: Resend turned away 5 of them for going too fast, so those went again. Four people on the list opened the app within an hour.
    Next
    Read the notes as they come in.
  2. A tester's Google account wasn't the one she signed up with

    The Dreadfuls sign-in screen on a phone: the wordmark, Continue with Google, an email field with Email me a code, and a line at the bottom reading Use the email you signed up with on dreadfuls.app. If you use Google, it has to be that same address.
    The line at the bottom is new.
    What I Built
    A tester couldn't get into her account. The logs showed she tried Continue with Google twice and got turned away both times. Her Google account isn't the email she signed up with on the website, and the tester list only knows that one. The sign-in screen never told anybody that. Now it says to use the email you signed up with on dreadfuls.app, and if Google gets turned away, it says why.
    Where AI Came In
    Claude read the sign-in logs and found both of her tries in a couple of minutes. I wouldn't have known where to look.
    What I Threw Away
    The old error message. It told her nothing, so she had no way to fix it herself. She got in the night the reminder email went out.
  3. Search finds the people, not just the movies

    Type a name, get the person, then their films.
    What I Built
    You couldn't search for a director or an actor, only a movie title. Now you can type Flanagan and Mike Flanagan shows up above the films, with his photo and Director under his name. Tap him and you get his page. It shows up to three people, and only people known for horror. I also asked whether documentaries belong in the ratings. They do if they're scary. A documentary about horror movies doesn't count.
    Where AI Came In
    Claude built the search and the filter. I checked it by typing names I know.
    What I Threw Away
    The first filter. It let in a TMDB entry called Halloween Gore Store and anybody whose last name was Saw. Now every word you type has to be a whole word in the person's name, and they need a photo and a real following. The rows also started out as tall as a movie poster, which left big gaps, so they're square now.

Day 13 2 entries

  1. Two guesses failed, so the phone measured itself

    Three crops of the bottom of the Dreadfuls app on an iPhone, stacked: the tab bar with a dark strip under it, then the tab bar with its labels cut off, then the tab bar reaching the bottom edge with Home, Search, Rate, Your Horror, and Marathon all visible.
    The strip, the labels cut off, then fixed.
    What I Built
    On my phone, the bottom nav didn't go all the way to the bottom. There was a dark strip under it. I want it to fill the whole phone, no matter what phone you're on. The first fix didn't change anything. The second one cut the labels off the nav. Oh man. The third one worked, and it looks good to me.
    Where AI Came In
    Claude can't test the home-screen app, so I was the test. I sent a screenshot after every deploy. After the second miss, the app started recording what my phone reports: 932 points of screen, and iOS only gives the app 873. That's exactly the status bar.
    What I Threw Away
    Two fixes that were guesses. The third one came from my phone's real numbers. Making the page that tall also meant pulling down dragged the whole app, so I stopped the page itself from bouncing.
    Next
    Every tester's phone now reports its size, so the next layout bug starts with numbers.
  2. A fix for one sheet hid the button on every other

    A tester's phone screenshot of the Save Evil Dead Burn to sheet: a checked Watchlist row and a New shelf row, with only a thin green sliver of the save button showing above the bottom nav.
    The green sliver is the button. The nav was sitting on top of it.
    What I Built
    A friend who's testing texted me a screenshot. When they saved a movie to their watchlist, the button at the bottom of the sheet was under the nav. I was seeing it too, and I'm pretty sure a bunch of other people were dealing with it. The sheet needs to obviously sit on top of the nav. So now every sheet does, everywhere. I put an announcement on Home saying it's fixed, and announcements only last 24 hours now. The first one was still up five days into the marathon.
    Where AI Came In
    Claude traced it back to a fix from 1 October. I'd asked for the nav to sit above the marathon walkthrough so the Rate button didn't get cut in half. That fix put it above every sheet in the app.
    What I Threw Away
    That 1 October fix. It solved one screen and broke all the others, and nobody noticed for four days. A tester did.
    Next
    A reminder email Thursday for people who signed up and haven't opened the app.

Day 12 1 entry

  1. The home-screen app couldn't stay signed in, so sign-in became a code

    The Dreadfuls sign-in screen on a phone: the wordmark, the line Sign in so your ratings are yours, on any phone you pick up, a Continue with Google button, an email field, and an Email me a code button, with a note that October is a closed test.
    One code, typed into the app itself, and you're signed in for good.
    What I Built
    I don't want to sign in, ever. I want to add Dreadfuls to my home screen and be signed in every time I tap it. That wasn't happening. iPhone gives the home-screen app its own storage, separate from Safari. The sign-in link in the email always opens in Safari, so the home-screen app never got signed in. Now the email has a 6-digit code too, and you type it into the app itself. You do it once, and it stays signed in.
    Where AI Came In
    Claude found out why it kept signing me out, built the code screen, and updated both sign-in emails in Supabase. I tested it on my phone, which is the part it can't do.
    What I Threw Away
    The link as the only way in. It still works in Safari, it just isn't the main way anymore. Then I couldn't paste the code: I could copy it, but it wouldn't paste into Dreadfuls. The field kept only the first 8 characters, and those were the invisible spaces copied from around the code. Fixed the same night.
    Next
    See if testers actually stay signed in.

Day 11 1 entry

  1. The marathon is real, and anyone can swap any night

    Swapping night 22 for Hush. Recorded 9 October.
    What I Built
    dreadfuls.app is live, a sign-up page for the October test group. The rating demo on it is the app's real Rate flow. “Why I made it” shows last October's actual sheet, Ana's scores and mine, with the three questions a sheet can't ask left empty. There's a jump scare at the end, with the skull from my logo. In the app, the marathon is real now: 31 nights, and everyone who signs up is in it. Swap is back on every night. And there's a button to put Dreadfuls on your home screen.
    Where AI Came In
    I asked “Why isn't the flow the new one we've determined for how the rating works?” Claude had hand-copied an old version of the Rate flow onto the site. Now the site builds that phone from the app's own code, so it can't fall behind again. It also wrote the SQL for the marathon, and I ran it from my phone.
    What I Threw Away
    Swap, for five days, without anyone noticing. It left the marathon screen in a redesign on the 24th, and nothing ever sent you back to it. I feel like we talked about it, but we never did. It's back now, and it pulls from your own shelves. I also cut the moving poster wall on the site. With the calendar animating too, it was too much.
    Next
    Send the link to friends.

Day 10 1 entry

  1. One question per screen, and the redesign ate what I'd approved

    The whole rating, one question at a time. Recorded 9 October.
    What I Built
    Rating is one question per screen now, the same flow for onboarding and the Rate tab. How was it, which did you like more, how scary was it, would you tell a friend, and then your score in tenths. Saving doesn't make you wait. A +1 pops up over Your Horror when it lands. And there's a VHS tear when you pick a movie to rate.
    Where AI Came In
    An accessibility pass on the whole app, fixed the same morning. Focus follows each question, the headings are real headings, the contrast went up, and the targets got bigger. I asked whether we'd run one yet, and we hadn't.
    What I Threw Away
    Most of a redesign, twice. I said the details screen had a lot of cards, and it came back with every card gone. Everything was small, and the note field was missing. “What happened to everything that we designed before?” Same with links. I said stop underlining things, and everything turned into a button. There are things that can live just as text. So now the rule is: fix the part I name, and keep what I already approved. I also cut the VHS tear from everywhere but picking a movie. We saw it a little too often.
    Next
    The website, so people can sign up.

Day 9 1 entry

  1. I tested onboarding as a brand-new user, and it froze on me

    The Dreadfuls rating screen for The Exorcist on a phone: the poster, the title, the question How was it?, and three skulls labeled Loved it, It was fine, and Not for me, with their score ranges underneath.
    The skulls are the buttons, with their ranges right under them.
    What I Built
    Onboarding, rebuilt. You pick three movies you've seen from a grid of 24 horror movies people actually know, then you rate them. The skulls are the buttons now, and each one reacts: a hop, a shrug, or a head shake. There's a warning before your last swap. The app went live at app.dreadfuls.app. And October got 22 of its 31 nights.
    Where AI Came In
    I'd been saying “we have to remember this” for days, and I couldn't remember any of it. So Claude pulled every loose end into one list. Then I went through onboarding on my phone as if I'd never seen the app, and every problem I hit went on that list or got fixed.
    What I Threw Away
    Rating 24 movies to get in. That's a lot. I'm thinking three is enough to start. I also cut lines that break onto a second line with one word hanging. I hate orphans, especially when they could easily not be. Rewrite it so it fits on one line.
    Next
    One question per screen for the whole rating flow.

Day 8 1 entry

  1. Every poster is one size now, and the exceptions have rules

    The Dreadfuls home screen on a phone: a Continue Marathon card with a small Longlegs poster, then Recently Watched with large posters for Smile, Midsommar, and The Conjuring beside their scores.
    The standard poster, and one of the written exceptions: the marathon card keeps a small one.
    What I Built
    Sample data on every screen, so I could actually see what they look like. One poster size everywhere, with the exceptions written down: grids, the hero, the marathon card, and lists you scan. A to Z letters in the archive. Swipe to remove from the watchlist. And my Google Sheet came in: 52 movies I'd already scored. I also started the running list for October.
    Where AI Came In
    I wasn't at my desk, so the import had to run from my phone. Claude turned my sheet into one SQL paste and matched every movie to TMDB first. Four needed a hand. “Us” had matched a 2025 movie with the same name, and “The Ring” had matched Fellowship of the Ring.
    What I Threw Away
    The “5 to finish” button and the imported ratings row on Your Horror. I didn't need them right now. I also cut the Top 10 turning into a side scroll just because its posters got bigger. Same size doesn't mean it has to scroll sideways. It went back to a list.
    Next
    Go through onboarding as a brand-new user.

Day 7 1 entry

  1. Nothing I rated had ever been saved

    The Your Horror screen on a phone: Archive, Shelves, and Watchlist tabs, sorted by Recent, with Candyman at 9.5, Sinister at 9.4, and Scream at 9.2, each beside its poster.
    Your Horror, in three tabs.
    What I Built
    The film page, rebuilt twice. I love movie posters, so the poster's a real highlight now, with a still from the film across the top. I'm not trying to steal Letterboxd, but I really like how they do theirs. Where to watch is split into free, subscription, and rent or buy. Your Horror became three tabs: Archive, Shelves, and Watchlist. And franchises track themselves, with a bar that shows how much of one you've finished.
    Where AI Came In
    While Claude wired the film page to real data, it found out the ratings table had never been written to. The Rate screen said “Saved.” and kept nothing. Then it found the same mistake three more times. The film page, the rating list, and the marathon row were all reading sample numbers that sat right next to real ones. I rated Longlegs to check, and it finally stuck.
    What I Threw Away
    A fancier word for shelves. I asked if there was something from the penny dreadful days, like whatever people carried them in. Shelves won, and I think that's the right call. I also cut the franchise screen saying Longlegs was part of a collection of one. If there's only one movie, it's not a franchise.
    Next
    Fill every screen with sample data so I can judge them properly.

Day 6 1 entry

  1. The date square turns into a skull, slow enough to see it happen

    Each night you pick turns into a skull. Recorded 9 October.
    What I Built
    The marathon screen, finally. The calendar stays put while the nights scroll under it. A progress bar shows what I've watched and what's left, with a number on each end. There's a Today button to jump back to tonight. And when you pick a night, its square turns into a skull. That one was my idea, and I'll admit it was a little crazy.
    Where AI Came In
    Claude built the morph, and I tested it on my phone. Then it rebuilt it. And rebuilt it again. I kept saying the same thing: “It's a jump and not more of a transform.” So I sent it morphicons.com, which had a square turning into a skull, and said that's what I mean.
    What I Threw Away
    Four versions of that morph. Too round, then too wide, then too fast, then still too fast. I wanted to “see the outline drag into the skull outline,” and it took a whole afternoon to get there. I also cut the Rate button off every row. It was too much, and tapping the poster already gets you to the rating. And tonight stopped being orange, because orange is the warning color.
    Next
    The film page.

Day 5 1 entry

  1. Real posters showed me everything that was quietly wrong

    A recording of the Dreadfuls marathon screen: tapping October 18 opens its row, tapping Swap opens search, typing the wailing and picking it returns to night 18, which now reads The Wailing instead of Martyrs.
    Swapping a night you will not get to, without touching anybody else’s calendar.
    What I Built
    A search that treats finding a film as a disambiguation problem, a film screen filled by one request (runtime, director, cast, where to watch, trailer), a marathon month that finally shows which nights are spoken for with the schedule under it, and a note field so a rating can carry a sentence in my own words.
    Where AI Came In
    Where it earned its keep was measuring things I was only squinting at. I said the gap around the Rate button looked uneven; it measured six pixels above and sixteen at the sides, and the cause was two circles that did not share a centre. I said a rank badge read like part of the score; it read eight shipped ranked lists and found that every one of them separates those two numbers by distance, not by styling.
    What I Threw Away
    Four versions of a rank badge, in one night. Bright, then dark and floating, then moved down beside the score, then back in the corner with the colour given up. Almost everything I threw away tonight had been wrong since the day it was written and was invisible until the art became real: a film grain that was never showing inside the app, five poster boxes that were not 2:3 and were quietly cropping the art by different amounts, a badge whose character changed depending on how dark the poster behind it was.
    Next
    Wire the real ratings, and send the link to the testers.

Day 4 1 entry

  1. Everything was connected, and one wrong account nearly got baked in

    The Dreadfuls account screen on a phone: the heading You, a display name field reading Daniel Glaze, and the line Signed in as uxbydg@gmail.com above a Sign out button.
    The first real sign-in. The name came from Google, the row came from the database.
    What I Built
    All of the plumbing, proven rather than assumed. Supabase live with the invite list refusing an address that is not on it. Google sign-in working end to end, which is the screenshot: signed in, with the display name written by the database trigger on the way through. A TMDB key, and search against it returning real films with real posters.
    Where AI Came In
    Claude drove the consoles while I watched, which is how I caught that it had started creating the Google project under the wrong one of my accounts. I stopped it before the project existed. Moving a cloud project between accounts afterwards is miserable, and that was a thirty-second save.
    What I Threw Away
    The plan to leave Google sign-in in testing mode. Testing mode means every tester has to be added by hand in a second console, and anyone I miss gets bounced by Google before my app ever sees them, so my own friendly “you are not on the list yet” message never fires. Getting out of testing mode turned out to need a privacy policy, which nobody had planned and which now exists and is load-bearing.
    Next
    Make the screens worth the plumbing.

Day 3 1 entry

  1. Two doors in, and the app still runs with no keys at all

    The Dreadfuls sign-in screen: the wordmark, a Continue with Google button, the word or, an email field with a Send me a link button, and a line saying October is a closed test.
    The two doors, and the line that tells you it is a closed test.
    What I Built
    The database: ten tables, row level security on every one, and sign-in through both Google and an emailed link. Two doors and not one, because the testers are ten to twenty-five people I know personally and some of them will not hand over a Google account. A tester who cannot get in produces no ratings at all.
    Where AI Came In
    The schema was Claude’s call, made from my direction and reviewed by me, and that is the honest version. I said what October had to do; it shaped the tables and argued for one decision I would not have thought to make: a rating is not a child of a marathon night. It sits at the top level with an optional reference to one. Get that backwards and every film rated outside October is an orphan, and Your Horror becomes a query across a calendar.
    What I Threw Away
    The assumption that the app needs an account to run at all. With no keys in the environment it behaves exactly as it did the week before: every screen reachable, sample data, no sign-in. That is what keeps the published prototype working for anyone I send the link to. One codebase, two states, and which one you are in is readable rather than guessed.
    Next
    Turn the keys on and prove the gate actually refuses somebody.

Day 2 1 entry

  1. The drawings became an app, and the phone stopped lying to me

    The Dreadfuls home screen on 16 September: a Continue Marathon card for Longlegs, a Your Top 10 row that scrolls sideways, and Recently Watched. Every poster is a single letter in a dark box.
    16 September, run from the commit itself. Every poster is a letter in a box.
    What I Built
    React, TypeScript, Vite and SCSS modules, the five-tab bar with Rate breaking the top edge, and five real screens: Home, Rate, Marathon, Movie Detail and Launch. The rating flow is the whole ruled algorithm now, not a picture of one: the range, the binary-search placement, the like-with-like subgenre preference, the caps per band, the recommendation nudge, the plus or minus a tenth, and the three subcategories that explain a score without moving it. Routes I have not built yet name the block that will fill them and its date, so an empty app reads as scaffolding instead of as broken.
    Where AI Came In
    Claude Code turned the mockups into real components while I judged them at phone size. The judgement I kept for myself was scale: the mockups were drawn inside a 250px fake phone with 8.5px labels, so I copied the layout and re-set every type size by hand at 393px. It also caught a bug I would have shipped: the score in the header sat at 9.0 through three comparisons while the real number had moved to 8.1, because the animation was reading a stale value.
    What I Threw Away
    Letting anyone make their own marathon. My words that day were “I don’t necessarily want them to create their own marathons, I want it to be a very specific thing.” So testers get one October, read only, and they rate its films. What it taught me is that a cut can make a build cheaper in two places at once: it removed a whole authoring screen, and it killed the delete confirmation that was going to sit under it. I also cut Storybook out of the stack the same day. It is a good tool and there was no week to spend on it.
    Next
    Supabase, so a rating belongs to somebody.

Day 1 4 entries

  1. The logo is a worn penny with a skull hiding a D

    The Dreadfuls logo in aquamarine on a dark background: a worn coin with beaded teeth inside the rim and a skull in profile whose face forms the left edge of a capital D, shown large and at three small sizes.
    Big, then at 64, 32, and 16 pixels.
    What I Built
    The logo, which I worked on alongside the app. Penny dreadfuls were cheap, sensational horror stories sold in the 1800s for a penny, so the mark is a worn penny. Inside it is a skull in profile, and its face is also the left side of a capital D. The first versions had DREADFULS and ONE PENNY around the rim so it would read as a coin. Where it landed: the words are off, the rim keeps its wear, the skull is bigger so it fills the coin, and the beaded teeth stay around the inside edge.
    Where AI Came In
    I ran prompts through Recraft, Ideogram, Quiver, and Adobe Firefly and picked the direction from what came back. I stopped giving them a design reference, because it was hurting their ideas. Claude handled the cleanup on the file: thinning the rim, taking the words off, and resizing the skull.
    What I Threw Away
    The words around the rim. They were there to make it look like a penny, but shrunk down you couldn’t read any of the letters, and they crowded the logo and made it too busy. Also the D in a circle, which looked like a letter in a ring, not a penny; an inner circle, since real pennies don’t have one; and teeth that looked like gear teeth. Penny teeth are separate little beads inside the rim.
    Next
    Make the D read more like the dome of a skull, with a softer, less sharp inside edge. And fix the rim: worn pennies get bent and flattened, not chunks missing.
  2. You don’t type your score, you earn it

    Two app screens side by side: a head to head comparison between two films, and a rating summary reading 7.5 ranked 31 of 96 above three subcategory sliders.
    The rating flow as it stood that afternoon: the comparison, then the score it produced.
    What I Built
    The rating flow. First, how was it: loved it, it was fine, or not for me. That sets a starting score. Then a few quick questions, which one did you like more, against movies you’ve already rated, and the score moves up or down live with every answer. If it lands on a 6.8 and it’s really more of a 7.1, you can nudge it. Then Scariness, Story, and Rewatchability, each a whole step with a word that says what that step means.
    Where AI Came In
    Claude built it as a working prototype I could tap through, so I could feel where it broke instead of reading about it. The comparison idea comes from Beli, the app that ranks restaurants.
    What I Threw Away
    Letting people type their own number, which was my original plan. And half steps on the three subcategories. I wanted them for precision, but once every step has its own word, whole steps are enough, and the overall score is where the precision lives.
    Next
    Build the rating flow for real, in React, as the first piece of the app. Still to design: how someone rates their very first movie when there’s nothing to compare it to yet.
  3. Two colors in my palette failed contrast, and the fix is amber, not red

    The Dreadfuls design tokens: seven color swatches with hex values and a contrast table where every pairing passes, beside two cards showing the failing pairings before and after the fix.
    The tokens and contrast table on the left; the two pairings that failed, before and after, on the right.
    What I Built
    Checked every text and background pairing in the palette against WCAG AA. Two failed: the gray text on the teal, and the warning color, which sat so close to the accent that nothing actually looked like a warning. I darkened the teal a little, lightened the gray a little, and made the warning amber.
    Where AI Came In
    Claude ran the contrast math on every pairing at once, so I wasn’t checking them one at a time and missing the ones I didn’t think of.
    What I Threw Away
    A more muted, oxidized version of the palette. It went flat, and you couldn’t tell what mattered on the screen. The original accent pops and pulls your eye to what actually needs it. I also kept red out, at least for now. Horror has a red, retro look, think Stranger Things, and it’s easy to fall straight into it. I wanted to challenge myself to make this feel creepy through good product design instead. I may still use red here and there.
    Next
    Figure out how rating a movie should actually work.
  4. The name was taken, so the whole site had to change

    The Dreadfuls case study hero: the Dreadfuls and FindaFan tabs, the headline, and three iPhone mockups showing the app’s launch, home, and movie detail screens.
    The new name, the new headline, and the new screens.
    What I Built
    Renamed the app from ReelScared to Dreadfuls. reelscared.com is a live horror news site with the matching social handles, so the name was never really available. That meant the whole site had to change, not just a headline: the case study, the homepage card, the mockups, and every place the old name showed up.
    Where AI Came In
    I ran the USPTO search myself. Then I had Claude Code sweep the entire portfolio for the old name. I didn’t want to miss a single instance; someone finding a leftover ReelScared anywhere on my site would have been embarrassing, especially as a senior designer.
    What I Threw Away
    The old headline, “It’s time to get ReelScared.” Honestly, it was better than what replaced it, but the pun only works with the old name.
    Next
    Fix the contrast problems in the color palette.