Düzce Biz
Local places, offers and events in one city companion.


- Project
- Our own product
- Our role
- Mobile app · Web dashboards · Backend
- Platforms
- iOS · Android · Web
01 / Behind the product
A real need. A considered solution.
Challenge
Finding a nearby place, checking whether it is open and catching the current offer means bouncing between channels. Businesses, in turn, cannot get their offers in front of the people they want. The product had to carry three sides at once: the user app, a business panel and the admin running the platform.
Approach
One monorepo: an Expo mobile app, business and admin panels on Next.js 16, shared types and Firebase Cloud Functions. Map and list share one discovery flow; places filter by category, distance and open-now status, and the map is constrained to Düzce. Businesses apply from the app and an approval trigger creates the account and profile; the free/premium tier is set from the panel.
Events and announcements are admin-managed only. Server-side triggers and scheduled jobs handle the rest: cleaning expired campaigns, notifying when a favourite is about to close, recalculating ratings on new reviews, and pushing new campaigns and events.
Result
User, business and admin experiences share one Firebase backend; push reaches registered and guest devices alike. Coupons, corporate profiles and favourites live on mobile; application approval, categories and content live in the panel. The app is Turkish-first, shaped around what local businesses actually need.
02 / Inside the product
The experience, on screen.
Open a screen to explore the details.04 images
03 / Scope & details
The details make the experience.
- 01
Map and list-based place discovery
- 02
Category, distance and open-now filters
- 03
Business profiles and reviews
- 04
Offers and events feeds
- 05
Business and administration web dashboards
Technology
INSIDE THE PRODUCT
The engineering behind the interface.
Systems we built and concrete problems we addressed in this project.
From application to business account
A business applies from the app; when the admin approves, the onApplicationApproved trigger creates the account and profile. onBusinessDelete and onUserDocDelete clean up dependent data.
Scheduled jobs
cleanupExpiredCampaigns removes expired campaigns; notifyClosingSoonFavorites alerts when a favourite is about to close; calculateBusinessRating recomputes the rating on every review; new campaigns and events trigger push.
Three surfaces, one schema
The shared/ package keeps the mobile app, business panel and admin panel on the same types; forms use React Hook Form + Zod, the panel Next.js 16 and shadcn/ui.
Your idea could be next.
What could we build for you?
From a first release to a growing platform. Let’s plan the design, development and launch together.
From Türkiye to the US, UK, Australia and everywhere in between.