Hoydoon
A location-driven real-estate marketplace on iOS and Android.
- Role
- Mobile Engineer
- Context
- Quorvix, client product
- Timeline
- Jul 2024 to Jan 2026
- Platforms
- iOS, Android
- Status

Overview
Hoydoon connects people who want to buy or rent property with listings and the agents behind them, in Nigeria and Somalia. Users browse on a map, filter by type, bedrooms and price, save favourites, leave reviews and message agents directly.
The app speaks English, Somali and Arabic, takes payments through Paystack and Waafi depending on the market, verifies users before they list, and is published on the App Store and Google Play.
My role
I built the mobile app in React Native at Quorvix and wrote the large majority of its commits: listings and listing creation, map discovery, realtime chat, push notifications, payments, localisation, reviews, favourites and authentication, and I handled the store releases.
The challenge
A property search is only as good as its sense of place, and a marketplace is only as good as its conversations. The map has to stay readable when many listings share a location, and chat has to feel instant on phones that keep going to sleep.
- Many listings can share the exact same coordinates.
- Chat messages must appear instantly and exactly once.
- Two markets with different payment providers and languages.
Architecture
React Native app
Built by me
Maps and location
Third party
Realtime client
Built by me
Listings, chat and payments API
Built by the team
Engineering challenges
Chat messages that appear once
- problem
- Messages were duplicating in conversations, and it took many rounds of fixes to pin down.
- constraint
- A sent message should show immediately, before the server confirms it, but the server also broadcasts the saved message back to the room.
- approach
- Each outgoing message gets a temporary ID and shows as sending. When the server confirms it, the local copy is replaced by the server’s version using that ID, and socket listeners are removed when a chat screen closes so no handler runs twice.
- result
- Messages appear instantly and exactly once, even after leaving and re-entering a chat.
A map that stays readable
- problem
- Listings in the same building or estate stacked on top of each other as one unreadable marker.
- constraint
- Every listing still needs to be reachable from the map.
- approach
- Listings are grouped by coordinates into a single marker showing a count. Tapping a single listing opens it; tapping a group opens a list of what is there. Results load page by page as the user explores, and the user’s location is shown with a radius around it.
- result
- Dense areas stay legible, and no listing is hidden behind another.
One app, two markets
- problem
- Hoydoon serves Nigeria and Somalia.
- constraint
- Each market has its own payment provider and its own languages.
- approach
- Payments route through Paystack or Waafi depending on the user’s market, and every string goes through i18next with English, Somali and Arabic translations.
- result
- One codebase and one release serve both markets.
Outcome
iOS + Android
published on both stores
3
languages: English, Somali, Arabic
2
markets with their own payment providers
