Marhaba Syria — Classifieds Marketplace Platform
A Syria-first marketplace for property, cars, jobs and services: web app, admin console and background worker in one TypeScript monorepo.
OverviewWhat this project is
Marhaba Syria is a classifieds marketplace designed for Syria first — property, cars, jobs and services — in Arabic and English.
ContextThe problem
Local classifieds are noisy and hard to trust: duplicate ads, scam messages, little moderation and weak search. The goal is a marketplace with structured listings, real moderation and safe messaging.
ContributionMy role & responsibilities
I defined the product (23 planning documents), the architecture and the data model, and built the platform. I use AI coding agents (Claude Code) heavily on this codebase, working from written specs and acceptance criteria; I review and own every change.
ScopeKey features
- Structured listing forms per category from a shared taxonomy
- Typesense search, saved searches and favourites
- Listing lifecycle: renew, mark sold, auto-expire
- Messaging that flags shared phone numbers and links
- Moderation scoring and a review queue
- OTP sign-in for users, MFA for staff
- Wallet and ledger with payment adapters (sandbox)
SystemArchitecture
apps/web (Next.js, next-intl) · apps/admin (Next.js, MFA) · apps/worker (BullMQ)
packages: auth · db (Drizzle) · search · payments · trust · ui · i18n · observability
PostgreSQL 16 (RLS) · Redis · Typesense · Cloudflare R2 · GitLab CI EngineeringChallenges & solutions
Keeping the marketplace safe without a large moderation team.
A trust package with moderation scoring, a review queue and message scanning for contact details shared too early.
Three apps that must stay consistent.
Shared packages for db, auth, i18n and UI in a Turborepo, with one Drizzle schema and forward-only migrations.
Defence in depth for user data.
PostgreSQL row-level security, atomic OTP verification and strict body limits on webhooks.
StackTech stack
Technology
- TypeScript
- Next.js 15
- React 19
- PostgreSQL 16
- Drizzle ORM
- Redis
- BullMQ
- Typesense
- Cloudflare R2
- Turborepo
Tags
- monorepo
- RLS
- search
- moderation
- in development
NotesAdditional notes
In active development; not publicly launched yet.