Released between June 2025 and March 2026, the first since 2021.
Cooking community app · IL · 2023–2026
A Hebrew recipe app: React Native takeover and its web server
I took over a stalled recipe app and its small web server, brought the app in line with store rules and shipped eight iOS releases.
The client is an Israeli cooking community with a Hebrew recipe-sharing app for iOS and Android.
The work came to me in 2023 through a Tel Aviv web and mobile studio. The app had gone two years without updates, and its original contractor had left. I became its only mobile developer and later took over the small web server that runs next to it. Another team owned the app’s API and the studio deployed the server, so the app and the server code were in my hands.
Between June 2025 and March 2026 the app got eight App Store releases, the first since 2021.
Projects
- 2023–2026
Taking over a stalled React Native app
I took over a React Native app on Expo SDK 40 with no iOS release since 2021, phone-only sign-in and store rules it no longer met.
First I moved the store accounts to the owner and got the old app building again. Then I upgraded Expo one version per commit, from 40 to 50. When a step broke the Firebase packages, I pinned them and upgraded them first. I moved navigation from React Navigation v4 to v6 on the working version, before the jump to Expo 54.
I rebuilt sign-in: Google, Apple and Facebook next to the phone code, plus email or phone with a password. I added guest browsing and the account deletion the stores require. For the backend developer I wrote an OpenAPI spec of the sign-in API and checked his endpoints in Postman before wiring them in. Backend bugs went back to him with steps to reproduce.
In QA I ran the old and the new app side by side on two phones. That way every bug was either an upgrade regression, which I fixed, or an old one, which I reported. One build broke the camera on Android 10, and I held it back until it was fixed.
Eight App Store releases went out between June 2025 and March 2026. My releases met the iOS 18 and iOS 26 SDK rules and Android target API 34 and 35.
Stack: React Native, Expo, Firebase, JavaScript
- 2024–2026
Reviving a mobile app’s Node.js web server
The app’s Express web server went down. That broke shared recipe links and the app’s privacy policy link and put the Google Play listing at risk, so I worked on bringing the server back.
I rebuilt the server locally on the same Node version, and that showed two causes: a package no longer supported and an endless rebuild. In 2025, once Node was back on the Windows and IIS host, I updated the code for routes, link previews, logging and store links. I handed over each change as a build for the studio to deploy.
I added the account deletion page both stores require, live since May 2025. For Sign in with Apple I wrote an endpoint that keeps the user’s email and name in MongoDB Atlas and returns them on later sign-ins. A second endpoint removes the record when an account is deleted.
Some errors showed up only on production, and I caught them in the logs after each deploy: a TLS error to MongoDB Atlas, IIS refusing DELETE requests, a POST that hung.
The landing page and the deletion page are live. Sign in with Apple returns the stored name on every sign-in, which was the point Apple’s review raised, and I checked it on production.
Stack: Node.js, Express, MongoDB, JavaScript
A holiday-rental site made fast and fixed on iPad
On iPad the main photo was missing and the home page weighed 13 MB. I found both causes, brought the page down to about 2 MB and removed the need for a cookie banner.
MenuGems: a coming-soon page a first-time owner could run himself
I built an app's coming-soon page from a Sketch design as a WordPress theme, with sign-ups going to MailChimp, and showed the owner how to run it.
ExpertSure & Ecopreneurist: WordPress sites, plugins and a store
Since 2023 I've been the developer of a UK publisher's comparison sites: merged installs, custom plugins, fixes and a domain store.
Contact
Have something similar?
Use the form or message me on LinkedIn.
Already working with me on Upwork? Write there.