We made our own Wedding Digital wall using Python with Air Framework

Nov. 1, 2025 by John Rei Enriquez


Last August 2025 I saw a post on PythonPH's Facebook group. There's this newly launched web framework called Air by Daniel Roy Greenfeld and it got me curious...

To be frank since I started Web Development some 9 or 10 years ago, my core tech stack has always been Python/Django/JS. I have never tried building something useful out of any other framework (not even Flask!) until now.

*Note: Air seems to be in a very early stage of development (alpha), so current use is really for experimental and learning purposes :)

I always had this itch of starting personal projects but never had the chance of getting people to actually use it. When I saw that post, we were actually 2 months away from our wedding day and I thought it was a good time to try and build something. I have this new framework to play around with and we will have people gathering together soon. I have 2 months to build something functional (outside of work, of course), so it should be simple but still feature-rich enough to satisfy my own itch.

If you just want a quick preview of our wedding wall: Preview Link

The framework

I learned that Air framework is basically a layer/wrapper for FastAPI which coupled Starlette and Pydantic with it.

Going into this I understand that Air provides its own abstractions and patterns on top of FastAPI/Starlette/Pydantic (which I have never used directly), but Air's higher-level features are its own opinionated layer, and that's okay for now. I can always learn the lower-level FastAPI APIs later.

The project

First thing I thought of was a chat app, but what value would it provide us at our wedding? I want to create something that will actually be useful not just for us but for everyone attending. It took me a day or two until I thought of a digital wall app and my then fiancée agreed, and so it is decided!

A couple of stuff that it should do:

  1. Realtime message updates
  2. Rate limiting messages to prevent spam
  3. QR code (for access)
  4. Random message picker (we chose a couple of random winners with prizes)
  5. Viewing photos individually upon click
  6. Management page for me to create and edit events
  7. *Preview page of wall just for data privacy

Some extra stuff to scratch my own itch:

  1. Presigned URLs
  2. HTMX
  3. AlpineJS

The codebase as it stands is at https://github.com/jrbenriquez/eventsky/

Again here’s the preview page of our actual wedding wall:

Preview Link


Limitations:

I couldn't add autoscaling because I implemented the pub/sub broker in memory. But I found that 1 instance was enough if it was only for one day and a few users.

To be able to add autoscaling, the pub/sub broker will have to be reimplemented to use a shared broker (Redis) instead of using the instance memory

On the day metrics

Request metrics showing 3000+ requests
Memory
cpu

The app handled about 3,000+ requests on the day and it did hold up well. It was pretty cool seeing it work live in front of everyone.

On to the next!


Back to Blog Posts