Stu Mason
Stu Mason

Idea to App Store in 4 Hours

Stu Mason4 min read

Built a tide times iOS app and submitted to the App Store in 4 hours. React Native, Expo, Claude Code, and a Coolify API proxy.

Idea to App Store in 4 Hours

Brain dump of how I went from idea to App Store submission in around 4 hours using Claude Code, Coolify, and Expo.

I had an idea for an app. Really I just wanted to get my £99 developer cert back from Apple - it's annual and I've spent 200 quid with nothing to show for it. Been putting it off.

Made a couple things in Swift before. Good to see it work with the simulator - I'm web-based, never created a proper app. Interesting stuff but I kept getting nowhere. Making bits here and there, never actually shipping.

Decided fuck it - I'm making a tide times app for Folkestone. If it does well I could clone it for every seaside town in the UK, get some of that summer money. At the very least claw back my 99.

Started in Swift (by which I mean opened it in Cursor and used Claude Code to write the Swift while I managed the output). Got nowhere. So fucking ugly and hard to make pretty. I don't think the models are especially trained in Swift - constant build errors.

Finally thought fuck it and moved to React Native. Now we're talking. Back to Sonnet knowing exactly what to do.

Had it creating a simple dashboard first, then iterated. Used Expo, which I'm blown away by. The App Store submission process is steeped in red tape, but Expo handles credentials and certs with CLI commands - boom it's done.

Got my first build up, added to TestFlight, on my phone. Decent.

Then I started thinking. I'd dumped the API keys directly into the app. That's not going to scale and will ruin my quota. So I built an Express API proxy - Docker-based, shoved onto my Coolify server at tidetimes-api.stuartmason.co.uk, Redis for caching. Cache lasts 24 hours, perfect for tide times.

Once this was running, I figured why not add more API calls - sunrise/sunset, weather, moon cycles. Thought about events and car parking but those APIs sucked.

So now I have a tiny Express API returning ALL this data without exposing keys, cached for 24 hours, hyper quick. The server does all the data transformation too.

Got Claude to write an API spec, pasted it back into the React Native app, asked it to update the implementation - done in minutes.

Design still sucked. Got reference images from Google and improved the look.

Still missing an icon. Got Sonnet to write a prompt for ChatGPT to create the logo - blue wave with an F. Bit of back and forth with ChatGPT (it kept adding borders and rounded edges) but we got there.

Passed the logo and designs back into Claude Code and it did the work.

For submission I needed a support URL, privacy policy, and marketing page. Also screenshots on iPhone and iPad.

Screenshots: fired up the Expo simulators, scrolled around, took screenshots. Done.

Privacy and support: opened Claude Code inside my personal site and told it what I needed. Delivered really fucking well - made an /apps index, /apps/support, and /apps/tidetimes-folkestone page all looking Apple-y. Pushed that up, 20 minutes max.

Went back through App Store Connect, did all the other red tape, submitted for £1.99.

About 4 hours of work using Claude Code. Something that would have taken me weeks only a few months ago.

We're living in a completely different world now.

I know my way around a server and can handle errors quicker than most, but honestly anyone could do this. It's incredible.

Let's see how it does through submission.

Get the Friday email

What I shipped this week, what I learned, one useful thing.

No spam. Unsubscribe anytime. Privacy policy.