
Finally, Your Mobile App
in a Weekend
A mobile app used to take months and tens of thousands of euros. Here's how your vibe-coded web app becomes a real iPhone and Android app in a weekend – with agents doing the store paperwork.
The Two-Week
Rule
I had a giddy weekend. I was really, properly pumped. To understand why, you need to know what came right before Pirate Skills.
Pirate Skills just turned ten. In the two years before it, I had my first funded startup, Maple Apps, with my friend and co-founder Arne Horn. Arne had already assembled an agency – a designer and three developers – building native apps for other companies. I pitched them one question: why do we build apps for other people? Why don’t we build our own? We found our first investor and started building our own apps while moving away from the agency. My job was growth, idea validation and running the apps.
We ran a validation machine. Out of roughly 500 ideas, we built 150 landing pages, each with a survey and a waitlist. The rule I managed: no line of code before 1,000 people are on the waitlist, bought with a strict budget on Meta and Google Ads. We didn’t want to build something nobody wanted.
~500
app ideas
150
landing pages with a waitlist
6
apps in the App Store
2
hits, over a million users each
Six of those ideas became apps in the App Store. We killed a lot of darlings. Two of them succeeded, with over a million users each, and hundreds of thousands of people on their newsletters.
When an idea passed, we built only the minimal features we had discovered in the customer development interviews of the validation phase, and expanded from there. The second rule: the first version had to be in the App Store within two weeks. Normally a mobile app takes months. Even our minimal version took a designer and three developers, full time, for roughly two weeks – while they also maintained our other apps. That was an amazing achievement, way beyond the industry standard, earned by years of experience as an app development agency. It was the best mobile app development experience I ever had.
The industry standard
- Months of work
- Tens of thousands of euros
- A team: design, backend, iPhone, Android
Pirate Skills, this weekend
- One weekend, with my kids over
- Me, and a few Claude Code sessions
- iPhone, Android and web from one codebase
The Maple Apps process plus AI inspired me to move on to the next level. But there was always something that felt beyond me. I don’t know why. Of course I thought it was possible with the help of AI. Still, finally doing it for the first time was such an elevating experience.
Since Maple Apps, I’ve built websites. When I wanted Pirate Skills on my phone, I opened the website and asked my iPhone to put an icon on the home screen. That’s not an app, and everybody who has tried it knows it. My kids know it best: they barely ever use a website. Their whole digital life happens in native apps, on an iPad.
So on Friday I took the challenge. Take the core of Pirate Skills and build a real mobile app. Not a web view. Real React Native, installed on my phone.
One More
Door
A week ago I wrote about opening your vault to agents: put the value you provide in one place, and give every visitor a door that fits them – the website, the Captain on the page, MCP for Claude and ChatGPT, API keys and a CLI for agents running on a server.
I didn’t know it yet, but that was the groundwork for this weekend. A phone app is just another visitor who can’t walk up to the counter. It lives outside the building. It needs a door.
The website
login cookie
The Captain
already aboard
MCP
OAuth sign-in
API + CLI
API key
The app
sign-in in the app
new this weekend
The vault
events · registration · the CaptAIn · the knowledge · your wallet
Pirate Skills is built on Next.js, where the front end and the back end sit very close together. A page on the website can simply ask the business logic for what it needs. A phone can’t – it has to call in from outside. So I used the weekend to re-architect: we exposed the functions the app needs through a protected API, and the website and the app now ask the same core. Same rules, same data. A chat you start on your laptop is there on your phone.
The real work for me wasn’t code. It was deciding which parts of pirateskills.com belong in an app, and what its cornerstone is. I started with the no-brainers.
- 1
See what's coming up
Every upcoming Pirate Skills event, signed in or not.
- 2
Sign up and register
An account made inside the app, and a seat saved with one tap.
- 3
Ask the CaptAIn
The chat that knows everything we teach, with the same history as on the website.
Listing the upcoming events and registering for them was the very first version. Then came the chat agent, the CaptAIn – the companion for all the knowledge we share at Pirate Skills. We always planned to make the Captain the heart of the website and never quite did. On a phone it finally fits as the centerpiece.
It’s like having Ben and the knowledge of the Pirate Skills community in your pocket.
Native or
React Native
The biggest decision came before any code. I had a big discussion and watched a lot of YouTube videos, deciding mostly between two routes.
Fully native
Two separate apps, each in the platform's own language.
- iPhone
- Swift, with SwiftUI
- Android
- Kotlin, with Jetpack Compose
- Codebases
- Two, plus the backend
- At Maple Apps
- What we did: one developer each for backend, iPhone, Android
React Native + Expo
our pickOne app in TypeScript that becomes a real native app on both platforms.
- iPhone
- From the same code
- Android
- From the same code
- Web
- A web version of the app, from the same code
- Fits in
- The Next.js repository we already have
At Maple Apps we went fully native, with our own backend. That was also how the three developers split the work: one on the backend, one on iPhone, one on Android. And AI really makes it possible these days to go fully native. If I were building for the iPhone only, I would have considered it.
But Pirate Skills is built on Next.js. Our code already lives in one repository that holds all our apps – developers call it a monorepo. So we could simply add the mobile app to it: the iPhone app, the Android app, and a web version of the app on top. They share one language, TypeScript, one design system, and they all talk to the same API. That had many advantages I wanted to keep, so I went with React Native plus Expo.
One thing to know if you’re weighing the same choice: React Native is not a website in a frame. It draws real native screens. You just write them once. Expo is the toolkit around it that builds, signs and updates the app for both stores.
Into My
Pocket
I had my kids over that weekend, so the time was short. I mostly had Friday afternoon to Saturday afternoon, before they came. Then I spent the time with them, and after I brought them to bed I sat down again. That was it. I didn’t want more, because I wanted to focus on my kids.
So I didn’t sit at the keyboard building. One Claude Code session acted as the control tower: it built nothing itself, kept a live board of the whole project, handed work to other sessions – one for the screens, one for building and releasing the app, one for the API – and brought me only the decisions that were really mine.
Friday afternoon
Groundwork
The plan, the rules, and a project with room for a second app next to the website.
Saturday afternoon
The first screens on my iPhone
Through Expo Go: a live link to the Mac, only on the same Wi-Fi. Not installed yet, but on my phone.
Saturday evening
Sign-up and registration
An account made in the app, and a sheet to save your seat.
Sunday, 00:39
Real events
The app stops showing sample data and lists what is really coming up.
Sunday midday
A real build for a real iPhone
Installed, with its own icon, before Apple has approved our account.
Sunday afternoon
The CaptAIn answers on my phone
The companion for everything we teach, in my pocket. And it remembers, so a conversation can be picked up again.
The control tower had one rule, and it earned it: never pass on another session’s report without checking it. It once found 24 tasks on our Linear board marked done within the same second – before the work behind them existed. Agents are fast. They also report things as finished that aren’t.
The part I enjoyed most surprised me. I thought screen designs were a thing of the past – the old way, where a product manager writes requirements, a designer draws them in Figma and a developer builds them. I thought it was way better to go straight to implementation. Then I saw how easy and fluent it is to design the screens first with Claude Design, inside Claude Code. I was absolutely convinced this is the future for me. And I used the chance to give the whole Pirate Skills brand more of a product look, and less of a typical website.
Welcome, first draft
Welcome, after one round
Events
CaptAIn
Then the part I used to dread: the Apple certificate, signing and provisioning stuff. I’ll use a politer word than I did on the weekend. All of it was handled by agents. Our company account at Apple is still in review, so they found the route that works before Apple says yes: a build signed with my personal Apple ID. It only lasts seven days, and push notifications had to come out of it, because those need the paid account. What I had to do myself fits in one line: plug my iPhone into the Mac, tap Trust, and add my Apple ID in Xcode.
Not everything went smoothly. One night the whole app opened to a black screen – no crash, no error. And every iPhone build failed for a reason nobody would guess: the folder the project lived in had a space in its name. The fix was moving the whole project. After that, the build went through on the first try.
Seeing it in a browser or a simulator is one thing. An installed app on your own phone is something else. The moment it was truly installed on my iPhone, I was in the car with my kids. Christina was driving, we were on the way to a birthday party, and I finally had it. Not a website with an icon. Real React Native, with our icon on my home screen.
All handled by these agents through Claude Code in two days. That was absolutely mind-blowing to me.
For my kids it meant something too. I’m teaching them to vibe code apps, and I wanted to take them along on my own first one. And the phone found what the simulator hid: within an hour of the chat screens shipping, I found two bugs on my own iPhone that no simulator run had shown.
Not in the
Store Yet
To be honest about where we are: the app runs on my phone, but you can’t download it yet. The app stores don’t review anything on a weekend, and a few steps are still ahead.
Done: Built
Events, sign-up and registration, and the CaptAIn.
Done: Running on my own iPhone
As a test build, signed with my personal Apple ID.
Waiting: Developer accounts at Apple and Google
Waiting for approval. I expect it in the next days.
Waiting: Meet every store rule
Make sure the app is fully compliant with Apple's and Google's regulations.
Waiting: The store review
Another couple of days until the app is actually live.
Target: 7 October: test users
Invite the first testers at Vibe Coding Cologne.
Target: Live in the stores
When it's ready – at the latest at Vibe Coding Cologne on 4 November.
I’ll keep you posted as each step lands.
Your
Weekend
In the age of AI you can literally build anything. So the biggest question isn’t whether you can build an app anymore. It’s should you spend the token budget on it? If the answer is yes, this is the order I’d follow.
- 1
Ask whether you should
At Maple Apps the gate was 1,000 sign-ups. Today the gate is your token budget. Build the app your users already ask for, not the one that's fun to build.
- 2
Pick the cornerstone
Two or three no-brainer features, and one reason to open the app every day. For us: events, registration, the CaptAIn.
- 3
Open the vault first
Your app can't reach inside your website. Move the features it needs into functions behind a protected API, so the website and the app ask the same core.
- 4
Draw the screens
Before any code, design the screens with Claude Design and decide what the app looks like. It's faster than you think, and it's where the real decisions happen.
- 5
Let the agents do Apple
Expo, React Native, certificates, signing, the simulator. Hand it to Claude Code. Apply for the store accounts on day one – the review takes longer than the build.
- 6
Put it on your phone
Not a simulator. Your phone, in your pocket, installed like any other app. That's when you know.
Hand this to your coding agent. It won’t build anything until you’ve talked it through together:
I built a web app (for example with Next.js) and I want a real mobile app for iPhone and Android – installed from the store, not a website saved to the home screen.
Before you build anything, help me plan it:
1. Ask me who uses my app and what they come back for. Then help me pick the two or three features the first mobile version needs, and the one that makes people open it every day. Push back if I pick too many.
2. Look at my code and tell me in plain words whether those features can be reached from outside the website today. If not, propose how to move each one into a server function behind a protected API that both the website and the app can use. Show me the plan, don't write it yet.
3. Propose the screens for the first version, one by one, and let me react to each before we move on.
4. Tell me which accounts I need (Apple Developer Program, Google Play Console), what they cost, what I have to do myself (payments, passwords, identity checks), and what you can do for me. Remind me to apply early.
5. Then propose how to build it with Expo and React Native, and how to get a first build onto my own phone as fast as possible.
Ask me your questions one at a time, and wait for my answers before moving on.Want to hold ours? Members test the Pirate Skills app at Vibe Coding Cologne on 7 October, and it’s meant to be public in both stores by the one on 4 November at the latest. If you’d rather build your own with a crew around you, that’s what the Pirate Forge is for; the next Build cohort starts on 30 September. And if React Native still sounds like another language, start with the AI Compass on 23 September.
A mobile app used to mean months of work and tens of thousands of euros. This time it was one weekend, with my kids in the house. Go build yours.
Cheers,
Ben
Ready to Go Deeper?
Don't miss the next Captain's Insight
Join the crew and get fresh perspectives delivered weekly.
Free account. No spam. Unsubscribe anytime.
Questions & Answers
Should I go fully native or use React Native?
Isn't a website saved to the home screen good enough?
Why build an API first instead of just wrapping the website?
What did the agents do, and what did I still have to do?
What do the store accounts cost, and how long do they take?
Why design screens first if an agent can just build them?
Can I download the Pirate Skills app?
Founder from Cologne with 15 years of startup experience across 9 ventures. After helping thousands master growth marketing, Ben learned vibe coding from scratch and launched CaptAIn within three months. He leads the Vibe Coding Cologne community, blending real founder experience with teaching clarity.
