Skip to content
Finally, Your Mobile App
in a Weekend

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.

  1. ~500

    app ideas

  2. 150

    landing pages with a waitlist

  3. 6

    apps in the App Store

  4. 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

One core. The app is the newest door onto it, not a second product.

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. 1

    See what's coming up

    Every upcoming Pirate Skills event, signed in or not.

  2. 2

    Sign up and register

    An account made inside the app, and a seat saved with one tap.

  3. 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 pick

One 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.

  1. Friday afternoon

    Groundwork

    The plan, the rules, and a project with room for a second app next to the website.

  2. 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.

  3. Saturday evening

    Sign-up and registration

    An account made in the app, and a sheet to save your seat.

  4. Sunday, 00:39

    Real events

    The app stops showing sample data and lists what is really coming up.

  5. Sunday midday

    A real build for a real iPhone

    Installed, with its own icon, before Apple has approved our account.

  6. 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

Screen designs from Claude Design. One round took the welcome screen from three sign-in buttons to one.

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.

00:39 on Sunday: the first time the app showed real events. An early build – the tabs changed that morning, and the blue gear is a developer menu.

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.

  1. Done: Built

    Events, sign-up and registration, and the CaptAIn.

  2. Done: Running on my own iPhone

    As a test build, signed with my personal Apple ID.

  3. Waiting: Developer accounts at Apple and Google

    Waiting for approval. I expect it in the next days.

  4. Waiting: Meet every store rule

    Make sure the app is fully compliant with Apple's and Google's regulations.

  5. Waiting: The store review

    Another couple of days until the app is actually live.

  6. Target: 7 October: test users

    Invite the first testers at Vibe Coding Cologne.

  7. 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. 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. 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. 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. 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. 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. 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?
Fully native means two apps: Swift and SwiftUI for the iPhone, Kotlin and Jetpack Compose for Android. With AI that's realistic today, and for an iPhone-only app I would have considered it. We went with React Native and Expo because Pirate Skills is built on Next.js: one TypeScript codebase for iPhone, Android and a web version, living in the same repository as the website, sharing one design system and one API. React Native still draws real native screens – it isn't a website in a frame.
Isn't a website saved to the home screen good enough?
For a quick shortcut, maybe. But it isn't an app: it's still a website in a frame. A real app is installed from the store and can use what only a phone has – push notifications, the camera, being in your pocket. And for a lot of people, kids especially, the digital life happens in native apps, not in a browser.
Why build an API first instead of just wrapping the website?
Because a phone app can't reach inside your website. In a Next.js app, pages talk to the business logic directly. A phone lives outside the building, so it needs a door: a protected API it can call. Once that exists, the website and the app ask the same core, so the rules, the data and even a chat history are the same on both.
What did the agents do, and what did I still have to do?
The agents set up Expo and React Native, wrote the screens, handled the building, signing and certificates, and ran the app in the simulator. What stayed with me: deciding which features belong in the app and what its cornerstone is, reviewing the screen designs, and the few steps no agent can do – anything that needs my password, a payment, or plugging my own phone into the Mac and tapping Trust.
What do the store accounts cost, and how long do they take?
Apple's Developer Program costs 99 US dollars a year and Google Play a one-time 25 US dollars. The money is the easy part: a company account needs identity checks (at Apple a D-U-N-S number), and a company enrolment can take weeks. Apply on day one, not on the day your app is ready. While Apple reviews, a free Apple ID can already put a test build on your own phone for seven days.
Why design screens first if an agent can just build them?
I thought screen designs were a thing of the past: product manager writes requirements, designer draws in Figma, developer builds. I wanted to go straight to code. Then I saw how easy and fluent it is to draw the screens first with Claude Design, inside Claude Code, and I was convinced. It's where you actually decide what the app is, before any code has to be thrown away.
Can I download the Pirate Skills app?
Not yet. The Apple and Google developer accounts are still waiting for approval; after that come the store rules and the store review, which takes another couple of days. The target: invite test users at Vibe Coding Cologne on 7 October 2026, and go live in the App Store and on Google Play when it's ready – at the latest at Vibe Coding Cologne on 4 November. The first version lists the upcoming events, lets you sign up and register, and brings the CaptAIn to your phone.
Ben Sufiani, The Captain

Ben Sufiani

The Captain

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.