← back

facemash

i'm annoyingly writing this post twice because vercel blobs decided to cosplay as a black hole. dumped all my words in, vibed with it, then realized i couldn’t even properly export the db or my posts. so yeah, rip that version. moved everything to supabase, wired the backend again, and here we are: same story, second take, slightly more feral.

since i was a kid, most of the stuff i build has basically been fanfiction of shit i’ve seen in movies, tv, sci‑fi, or random internet corners that feel too cool to ignore. jarvis was literally “what if that slightly impatient but helpful iron man voice actually existed for normal people”, so i tried to make my own version. half the projects are just me trying to drag fiction into reality and seeing what breaks on the way.

one movie that really embedded itself into my brain is the social network. not even the “billionaire arc” part, just the early chaos. that scene where mark hacks together facemash in one night, scrapes faces, ranks people, crashes harvard’s network, and then the whole campus loses its mind over a stupid hot‑or‑not site. i kept thinking: okay, cool for the movie, but would that actually pull that much attention now? or is it just good editing and trent reznor music.

so after rewatching it, i had this thought: how long would it take me to build facemash today, end to end, with real data? turns out: not very long, because my college did something hilariously dumb. they keep all the batch profile photos on their website, hanging out on the exact same cloudflare endpoint pattern. no auth, no friction, just open‑book stupidity. i asked claude to help me list out the name patterns, it spit those out, and then it was just a tiny python script: iterate over id's, hit the cloudflare url, download, dump everything in a folder. loop that, throw them into an array, fix the filenames, and suddenly i had the full “yearbook dataset” sitting locally.

once the images were there, the actual “facemash” logic was braindead simple. the original used a chess‑style elo rating system, which makes a lot of sense. each image starts with a base rating. you show two random faces, someone picks one, and the winner’s rating goes up while the loser’s goes down according to the elo formula. wire that into a tiny backend, expose an endpoint that returns two candidates, track the scores, and now every tap is basically a micro match. no ML, no deep learning, just a really old ranking idea dressed up as a slightly cursed game.

important note: i never made this public. i’m not trying to get kicked out of college or host a harassment engine. no mass sharing, no leaderboard page(fine, there was a leaderboard page my fucking bad), no open access link. just a small controlled test, because the experiment wasn’t “can i be an asshole on the internet”, it was “will people actually get addicted to this mechanic in 2025 the way they did in the movie”.

answer: yes. absolutely yes. i watched a couple of my friends sit with it and play for like two hours straight. these horny fucks were laser‑focused, just tapping left or right, locked in, roasting, laughing, arguing, but not putting the phone down. no fancy animations, no social graph, just raw “pick one, get another, repeat”. it felt like watching slot machines with faces.

that’s when the second thought hit me: okay, if this dumb mechanic has this much engagement gravity, how would you monetize it without going full villain? the idea that clicked was something like: people pay to play, and people get paid to be ranked.

roughly:

you upload your picture, opt in, verify you’re real, and you’re now in the pool.

players load the app, drop in, say, 100 rupees to get 100 rounds. each round is one matchup.

every time your picture appears in someone’s matchup, you earn around 1 rupee for that appearance.

every time someone plays a round, maybe 0.5 rupees flows to them as a small rebate / “engagement reward” and the rest gets split between only the people whose faces are being ranked and none towards the asshole platform.

suddenly facemash stops being purely “hot or not” and starts looking like a very weird micro‑economy: your face is an asset that can generate cashflow if people keep picking it. if no one picks you, you still get paid for appearances, but the real upside compounds when you consistently win matchups and stay in the high‑elo slice that gets shown more often.

obviously, this is full of ethical landmines. you’re tying attractiveness, validation, and money together in one feedback loop. self‑esteem gets financialized. popularity literally becomes yield. people min‑max their photos, beauty standards get even more algorithmic, and the whole thing can easily tip into dystopia. that’s why i never pushed it beyond that small, private experiment.

but as a system design thought experiment, it’s fascinating:

one trivial ranking algorithm.

one mildly cursed engagement loop.

one payments rail.

and suddenly you’ve built something that looks a bit like a dark mirror of creator economies: instead of “watch this reel, creator gets ad money”, it’s “look at this face, they get paid for your gaze”.

right now, facemash for me is just a story: a 30-min weekend project, a test of how easy it is to recreate something iconic, and a tiny lab for thinking about how attention, validation, and money are way more tightly coupled than they look on the surface. i don’t plan to ship this publicly, and honestly i probably shouldn’t. but as an artifact, it did its job. it reminded me how fast you can go from “that was a cool scene in a movie” to “i rebuilt the whole thing in real life and people are already hooked”.

and maybe that’s the real takeaway: fiction keeps accidentally leaking product blueprints. the only real question is what you choose to actually turn on and what you leave in your local dev environment, where it belongs.

Comments (0)

No comments yet. Be the first!