A five-minute film
How Crashers actually works
Crashers is a phone app that shows free events around Sydney that also serve free food or a free drink. This film follows one morning's run all the way through: the websites it reads, the filters, the judgement call, the single file it produces, and how that file reaches a phone.
4 min 59 s · narrated, no music · download the MP4 · full transcript below
One correction worth making up front
People assume an app like this has a database behind it — Supabase, or something like it. Crashers has none. There is no database, no server of its own, no logins and no accounts. Every event the app knows about lives in a single 251 KB text file in a GitHub repository, and Cloudflare hands that file out unchanged. The film explains why that is a reasonable choice rather than a missing feature.
The seven stages, at a glance
Each stage is a close-up of one box in this chain. The whole thing runs unattended at six each morning on one Windows laptop.
Transcript
The full narration, scene by scene, with the time each one starts.
Crashers
This is Crashers. A phone app that shows you free events around Sydney that also give you free food, or a free drink. Here is exactly how it works. From the websites it reads, to the phone in your hand.
The rule
Crashers only lists an event if four things are true. It costs zero dollars to get in. Food or drink is provided free. Not a cash bar, not food trucks. It's open to the public. And it's in greater Sydney. Everything that follows exists to answer one question. Which events pass all four?
The whole map
Seven stages. Read the websites. Throw away the obvious no's. Have Claude read what's left. Write one data file. Send it to GitHub. Cloudflare copies it across the world. A phone shows it. The whole thing runs on one laptop, at six in the morning, and costs nothing.
Stage one — reading the websites
Stage one. Reading the websites. There's no secret feed, and nobody hands us data. A small program for each website opens its public events page and reads it, the same page you or I could visit. Thirteen are live. Eventbrite, Meetup, Humanitix, the City of Sydney, and nine councils from Mosman out to Penrith. Last run, they returned three thousand, five hundred and eighty three events. Every page is saved to the laptop, so we never ask that website for the same page twice.
Asking permission
It's done politely, and that's deliberate. Every website publishes a little file called robots dot text, saying which robots it welcomes. We read that first. Willoughby Council, TryBooking and Art Guide all say no to us by name, so we leave them alone, even though we could technically take the pages anyway. We wait one to two and a half seconds between pages, we say who we are, and if a site tells us to slow down, we halve our speed for the rest of the night.
Stage two — the cheap filters
Stage two. Throwing away the obvious no's. Too many to think hard about, so four cheap filters run first. Anything with a ticket price, gone. Anything not in the next four weeks, gone. Anything outside the Sydney catchments, gone. Anything listed twice gets merged into one. Then a simple word search looks for phrases like morning tea, canapés, refreshments, sausage sizzle. Three and a half thousand events become three hundred and fifty six worth a closer look.
Stage three — Claude reads them
Stage three. The clever part. Each survivor is handed to Claude, which reads the listing like a person would and answers three questions. Is it genuinely free? Do they actually say food or drink is provided? And if they don't say, how likely is it anyway? Those last two are kept strictly apart. If the listing says it, Claude has to quote the exact sentence. No quote, no claim. That quote is shown to you in the app, so you read what the host said. If the listing says nothing, you get a percentage and a reason instead, clearly labelled a guess.
Stage four — one file
Stage four. Writing the file. One program takes every verdict and builds a single file called events dot json. It throws out seventy events that turned out to cost money after all. Then three small programs stamp on the time and the one line description, and drop anything the calendar has passed. Five hundred and twenty five events become three hundred and thirty five. That file is two hundred and fifty one kilobytes, and it is the entire app's data.
There is no database
Here's the part worth being clear about, because it's the opposite of what most apps do. There is no database. No Supabase. No server, no logins, no accounts. The data is just files in a folder, tracked by Git, the system programmers use to keep a history of their work. For three hundred and thirty five events in a quarter of a megabyte, a database would be more machinery to go wrong, not less.
Stage five — GitHub
Stage five. GitHub. If Git is the history book, GitHub is where that book is kept online. At the end of each morning's run, if the events file changed, the laptop saves the change and pushes it up. GitHub does two jobs here. It's the safe copy, and it's the starting gun.
Stage six — Cloudflare
Stage six. Cloudflare. The moment that file lands on GitHub, Cloudflare notices, picks up the four files that make up the site, and copies them onto its own machines around the world. There's no program running on a server. Cloudflare is simply handing out four files. Open the app in Sydney, and they come from a machine in Sydney. That's why it's instant.
Stage seven — your phone
Stage seven. Your phone. You open the page, it downloads that one events file, and from then on everything happens on the phone. Sorting by nearest, the map, the filters, the saved list. All local. Tap where am I, and your location is used by the phone to sort the list. It's never sent anywhere. And every event links straight out to whoever is hosting it. Crashers never takes a booking. It points.
And again tomorrow
Then it does the whole thing again. At six each morning Windows wakes the laptop and runs the lot, start to finish. If the laptop was off, it runs the moment it's next switched on. And it costs nothing. Free hosting, free storage, and the reading runs on a subscription that's already paid for. Websites in. One file out. A phone that tells you where dinner is.
Where the numbers come from
Every figure in the film and on this site was read off the project itself on
21 September 2026 — the crawl log at
data/logs/refresh-20260921-083424.log, the publish log at
refresh-20260921-113507.log, and the payload
app/local/events.json as it stood that morning. Nothing is
illustrative. The numbers move every day; these are one real day's.