12 Comments
User's avatar
Billsobey's avatar

Really inspiring, interesting read, Jeff! Thank you for sharing. Would love some more detail on the Expo stage and how all of that went.

I’ve basically got a pretty reasonable app working well in Replit and discovered Expo after it was nearly finished (Replit has Expo templates and tutorials which would have made the creation/design part easier to incorporate any Expo requirements, had I known from the outset…).

So I’m now looking to use Expo retrospectively to get it App Store ‘ready’ in a similar way to what you’ve done — seemingly with reasonable ease.

Any advice would be gratefully received before I take the plunge, but I already massively appreciate the detail you’ve already offered here. 🙌

Thanks again.

Expand full comment
Jeff Morhous 🦾's avatar

Oh this is interesting! I’m not sure how it would be using expo/React Native retroactively! Mine was “from scratch” so to speak. Is your app react native just without expo? I think expo made it really easy to get from local build to signed app for the App Store

Expand full comment
Billsobey's avatar

Thanks loads for the reply, Jeff!

I asked the Replit agent your question. Here’s its response 😬:

No, this app is not React Native - it's a Flask web application built with Python. It uses HTML templates, CSS (Bootstrap), and JavaScript for the frontend, with a Python Flask backend and SQLite database.

To turn this into an iPhone app, you have several options:

Option 1: Progressive Web App (PWA)

Add a web app manifest and service worker to the current Flask app

Users can "Add to Home Screen" on iOS

Easiest option, requires minimal changes

Option 2: Hybrid App with Capacitor/Cordova

Wrap the web app in a native container

Access to some native device features

Can be distributed through App Store

Option 3: Convert to React Native + Expo

Complete rewrite of the frontend in React Native

Keep the Flask backend as an API

Most native experience but requires significant development

Option 4: Flutter

Rewrite the entire app in Flutter

Single codebase for iOS and Android

Good performance but complete rebuild required

For your current Flask app, Option 1 (PWA) would be the quickest path to get an iPhone-installable version. The app would work well as a PWA since it's primarily focused on data entry, viewing progress, and charts.

Expand full comment
Jeff Morhous 🦾's avatar

Ah I see! If you want my opinion, option 3 is probably the best but also most time consuming 🥲

Expand full comment
Billsobey's avatar

I was afraid you might say that! Thanks so much for the response. Really appreciate it. I’ll let you know how it goes. 👍

Expand full comment
Jeff Morhous 🦾's avatar

I’d love to hear about it! Good luck!

Expand full comment
Joshua Lum's avatar

Very inspiring! And written very clearly :) thank you

Expand full comment
Jeff Morhous 🦾's avatar

Thanks so much for the kinds words!

Expand full comment
Jenny Ouyang's avatar

Really impressed by how quickly you got through the App Store submission process! I’ve tried similar things with a few different apps, my first was a MacBook app, and figuring out certificates and provisioning profiles was a whole workout (even with help from Cursor).

Expand full comment
Jeff Morhous 🦾's avatar

I’ve had that problem before! Using Expo made this A LOT easier

Expand full comment
Barret Nobel's avatar

Loved this bro 🤜🤛. Opening a whole new world for non-engineers.

Expand full comment
Jeff Morhous 🦾's avatar

Thanks for the feedback! I’m pumped about what these tools are doing for both engineers and non engineers alike 😎

Expand full comment