Bishola — Car Marketplace & Rental Platform for Syria
Bishola is a marketplace for buying, selling, and renting cars in Syria, with 50K+ downloads and a 4.4/5 rating on Google Play. The platform runs on a NestJS backend that powers iOS and Android apps built with React Native, a Next.js website, and a Next.js admin dashboard. As a co-founder, I lead its engineering: I rebuilt the mobile apps, built the backend and admin dashboard, and run the DevOps and infrastructure.
Technologies Used
Collaboration Details
Project Type
Team Collaboration
My Role
Tech Lead
Team
Bishola
Collaboration Context
Friends/Team
Overview
Bishola (بسهولة) is a marketplace for buying, selling, and renting cars in Syria. One shared backend serves four clients: an iOS app, an Android app, a website, and an admin dashboard. Everything is available in Arabic and English, with full right-to-left support and light, dark, and system themes.
Bishola in Numbers
- 50K+ downloads and a 4.4/5 rating on Google Play
- 10+ app releases since the relaunch in June 2026
- 634 API routes across 112 controllers, documented with Swagger
- 130+ database tables, 13 job queues, and 9 scheduled jobs
- 356 test files (282 backend, 74 mobile app)
- Around 380 permissions for fine-grained admin roles
My Role
I’m a co-founder of Bishola and lead its engineering. I’m currently the main developer across the backend, admin dashboard, mobile apps, and infrastructure.
- Mobile app: Rebuilt the iOS and Android apps from scratch in React Native (New Architecture), replacing the earlier Expo version, and relaunched them in June 2026.
- Backend: Built the NestJS backend with PostgreSQL, Redis, and BullMQ. This includes the listing engine, search, alerts, notifications, statistics, and the AI assistant.
- Admin dashboard: Built the Next.js admin dashboard, which runs content, moderation, analytics, ads, and platform settings.
- DevOps: Set up and run the VPS, Docker, Nginx, SSL, the staging and production environments, deployment workflows, and backups.
Tech Stack
- Backend: NestJS, PostgreSQL, Redis, BullMQ, Swagger
- Mobile: React Native 0.85 (New Architecture), TypeScript, Redux Toolkit / RTK Query, Reanimated 4
- Web: Next.js 15 (website and admin dashboard)
- AI: Google Gemini
- Infrastructure: VPS, Docker, Docker Compose, Nginx, PM2, GitHub Actions, Cloudflare R2
Platform Architecture
- One backend, four clients: The iOS app, Android app, website, and admin dashboard all run on the same API.
- Flexible listing engine: Admins can create new listing types without releasing a new app version. Each type has its own form, filters, and alert form. Older car listings were migrated into this engine.
- Event-driven backend: Background work runs through job queues and scheduled jobs.
- Image pipeline: Photos are converted to WebP and stored on Cloudflare R2 (migrated from Cloudinary). They are watermarked, and the originals are kept in private storage.
- Configurable without releases: Around 330 settings in 14 groups can be changed from the admin dashboard.
For Buyers
- Smart Arabic search: Handles spelling variants, hamza forms, ta marbuta, diacritics, and typos in make and model names.
- Advanced filters: Show how many results each option returns. Also includes sorting, grid or list view, and infinite scroll.
- Interactive map: Grouped pins, preview cards, quick jumps to a governorate or city, “my location”, and directions to the listing.
- Detailed listing pages: A zoomable photo gallery, a specs table, installment plans, and a copyable listing number.
- Contacting sellers: By call or by WhatsApp with a pre-written message. Phone numbers are revealed only on tap, with daily limits, and every reveal is logged.
- Favorites, comparison, and alerts: A compare tray with a “show differences only” switch. Alerts can be created from any search or from similar listings.
- Sellers directory: Search and top sellers. Shared links open in the app if it’s installed, or on the website otherwise.
- Guest mode: Browsing, the map, news, and the AI assistant work without an account. Sign-in is requested only when needed.
For Sellers
- Five-step listing wizard: Titles and descriptions in Arabic and English, prices in USD or SYP, rent per day, week, or month, a map pin, and saved addresses.
- AI-assisted listings: Sellers can create a listing from photos or a voice note. Filled fields show confidence badges, and uncertain ones are confirmed one by one.
- Built-in camera: Multi-shot capture with flash, zoom, focus, grid, timer, and HDR.
- Drafts: Can be resumed later. Resubmission is safe and never creates duplicate listings.
- My Listings: Status tabs, editing, marking as sold, map visibility, and rejection reasons with “Edit & resubmit”.
- Listing statistics: Views, contacts, favorites, and shares over 7 days, 30 days, 90 days, a year, or a custom range.
- Moderation and dealer status: Every listing is reviewed before it goes live. Sellers automatically become dealers after 10 approved listings.
Nibras, the AI Assistant
- Built on Google Gemini: Answers stream in, with follow-up suggestions and listing cards inside the chat.
- Takes actions for the user: Adds to favorites or comparison, creates alerts after confirmation, shows a seller’s contact details, or shows the user’s listing stats.
- “Explain this screen”: Available from a floating button on every screen, plus voice input and a “near me” option.
- Chat history with search: A guest’s chats move to their account after they sign in.
- Cost control: Daily limits and answer caching. Admins can see usage, estimated cost, cache savings, and conversations.
Notifications & Marketing
- Email and push notifications: Welcome messages, listing approval or rejection (with the reason), featured or trending listings, alert matches, and campaigns.
- Actionable notifications: Open the right screen directly and include quick actions (“Save listing”, “Mark as read”). There is also an in-app inbox and an unread badge.
- Marketing campaigns: Run from the admin dashboard, with an audience builder (34 rules), 21 personalization fields, scheduling, test sends, quiet hours, a weekly limit per person, and read and click tracking.
Accounts & Security
- Sign-in options: Email with verification and password reset, Google, and Apple.
- Device sessions: Token rotation, stolen-token detection, and “Sign out of other devices”.
- Admin security: Two-step verification by email on new browsers. Around 380 permissions with custom roles and per-user overrides.
- Platform protection: Rate limiting, bot filtering, and photo watermarking.
- Privacy and compliance: Versioned legal documents in Arabic and English with logged acceptance. Account deletion cleans up user data in the background.
Admin Dashboard
- Analytics: 10 tabs with comparisons to previous periods, plain-language insights, a “needs attention” list, and visitor analytics.
- Moderation tools: Bulk actions, featuring and trending listings, and a view of which fields the AI filled in.
- Listing-type builder: A drag-and-drop form builder with 13 field types and conditional fields. Changes are reviewed before publishing.
- Ads manager: Runs the in-house ad system: placements, 10 formats, bookings, pricing, analytics, and a design-spec PDF for advertisers.
- Content editors: For news, in-app guided tours, legal documents, and notification templates.
- Investor reports: PDFs in Arabic or English that can be emailed automatically every month.
- Operations: 31 one-click maintenance tasks, an audit log, and a push-delivery dashboard.
Mobile App Highlights
- Guided tour: Covers about 30 screens, is written from the admin dashboard, and has a “Replay app guide” option.
- Updates and connectivity: Forced and optional update prompts, and an offline screen that closes itself when the connection returns. A rate-the-app prompt appears at the right moments.
- In-house ads: About 28 placements in image, card, popup, interstitial, and video formats, with view and click tracking.
- Build environments: Separate dev, staging, and production builds with one-command release scripts.
Infrastructure & DevOps
- Containerized deployment: The backend, website, and admin dashboard run in Docker containers on a VPS behind Nginx with SSL. PM2 manages them with memory limits and automatic restarts.
- CI/CD: Six GitHub Actions workflows deploy to staging and production, each with a health check.
- Automation: Scripts for deployments and database backups, plus Postman collections for each environment.
Current Status
Bishola is live in production and used by thousands of people across Syria to list cars for sale and rent. I continue to ship regular updates to the platform and apps.
Project Gallery
Related Projects
CBOT – Autonomous UVC Disinfection Robots Management Platform
Feb 09, 2026
In progressMisk Sens – Scalable SaaS Booking & Services Platform
Feb 09, 2026
CompletedTaj Al-Quran Learning Management System (LMS)
Sep 09, 2025
CompletedElectroDepth – Electronics & Embedded Systems Learning Platform
Jun 12, 2025
Completed