
Fusily
Recipe and meal-planning mobile app for iOS and Android.
- Goal
- Help people plan their week’s meals, buy only what they need, eat something different each time and discover new recipes.
- Result
- Published on the App Store and Google Play, live since 2024.
- Tech stack
- DjangoDRFPostgreSQLReact NativeExpo
Fusily is a full product I build end to end: a React Native / Expo mobile app shipped on iOS and Android, backed by a Django / DRF backend and a PostgreSQL database. You create, share and plan recipes, generate your shopping list, and cut waste by buying only what you need. From the data model to store deployment, every piece — API, authentication, notifications, going to production — is built to last.
The context
I’m a backend developer by trade: I’ve spent most of my career designing APIs and data models. Fusily is the project that took me into mobile, and then into full-stack work. The idea: an app for cooking enthusiasts where you share recipes, discover new ones, plan them for the week and get guided step by step at the stove.
Going fully native would have meant learning Swift and Kotlin, and maintaining two codebases and two release cycles. Working on my own, I chose a single codebase shipped to both iOS and Android.
What I built
Each recipe can hold one or more photos or videos, which you reorder with haptic feedback. The social side (comments, likes, favorites, follows) comes with push notifications: reminders of your planned meals, or a new recipe shared in an area you’re interested in. Authentication tokens are kept in the phone’s secure storage (the iOS Keychain and its Android equivalent), never in plain text.
The app is bilingual, in French and English, and translation goes beyond the interface: recipes and tips written by users are translated automatically. What you type is saved right away in its original language, then a Celery task detects the language and produces the other versions through the Google Translate API, in the background. Comments, which are more ephemeral, stay in their original language.
The stack and why
On mobile, React Native with Expo. Expo’s libraries cover device access (notifications, secure storage, the photo library, haptics), and EAS handles builds with three profiles (development, preview, production), store submission and over-the-air updates. A JavaScript fix can reach production in minutes, without going back through store review.
For UI components, I started with Tamagui and later moved to React Native Paper: every Tamagui update brought its share of regressions, and I was spending more time managing the library than building the product. On the web, I use Next.js and Tailwind CSS rather than one framework for both platforms.
On the server, Django and Django REST Framework on PostgreSQL: my home ground, which let me reuse my API and data-modeling habits while I learned mobile.
Where it stands
Fusily is free and has been on the App Store and Google Play since 2024. I keep maintaining it and adding to it. Several posts on this blog cover what happens behind the scenes, from adopting Expo to translating user-generated content.
