fantasyduel

Enter two atproto handles. Each gets turned into a fantasy character — a race, a class, a title, and a signature weapon — with stats pulled from their real public profile: Tweet Strength (post count), Follower Agility (follower/follow ratio), Bio Cunning (profile flair), and Clout Aura (follower count). A narrated, completely made-up battle decides the winner. Same two handles always get the same fight — it's a duel, not a coin flip.

choose your combatants
VS
total powertotal power
how does this work?

Each handle's public profile (app.bsky.actor.getProfile) feeds four stats: Tweet Strength from post count, Follower Agility from the follower/follow ratio, Bio Cunning from bio length and profile polish, Clout Aura from raw follower count. Whichever stat is highest picks a class — a Berserker leads with Strength, a Scout with Agility, a Hedge Wizard with Cunning, a Paladin with Aura. Race, weapon, and title are picked from a seeded roll on the account's own DID, so a character looks the same no matter who they're matched against. The fight itself adds one more seeded roll — Fortune — then narrates five rounds and lets total power (weighted stats + Fortune) decide who wins. The whole thing is seeded off a hash of both DIDs together, so a rematch between the same two handles always plays out the same way.