Agent skills · Expo · iOS
Your app, on the App Store.
You built something with Claude Code, Codex or Cursor. It works on your phone. Then come certificates, App Review, payments and a backend that is still on localhost. These skills and guides take you the rest of the way. Need a server? Run it on one cheap box.
Three steps
Not every app needs a server, a paywall or a landing page. Answer a few questions and take only what yours needs. iOS only, for now.
Add the skills to your agent
Claude Code: paste the lines from your cart below. Codex, Cursor, Gemini CLI and others:
npx skills add ggi3201/onebox.Run the plan in your app’s folder
Copy the prompt from your cart. It carries your answers, checks what your app already has, and writes
PLAN.md. See an example.Work down the plan
Skills do the work. Guides cover the clicks only you can make. Stuck? Here is how to get unstuck, or ask me.
The route
Where each part lives, and what carries your app from your Mac to a phone. No backend? Skip the box.
01 · The workbench
Your Mac
Your coding agent runs every skill here.
- Your Expo app’s code
- Xcode, for free local builds
app-store-ready · eas-update · app-store-screenshots · store-listing · draw-app-icon · draw-icon-set · image · video · test-loop · trim-tests · agent-harness · chat-feature · ai-usage-limits · ai-consent · durable-jobs · share-import- build + submitYour Mac builds the app and sends it to TestFlight.expo-local-build · appstore-connect
02 · The gate
Apple
App Store Connect.
- TestFlight
- App Review
- Sign in with Apple
- Store page, privacy answers
- installsTesters install from TestFlight, everyone else from the App Store.
03 · Delivered
The phone
Where your users are.
- Your app, via TestFlight or the store
- Signs in with Apple
api.example.com
ios-preview-build- httpsThe app only ever talks to your API over HTTPS.
04 · The door
Cloudflare
The free plan is enough.
- DNS for example.com
- A tunnel in. No open ports.
- tunnelCloudflare’s tunnel is the one way into the box.expose-service
05 · The box
The box
A mini PC at home, or a €5 VPS. Docker on one machine.
- API, your backend, in Docker
- Postgres, one database per app
- Staging, a second API and database
- Backups, nightly, kept off the box
- Traefik, sends each hostname to its container
- Landing page at
example.com: pricing, privacy policy, support, terms of use. App Store Connect links here, and so does your paywall.
Your Mac sets the box up over SSH. A git push deploys.
box-setup · staging-env
Apple needs a privacy policy and a support page. They live on the landing page.new-landing-page- webhooksRevenueCat tells your API when someone subscribes.
06 · Outside
Outside
Paid per use. All optional.
- RevenueCat: subscriptions
- kie.ai · fal · Replicate: media
What’s in the box
Every skill, grouped by plugin. A skill is a set of instructions your agent follows, like /ship-ios:app-store-ready. You install a plugin, not a skill.The planner tells you which plugins your app needs.
Ship iOS ship-ios
From “works on my phone” to TestFlight and App Review.
9 skills · Your Mac
Ship iOS ship-ios
From “works on my phone” to TestFlight and App Review.
- 01
/ship-ios:app-store-readyTells you why Apple will reject your app, before Apple does. - 02
/ship-ios:expo-local-buildBuilds on your own Mac and sends it to TestFlight. No build credits. - 03
/ship-ios:eas-updateSends a JavaScript fix to phones without a new build or App Review. - 04
/ship-ios:appstore-connectTestFlight builds, testers, groups and subscriptions from the terminal. - 05
/ship-ios:ios-preview-buildA build for your real phone that talks to staging, not production. - 06
/ship-ios:app-store-screenshotsStore images from your real screens, in your app’s own fonts. - 07
/ship-ios:store-listingName, subtitle, keywords and description that search finds, within Apple’s limits. - 08
/ship-ios:draw-app-iconA vector icon that still reads at home-screen size. - 09
/ship-ios:draw-icon-setA set of outline icons that look like one family.
Box box
Backend and sites on one cheap machine. A mini PC at home or a small VPS.
4 skills · Your server
Box box
Backend and sites on one cheap machine. A mini PC at home or a small VPS.
- 01
/box:box-setupTakes a fresh VPS to a safe, working baseline in one go. - 02
/box:expose-servicePuts a service on the internet at your domain, with no open ports. - 03
/box:new-landing-pageA self-hosted landing page, or your Next.js site moved off Vercel. - 04
/box:staging-envA second backend for test branches, with its own database.
Content content
Images and video for the store page, the landing page and social posts.
2 skills · Your Mac
Content content
Images and video for the store page, the landing page and social posts.
- 01
/content:imageGenerate and edit images with kie.ai, fal or Replicate. Look first, pay little, reroll. - 02
/content:videoAnimate an approved still. Chain shots so the cuts disappear.
Dev loop dev
The agent proves its change on the simulator before it says done.
2 skills · Your Mac
Dev loop dev
The agent proves its change on the simulator before it says done.
- 01
/dev:test-loopLint, types, tests, then the simulator. Proof before “done”. - 02
/dev:trim-testsCuts a fifth of your tests and keeps what catches bugs.
App features app-features
An AI chat and agent, cost limits, consent, background jobs and share import, built into your app and API.
6 skills · Your app
App features app-features
An AI chat and agent, cost limits, consent, background jobs and share import, built into your app and API.
- 01
/app-features:agent-harnessAn agent in your API that calls your tools, streams, and proposes instead of acting. - 02
/app-features:chat-featureA chat screen that streams word by word, with Stop, photos and tap-to-apply cards. - 03
/app-features:ai-usage-limitsA monthly budget per user, so one account cannot run up your model bill. - 04
/app-features:ai-consentThe AI consent step App Review asks for, enforced on the server too. - 05
/app-features:durable-jobsSlow work as a background job that survives restarts, with cancel and refunds. - 06
/app-features:share-importShare a page into your app and get a record back, without the model making things up.
Good company
Skills by other people that I use next to these. Not mine. Each has its own install steps and licence.
- ponytail ↗Dietrich GebertStops the agent from overbuilding. The simplest code that works, with safety kept.
- impeccable ↗Paul BakausDesign vocabulary, audits and polish for a landing page or app UI.
- taste-skill ↗LeonxlnxPushes UI away from the generic AI look. Includes a redesign skill for an existing site.
- emil-design-eng ↗Emil KowalskiSmall details that make an interface feel good: motion, timing, polish.
- RevenueCat ai-toolkit ↗RevenueCatRevenueCat's own plugin for the SDK, offerings and the paywall.
- frontend-design ↗AnthropicThe official plugin for distinctive frontends. /plugin install frontend-design@claude-plugins-official
Need a backend? One box is enough.
Many apps need no server at all. If yours does, you don’t need AWS for your first thousand users. One machine runs the API, the database and the landing page. Cloudflare Tunnel puts it on the internet without opening a port. Your Mac builds the app for free. When one box is not enough, you will know, and you will have users to pay for the next one.
Subscriptions you can skip for now
- An App Store upload service (Lance Pro, $40/mo)→ ship-ios skills on your Mac
- A hosting platform (Vercel Pro, $20/mo)→ the box, or Cloudflare Pages for a static site
- A managed database (Supabase Pro or Convex Pro, $25/mo; PlanetScale Postgres from $5/mo)→ Postgres on the box
- A cloud build plan (EAS Starter, $19/mo)→ local builds on your Mac
These are good products, and they save time. Together they cost about $104 a month before you know if anyone wants your app. Test the idea first. Pay for comfort when users make it worth it. Free tiers have limits: Vercel’s is for non-commercial use, Supabase pauses a free project after a week without traffic, and PlanetScale has no free tier.
Receipt · one app with a backend
- A small VPS, or a mini PC you already own€5 / month
- Your domain€10 / year
- Apple Developer Program$99 / year
- Cloudflare DNS and Tunnel€0
- iOS builds on your own Mac€0
- AWS, Kubernetes, a DevOps person— / not needed
Total≈ €14 a month
Apple’s fee spread over 12 months. Your Claude plan not included.
One box needs a little care.
About 15 minutes a month. An agent does the work over SSH with the box skills. You read what it found and say yes.
What it asks of you
- Security updates install themselves. Reboot when the box says a reboot is pending.
- Once a month, and after any change, ask your agent to “check the box”. The check must end with 0 fail.
- Update Traefik, Postgres and your images a few times a year. Read the release notes first.
- Make sure last night’s backup ran. Restore one once, so you know it works.
- Watch the disk. Docker images and logs grow.
When to go further
- One box is one point of failure. If it dies, the app is down until you restore it. At home, a power cut or an internet outage takes it down too.
- Move on when downtime costs you money or trust: a second server, a managed database with point-in-time recovery, and monitoring that wakes you up. Start with free uptime alerts.
- A big app, sensitive data such as health or children’s data, or a team: plan a larger setup from the start, and get advice.
Shipped with these skills
Real apps, built and released with the skills on this page.
I’m Geir-Stian Løkkesveen, based in Norway. I build iOS apps next to a day job, and these skills come from releasing them. I use Claude Code. The skills are plain SKILL.md files, so Codex, Cursor and other agents can use them too.
- FoodieRecipes from any reel, turned into a cook mode.On the App Store ↗
- ThraedA digital closet with AI outfit help.On the App Store ↗
- ChewableThe first one. A fitness app, 2019 onwards.On the App Store ↗
- LiftA strength log that feels native. Built in eight days.In TestFlight
Stuck on the last mile?
I can help you get it live.
I help you get your Expo app onto TestFlight and submitted to App Review. Apple makes the final call on approval. You keep your own Apple account and your own server. I set them up with you and hand them over.
- You write. Send a link to the app or the repo, and where you are stuck.
- I quote. One fixed price for the whole job, before any work starts.
- We ship. I do the work on your accounts, and you get notes on every step.
The first three launches get a reduced price, in return for a short case study.
Write to me