Coin 0
Back
ArtAlert Case Study Header Image
ArtAlert

Building a tool to never miss limited cultural venue spots

The Problem

Events like Open House unlock access to extraordinary places that are normally closed to the public, but there's a catch: spots are extremely limited and fill up within minutes of becoming available.

I kept missing opportunities simply because I wasn't refreshing the right page at the right time.

So I did what most people do at first: I started obsessively checking multiple booking pages, and it quickly became obvious this wasn't sustainable.

There had to be a better way.

That's when I decided to build ArtAlert: an automated system that monitors these venues for me and sends an email the moment a spot becomes available.

ArtAlert Thumbnail

Open House event spots

The Process

Version 1 - A basic scraper

I started with the simplest possible version: a script that checks a single venue page and tells me whether any slots are available.

My initial version worked perfectly... once.
I could run it manually, get results, and that was it. But spots don't appear on a predictable schedule.


Version 2 - Automation with cron

I set up a cron job to run this script every 15 minutes. Now the system was truly autonomous.

Once the core system was working, scaling was simple.

Want to monitor more places? Add more URLs

The core problem was solved.

Or so I thought.

Once the script was running nonstop, a new issue appeared. If a venue had one available slot, I didn't get one email. I got the same email every 15 minutes.

My inbox was flooded.

ArtAlert Email mockup

ArtAlert email notification example


Version 3 - Solving notification spam

I needed the system to "remember" what it had already notified me about.

I implemented a simple persistence layer.

Every time the system sends a notification, it records the venue URL, date, and time. Before sending a new notification, it checks if it has been sent before.

This way, each unique time slot only triggers one email.



The Solution

By this point, ArtAlert had quietly become exactly what I needed, able to:

The entire system runs locally on my computer using a cron job, making it simple, reliable, and cost-free.

What I took away

Lessons Learned

  • Start simple, iterate based on real use: my first version just scraped and printed results. Each improvement was driven by an actual problem, not a hypothetical one. This iterative approach kept the project manageable.
  • Cut the noise: As a non-developer, I assumed I'd need cloud server and a whole backend setup, but I didn't need any complex infrastructure. A simple script + cron on a laptop works perfectly.

Product design geek?

If product design, UX, consumer and social apps gets you excited, drop me a line. DM me on X (@VandEffe) or email valentina.vf.ferretti@gmail.com.

Let's connect and talk shop!