u/TheWalkingFridge

Update: shipped the app you helped me design. A few RN/Expo learnings
▲ 39 r/expo+1 crossposts

Update: shipped the app you helped me design. A few RN/Expo learnings

A few weeks back i posted here asking which design to go with for my weekly challenge app. THANK YOU so much for all the input! I iterated on the branding as per your feedback and released the app.

It's the first time i'm building a RN/Expo app so I wanted to share my findings, frustrations and some of the commands/choices i made.

quick brief: every week the app gives you a small dare. cold showers, talk to a stranger, phone-free mornings, etc. you commit for 7 days and take one polaroid as proof. Over time you build your "Scrapbook" with memories

Project Structure

I ended up going with a typescript monorepo. Simple stuff: bun/hono server, RN client and Tanstack Start webapp. I'm actually quite happy with the setup i did, used a common biome and tsconfig across the board. For sure something that

stack: expo, uniwind (tailwind for rn), zustand (app state) + react query (server state) + sqlite + kvvm (storage)

Was quite happy with this setup, will for sure use it again for my next project. If you want more info, I've documented the setup here.

Expo dev

I had to move away from Expo GO almost immediately as some the packages i use are not supported. Setting up a dev server is quite easy but the Camera doesn't work on simulators!!

Sadly, i bit the bullet and paid 99$ apple dev profile so i can test on my phone. This became the main testing device I used.

Expo builds

Once i had something to show, I pushed it to Test Flight so my fiance/friends can play with the product. I HIGHLY recommend doing this as you get a LOT of feedback early on. There are so many things i didn't see whilst developing, it's crazy man (skill issue too i'm sure).

Initially I used expo's cloud offering to build and submit the app to apple connect. That was a huge pain in my ass.. well over 90m for a build...

I've got a mac so i decided to build locally. It took me like 1-2 hours to setup, but I got a pretty good flow:

  1. First build the project (be sure to set EAS_LOCAL_BUILD_WORKINGDIR as it will fail otherwise)EAS_LOCAL_BUILD_WORKINGDIR=$HOME/eas-build-tmp bunx eas-cli@latest build --local --platform ios --profile production
  2. Submit using the Transporter app - worked perfectly

Takes around 10m e2e using a macbook pro with 16 gigs of ram. Not bad

Apple review was weirdly chill

3 days end to end, fast and friendly. two gotchas worth knowing:

  1. You have to test on ipad even if your app isn't for ipad. when an iphone-only app runs on ipad the screen (ironically) ends up tiny and that's where my layout broke and my review got declined.
  2. You NEED to put your terms of service link in your app store description? Strange cause there's already a field for this, but required. Cause of this my second review failed.

Reviewers also flagged a couple of genuinely nice optimisations for me. cheapest QA pass i've ever had, honestly.

Building solo with claude

Got way better with practice. Mostly about setting up the right context (CLAUDE.md files, splitting work into discrete tasks). still very much learning here - genuinely curious how others are doing it. Lmk if you want my setup.

All i can say is that the impeccable skill did some heavy lifting! - but you still need to rely on your brain. don't just ask it to take YOUR decisions.

u/TheWalkingFridge — 5 days ago