Hosted BAD UI BATTLE at NoA Ignite — a hackathon where teams build deliberately terrible UIs and win crowd votes for the worst. First edition, 19 September 2024. Built the Next.js + Supabase signup and gallery site; entered with a Figma prototype.
Two-hour build, live demos, QR voting in Oslo. Competitive anti-pattern practice — funny in the room, sharpens real design instincts afterward.
BAD UI BATTLE is a one-afternoon hackathon at NoA Ignite where good taste is forbidden — teams build interfaces that technically work but actively fight the user, then demo them live for crowd votes. I hosted the first edition on 19 September 2024 and still competed myself.
Most hackathons reward polish. This one inverts the brief on purpose. It sounds like a joke, and the room treats it like one — until you realise how fast breaking every UX rule teaches you why those rules exist.
Hosting meant more than showing up with a slide deck. I built the signup and gallery site in Next.js with Supabase — registrations, submission uploads, and a public gallery so every awful interface outlives the afternoon. In the room: teams, a two-hour build window, three-minute demos, and QR-code voting at the NoA Ignite office in Oslo.
Event site and gallery: bad-ui-battle-signup.vercel.app
I entered on the same terms as everyone else. Year one was a Figma prototype — UX guidelines treated like a bingo card: mystery navigation, moving targets, hostile confirmations, contrast that fails every check. Screenshots from the session are on this page; every team submission from the hackathon lives in the gallery.
Competitive anti-pattern practice is weirdly effective. When you remove hierarchy and affordance on purpose, you feel discoverability collapse immediately. Designers leave with sharper instincts for real client work — and a shared vocabulary for what not to ship.
We ran it again in November 2025 as BAD UI BATTLE 2.0 — same spirit, higher bar, and my entry moved from Figma to code.