hunt.rubyconf.at
A treasure hunt across Vienna for RubyConf Austria 2026, where every clue unlocks only near its real place. Now open source, so any conference can run its own.
- Role
- I built it, for the conference I co-organised
- Event
- RubyConf Austria 2026, Vienna, 29 to 31 May 2026: two hunts, 39 clues
- Built with
- Rails 8.1, Hotwire, Tailwind, Solid Queue, PostgreSQL; Kamal or Railway
- Tests
- 419 tests, 89% line coverage
- License
- MIT, Ruby Austria


A conference that spills into the city.
At RubyConf Austria 2026, attendees explored Vienna in teams, solving clues that only make sense where they stand.
The city is the board. Each clue is a riddle about a real place, and it unlocks only when the team is there. Two routes ran across the three days of the conference; one ended at a treasure chest.
What it does.
-
Clues that unlock where they stand.
A team checks its position, and the app answers cold, closer, warm or hot, until it is close enough to claim the clue. The check runs on the server, against the clue’s own location.


Getting closer, then close enough to claim. -
Hints on a cooldown, teams on a leaderboard.
A stuck team can reveal a hint, and the next one waits thirty minutes. Teams share their progress, and a live leaderboard shows every route, so the hunt stays a race to the end.


A revealed hint with its cooldown, and the standings. -
Rebrand it in one file.
Everything about the event, from its name and city to its dates, colour and logo, lives in one file. Hunts and clues are built in the admin or as seed files, and the RubyConf Austria hunts ship as a worked example. It deploys with Kamal or Railway; for a few hundred phones, a small box is enough.
config/conference.yml
# Conference branding — the single place to rebrand the app for your event. # Everything here is safe to change; no code edits needed. conference: name: "RubyConf Austria 2026" short_name: "RubyConf Treasure Hunt" city: "Vienna" dates: "May 29–31, 2026" theme_color: "#e30818" logo_asset: "rubyconf_logo.svg" website_url: "https://rubyconf.at"
-
An admin for the organisers.
Hunts, clues, locations, attendees and teams are managed in one admin, with bulk entry for attendees.
-
A web app you install.
It installs to the home screen as a progressive web app, with an offline page when the signal drops in an old city centre. Clues are checked and claimed online.
-
Tested, and kept that way.
419 tests run with every change, alongside Brakeman, RuboCop and the ERB lint in CI. The public history starts from one fresh commit of the finished platform.
What it shows about how I work.
I build the thing the event needs, run it live for the people in the room, and then make it useful for the next person: documented, configurable in one place, tested, and open. Organising a conference and shipping its software in the same months is the kind of ownership I bring to a team.
The community I bring together
- hunt.rubyconf.atkept online as the reference
- Source on GitHubRuby-Austria/treasure_hunt, MIT
- Why I open-sourced ita note in my brain