A few months ago, I set a personal goal: build and launch a mobile app using React Native.
I had never touched React Native before. I just wanted to learn something new. I picked an idea that was small and simple enough to execute, and I went for it.
I had built a mobile app before—about 10 years ago using Java—but this was different. I wanted to get a stronger grip on TypeScript, improve my understanding of JavaScript, and actually ship something. No tutorials. No half-finished side projects. Just launch.
What surprised me most? The process wasn’t as intimidating as I expected. The learning curve was real, but manageable. I leaned on AI a few times to help clarify things, especially when types got tricky. I reminded myself: I always figure things out.
There were a few key breakthrough moments:
- Getting the date picker working seamlessly on both Android and iOS.
- Debugging a frustrating issue where text meant to be vertical wasn’t rendering correctly on load.
- Discovering the legend app state library, which helped me better understand stores in Vue.
The hardest part? Building the app for deployment without paying. That part nearly broke me. I thought out of all things, that would be the easiest. If you use their service, it’s easy and straightforward which is what I ended up doing.
It took me about three months, start to finish. I didn’t obsess over perfect architecture or pristine code. The types were a bit messy. My main component could’ve been broken into smaller pieces. But I shipped it. That was the win.
I ended up launching the app, BJJ Belt Log, on the App Store. It helps track your belt progress.
There are a lot of parallels to training in Brazilian Jiu-Jitsu. In BJJ, when you’re tired, your body tells you to quit. But you learn to push through. You develop grit. Same applies here. There were many nights when I wanted to do something else or play video games, but I continued to push.
If you wait until everything’s perfect, you’ll never launch. You just have to start, and keep going.
So here’s my advice:
- Be curious.
- Try something new.
- Don’t wait until the time is right.
- Ship, even if it’s not perfect.
It was a great experience. I learned a lot. And I’d do it again.
If you’ve been on the fence about building something—web, mobile, whatever—just go for it. You’ll surprise yourself.