I’ve never written a line of code professionally in my life.
No computer science degree, no bootcamp, no side projects on GitHub. Before Level Up, I couldn’t tell you the difference between a frontend and a backend.
The app our scholars use every day? I built it. Using AI. And if your organization has a problem that an app could solve, you could build one too.
What we were working with before.
Before the app, everything ran through email chains, group texts, and a patchwork of tools that sort of worked together if you squinted.
Event details went out via email. RSVPs came back via text. The coach directory lived in a spreadsheet. Coaches and scholars didn’t have access to the full Level Up network - they were isolated.
When we started it was manageable. Messy, but manageable. At 30 scholars and 30 coaches, it wasn’t.
If you’re running a small nonprofit, you probably know this exact feeling. The tools you started with stop scaling long before the mission does.
I didn’t set out to build an app.
I wasn’t trying to solve a crisis. I saw what AI tools could do. Vibe coding was trending and I thought: what if I just tried?
The first version was built with ChatGPT and Visual Studio Code. I’d describe what I wanted, it would generate code, and I’d paste it into the editor.
It would break. I’d paste the error back into ChatGPT. It would suggest a fix. Sometimes it worked. Sometimes it didn’t.
Clunky, time-consuming, and frustrating on the bad days. But I kept going, because every small win taught me something I didn’t know before.
Then the tools got better. And so did I.
The AI tools improved dramatically, even in the span of months. What used to take hours of back-and-forth started taking minutes. Instead of building individual pages, I could work on the entire code base seamlessly.
But I was changing too. I started recognizing patterns in the code. I learned what Firebase does, how React Native works, what Expo is for. Not because I took a course - because I was building something real, and every problem forced me to learn.
The app got rebuilt multiple times. Each version was better than the last. The first version was a PWA (that’s a progressive web app) - meaning available online, not the kind you find in the app store. Basic, functional, got the job done.
Today we’re on native iOS and Android apps built with Expo, powered by Firebase, deployed and live in both app stores - it’s slick.
Getting into the App Store was its own education.
Submitting to Apple and Google Play without a mobile developer is exactly as intimidating as it sounds.
We got rejected. Multiple times.
Apple’s review process is thorough - they flag accessibility gaps, design inconsistencies, and anything that doesn’t meet their human interface guidelines. Google has its own set of requirements around permissions, content policies, and performance standards. Every rejection came with specific feedback, and every round of feedback forced us to improve.
The first submission wasn’t close. By the third or fourth round, we had better accessibility, cleaner navigation, a more polished experience across the board. The app that finally got approved was unrecognizable compared to what we originally submitted.
That process made the product better. But it also proved something I didn’t expect: you don’t need a mobile developer to meet Apple and Google’s standards. You need patience, attention to detail, and the willingness to treat every rejection as a build list.
Worth noting - the Apple Developer Program is free for nonprofits. The door is more open than most people realize.
The result? It’s ours.
If we need a new feature, I build it. No waiting on a contractor’s timeline; no $5,000 change order; no scope creep negotiations. And that’s true for any organization that goes this route - once you build it, you own it. Updates happen on your timeline, not a vendor’s.
What you could build.
Our app handles events and RSVPs, a community directory, a resource library with everything from financial literacy guides to mental wellness exercises, and push notifications. That’s what made sense for us.
Your version would look different. Maybe it’s a client intake tool. Maybe it’s a volunteer coordination app. Maybe it’s a resource hub for the families you serve. The point is, building whatever you need is now within reach.
A couple years ago, this kind of project required a developer or a firm. Today it requires willingness to learn and about $100/month in AI subscriptions.
The learning curve is real.
Building an app with AI is not “type a prompt and get an app.” It’s problem-solving. It’s debugging errors you don’t fully understand. It’s learning concepts you never planned to learn.
There were days I got frustrated - where a simple app feature quickly ate hours of my time. But every one of those hard days made the next build faster. The patterns start repeating. What felt impossible in month one felt routine by month six.
If you’re considering this, know that the hard days are part of the process, not a sign you’re doing it wrong.
The barrier is lower than you think.
The AI coding tools available today are dramatically better than what I started with a year ago. I started with ChatGPT; today I build with Claude Code and GitHub - it’s the best $100/month I spend on our business. The framework is React Native with Expo for builds and Firebase for the backend, all free.
But AI alone isn’t enough - I leaned on YouTube tutorials, developer communities, and free documentation constantly. The resources exist. The entry point is being willing to sit with something you don’t understand until you do. If you get stuck - ask AI - it can guide you.
Let’s be honest - we were never going to hire a development firm. We would have just gone without, and our scholars would still be checking email chains for event details. AI didn’t save us $50,000 - it gave us something we couldn’t afford in the first place. That’s the real opportunity here, not just for us, but for any small organization that’s been going without because the budget never had room.
What our scholars actually use most.
We track content usage across our resource library (that’s a best practice for another day) so we can see what scholars are engaging with most. Among the most-clicked items in the entire app?
Short audio mental wellness exercises.
The most popular is a two-minute walking mindfulness track - something a scholar can pull up between classes when they’re stressed or overwhelmed.
The idea that our scholars have that in their pocket, a couple clicks away - and that having access to it might positively impact their success - is the most rewarding part of any of this.
Here’s what I used to build and ship the Level Up app:
- Claude Code, ChatGPT, GitHub, GSD Repo: AI coding and debugging
- Wispr Flow: voice-to-text for faster input
- Visual Studio Code: code editor
- React / React Native: frontend framework
- Node.js / npm: runtime and package management
- Firebase: database, authentication, hosting, push notifications
- Expo / EAS Build: iOS and Android app builds
- TestFlight: Apple beta testing
- Xcode / iOS Simulator, Android Emulator: local testing
- GitHub: version control and code repository
- Vercel: web hosting
- Google Cloud Console: cloud project management
- Apple Developer / Google Play Console: app store submissions
All free or close to it. (>$300 in subscriptions)
This is the third post in The $0 Department: What Happens When a Nonprofit Stops Hiring and Starts Building. Subscribe to follow the full series.
Level Up Cincinnati empowers first-generation college students through mentorship, scholarships, and professional development. 100% of donations go directly to student programming. Learn more at https://levelupcincinnati.org



