Back to work

GazaSouqسوق غزة

I independently built and continue to develop and operate the platform, integrating AI tools and coding agents throughout the development process. · 2026–present · Live

From a local need to a product I build and operate

I built GazaSouq to help people discover products and shops, and to give sellers tools to manage their presence and inventory. Its mobile experience and supporting services are designed for unreliable connectivity and limited mobile data.

I independently develop and operate the project across mobile, web, data, administration, and automation. I use AI tools for research, design, implementation, and testing, while retaining responsibility for engineering decisions and reviewing the results.

~5,300monthly active usersFigures as of 2026-08-08~2,500shopsFigures as of 2026-09-05~230,000listed productsFigures as of 2026-09-05Under 5 MBper 10-minute session in the recorded measurementFigures as of 2026-08-08

The challenge

The marketplace needs to remain useful on weak connections, handle a large catalog, and support buyers, sellers, and administration. Storage, image delivery, search, and service decisions were shaped by data use and operating requirements.

My responsibility

  • Built the mobile apps, public website, backend services, and administration tools.
  • Designed local caching and image delivery around unreliable connectivity and limited data.
  • Built AI-assisted catalog workflows and continue monitoring and improving the live product.

Engineering decisions

Flutter supports Android and iOS. Drift, SQLite, and SQLCipher provide encrypted local data; Supabase and PostgreSQL support shared services and permissions. Cloudflare Workers and R2 handle delivery, while Next.js, Python, Deno, and Gemini support administration and reviewable automation.

FlutterRiverpodPostgreSQLSupabaseNext.jsCloudflare WorkersGeminiBigQuery

GazaSouq demonstrates my ability to connect application decisions with data, services, and operations, and to take responsibility for an integrated product within real user and resource constraints.

What I built

Buyer and Seller Application

Public · live on Android and iOS

Built and operate the Flutter application for Android and iOS.

The application combines product discovery with tools for sellers and shop staff.

The challenge

Keep a large Arabic catalog useful through connection drops and strict data budgets without reducing the buyer or seller workflow.

What I built

  • Built product and shop discovery, search, favorites, messaging, and notifications.
  • Added product management, shop administration, and staff permissions.
  • Implemented encrypted local storage, cache versioning, and progressive image loading to support continued use while limiting data transfer.

Engineering decisions

Flutter and Riverpod support a coherent cross-platform UI; Drift, SQLite, SQLCipher, tiered image variants, and cache versioning make low-data encrypted offline use practical.

FlutterDartRiverpodDriftSQLCipherGoRouterSupabaseFirebase

Marketplace Administration

Internal operations · live

Built and operate the marketplace administration console.

Tools connecting day-to-day marketplace operations to the product and its data.

The challenge

Give one operator safe control over catalog, moderation, content, growth, configuration, and review queues.

What I built

  • Built administration for products, shops, content, reports, notifications, and platform settings.
  • Added review workflows for AI suggestions and potential duplicates.
  • Implemented administrative roles and permissions.

Engineering decisions

Next.js and TypeScript provide a fast web console; Supabase SSR, Zod, TanStack Query, and TanStack Table support protected sessions, validation, server state, and dense operational data.

Next.jsReactTypeScriptSupabase SSRTanStack QueryTanStack TableZodCloudflare

Website and Product Pages

Public web · live

Built the public website and shareable product pages.

Web pages that connect marketplace discovery, product sharing, and app access.

The challenge

Make marketplace inventory discoverable from low-bandwidth browsers, search engines, and shared links while routing users cleanly into the apps.

What I built

  • Built search metadata and links into the app or the appropriate app store.
  • Built category-page and sitemap generation to accommodate the growing catalog.
  • Added product-sharing pages and handling for unavailable products.

Engineering decisions

Static HTML/CSS and Python generation minimize runtime cost; Cloudflare Workers add dynamic product pages and fallbacks at the edge; JSON-LD and generated sitemaps support search discovery.

HTMLCSSJavaScriptPythonCloudflare WorkersSEOJSON-LDGA4

Backend and Data Platform

Production platform · live

Designed and operate the shared data platform and services.

A shared foundation for the mobile apps, website, administration, and automation.

The challenge

Support mobile apps, the website, the admin dashboard, automation, and social media integrations with one secure data model, without duplicating business rules.

What I built

  • Designed the database, permissions, and shared application services.
  • Implemented authentication, real-time updates, and scheduled jobs.
  • Built image processing and integrations with external services.

Engineering decisions

PostgreSQL and Supabase provide relational integrity, RLS, RPCs, Auth, Realtime, scheduled jobs, and Edge Functions in a compact operating model.

PostgreSQLSupabaseRLSPostgRESTDenoEdge FunctionsCloudflare R2BigQuery

Delivery and Request Controls

Production edge · live

Built and operate a Cloudflare Workers gateway.

Selective caching and request controls between applications and the data platform.

The challenge

Reduce repeated data requests and add application-attestation controls for the protected routes and supported application versions.

What I built

  • Cached selected public data to reduce repeated database requests.
  • Added targeted cache invalidation and Firebase App Check controls for covered routes and application versions.
  • Implemented request and error logging for operational visibility.

Engineering decisions

Cloudflare Workers, the Cache API, Web Crypto, and cached Firebase JWKS verification place selective caching and App Check enforcement at the request boundary.

Cloudflare WorkersJavaScriptCache APIWeb CryptoFirebase App CheckPostgRESTWrangler

AI-Assisted Catalog Processing

Internal automation · ongoing

Built tools for importing, processing, and reviewing catalog content.

Automation with controls that make its output inspectable and correctable.

The challenge

Turn noisy marketplace content into structured, deduplicated, searchable catalog data without letting AI publish unchecked changes.

What I built

  • Built content imports and structured product-data workflows.
  • Added image and menu analysis, information suggestions, and similarity detection.
  • Kept AI-generated changes in review workflows before approval.

Engineering decisions

Python handles repeatable batch tooling, Deno fits deployed edge workflows, image hashes supply deterministic similarity signals, and Gemini remains inside human-review queues.

PythonDenoGeminiMCPSupabase Edge FunctionsCloudflare R2Image hashingSearch evaluation

Social Media Platforms and Publishing Automation

Production automation · live

Built social media tools and connected publishing automation to the admin dashboard.

Product search, connecting buyers with sellers, group moderation, and scheduled publishing.

The challenge

Bring product search, seller connections, group moderation, and scheduled publishing together while keeping each group’s settings and tasks independent.

What I built

  • Built a bot for product search, connecting buyers with sellers, group moderation, and scheduled publishing.
  • Persisted each group’s settings, scheduled work, and retry state independently.
  • Connected publishing tools to the admin dashboard to manage activity on social media platforms.

Engineering decisions

TypeScript and grammY cover bot interaction; Cloudflare Durable Objects and SQLite give each chat isolated durable state, alarms, counters, and queue recovery.

TypeScriptgrammYCloudflare WorkersDurable ObjectsSQLiteTelegram Bot APIDenoSupabase