Dfood
Mobile · 2026
A food delivery app for iOS and Android that finds real restaurants near you, lets you order as a guest, and syncs your saved places and orders through Firebase once you sign in.
- Role
- Solo developer
- Impact
- Usable the moment it opens, with no sign-up and no server to keep running
Challenge
Dfood started out with its own backend for login, menus and push notifications, and keeping that server running was getting expensive for a portfolio project. The point was to show what I can do on mobile, so I wanted the app to stand on its own: real places nearby, no sign-up wall, nothing to host.
Contribution
I took the backend out and rebuilt the app local-first. Restaurants come from OpenStreetMap around your location and menus from TheMealDB. The cart, checkout and orders live on the device, and signing in with Google or Apple turns on Firestore sync. I also built the blur headers and footers the whole design sits on.
Outcome
Anyone can open it and start browsing places near them without an account. Signing in later keeps everything they'd already saved, and there's no server of mine that has to stay up for it to work.
Details
Dfood is a food delivery app built with Expo and React Native. The first version leaned on a custom backend for login, menus and push tokens. I took that out and rebuilt it local-first: it works as soon as it opens, and an account is optional.
Restaurants are real places from OpenStreetMap within 2 km of you, and their menus come from TheMealDB. The cart is a Zustand store saved to AsyncStorage and only holds one restaurant at a time. Checkout, saved addresses with a map pin and reverse geocoding, and order history all run on the device.
Signing in with Google or Apple happens in a bottom sheet rather than a separate screen, and turns on Firestore sync for your profile, favorites, addresses and orders. The look comes from a progressive blur I built with expo-blur and masked views, so content fades under the pinned headers and the checkout bar.

Stack
React Native · Expo · TypeScript · Firebase · Zustand


