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:
- Realtime message updates
- Rate limiting messages to prevent spam
- QR code (for access)
- Random message picker (we chose a couple of random winners with prizes)
- Viewing photos individually upon click
- Management page for me to create and edit events
- *Preview page of wall just for data privacy
Some extra stuff to scratch my own itch:
- Presigned URLs
- HTMX
- AlpineJS
The codebase as it stands is at https://github.com/jrbenriquez/eventsky/
Again here’s the preview page of our actual wedding wall:
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
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!