
Building my first solo app was an unforgettable experience that started with a simple phone call. About two weeks before my brother’s wedding, he reached out with a request:
“Remember that video we had people film at our grandparents’ anniversary party when we were kids? Can you do something like that for my wedding?”
At first, I laughed and thought, There’s no way I’m spending the entire wedding running around with a camera. But then the gears in my head started turning, and I realized this challenge could be an opportunity to apply my coding skills in a meaningful way.
My initial idea was to use a laptop to build a simple webpage that could record videos via its webcam—a quick solution leveraging what I’d learned in my coding bootcamp. However, as I thought through the logistics, I hit some major snags:
Most people would probably find it confusing to interact with.
I’ll need to physically set up the laptop in a way that ensures it won’t get damaged or toppled.
At the wedding, I’d end up having to micromanage the entire process.
Clearly, this wasn’t the answer. I needed something more intuitive and self-sufficient.
At the time, I was working with a team on a React Native app, so it hit me—what if I built a simple video recording app for an iPad? I could mount it on a tripod, add kiosk mode to lock it down, and let wedding guests interact with it on their own. The app would only require guests to press one or two buttons to leave their video messages, allowing me to enjoy the wedding stress-free.
Here’s what the app concept looked like:
A live preview on the iPad so guests could see themselves before recording.
Minimal instructions displayed on the screen.
A single button to start and stop the recording.
Most importantly, using an iPad on a stable tripod meant that I wouldn’t have to babysit the setup all night. Perfect!
To bring this vision to life, I used Expo, a framework that simplifies React Native development. If you’ve ever worked with Create React App, getting started with Expo feels very similar. Its documentation is beginner-friendly, and it offers easy access to device-native features—everything I needed for this app.
Using Expo, I was able to integrate essential features like camera functionality and video sharing:
import { Camera, CameraType } from 'expo-camera';
import { shareAsync } from 'expo-sharing';
import * as MediaLibrary from 'expo-media-library';
import Timer from './timer’;(App used Expo 46)
As I tested the app, I realized a few things needed tweaking for it to run seamlessly at the wedding. For instance:
After guests recorded their video, they needed some kind of feedback that their message was successfully captured. To solve this, I displayed a short “Thank You” message, which required them to tap “Done” before resetting. The app needed to automatically return to its default state after each video, ready for the next guest.
These changes might seem small, but they made a big difference in creating a smooth and intuitive experience for everyone using the app.
By the time the wedding rolled around, the app was fully functional and set up on the iPad. The outcome? A series of heartfelt, funny, and meaningful video messages from friends and family that my brother and sister-in-law can cherish forever.
For me, the biggest reward came a year later when someone at the wedding reached out. They were planning an anniversary event for their nonprofit and wanted me to create a similar app for them. That one small project snowballed into an opportunity to build something bigger—and it all started with a simple idea, and a passion for problem-solving.
This project taught me that solving a seemingly small problem can open doors to unexpected opportunities. It also reaffirmed two critical lessons:
Always plan with the end-user in mind. The simpler and more intuitive the experience, the better.
The best solutions don’t just meet the need—they also account for the context, such as avoiding babysitting the app at the event.
If you’ve ever thought about turning a personal idea into a real-world project, know this: You don’t have to wait for the perfect moment or extensive resources. Start where you are. You never know where it might lead.