OfertaSuksesi

OfertaSuksesi — Kosovo's Modern Classifieds Platform

A complete platform rebuild — from legacy codebase to a modern, production-grade microservices architecture serving 37,685 active listings, 3,354 users, and instant search via Meilisearch. All on infrastructure under €55/month.

Classifieds / Marketplace2025–2026

Overview

OfertaSuksesi is Kosovo's modern classifieds platform — built from scratch as a microservices architecture with four independent services communicating via REST APIs and Redis pub/sub. The platform serves thousands of users and listings in the Albanian language with instant search, spam protection, company profiles, and built-in monetization.

The challenge was clear: Kosovo's online classifieds space was dominated by outdated platforms with poor user experience, no spam protection, slow search, and limited tools for businesses.

Image

Instant Search with Meilisearch

Users search through thousands of listings with sub-50ms results — with typo tolerance, faceted filtering, and relevance ranking, all in the Albanian language.

Platform in Numbers

0

Active Listings

Real listings from users across Kosovo

0

Registered Users

Growing user base

0

Microservices

Independent deploy and scaling

0

Monthly Cost

100% open-source infrastructure

Tech Stack

Four independent microservices behind Nginx with Cloudflare CDN

Web App: Next.js 15, React 19, Tailwind CSS v4, TypeScript

SSR, PWA, SEO — port 3000

REST API: NestJS 10, Prisma ORM, JWT Authentication

Auth, CRUD, business logic — port 3001

Image Service: NestJS + Sharp

Auto resize, WebP conversion, Cloudflare R2 storage — port 4001

Notification Service: NestJS + Redis

Email queue, retry logic, 28 notification types — port 4002

Database: PostgreSQL 16 + Redis 7 + Meilisearch

Instant typo-tolerant search for Albanian language

DevOps: Docker, Turborepo, Nginx, Cloudflare CDN

Challenges Solved

1. Search Performance

Problem: PostgreSQL full-text search was too slow for real-time filtering across thousands of listings.

Solution: Integrated Meilisearch as a dedicated search engine — instant results with typo tolerance, faceted filtering, and relevance ranking. Sub-50ms response times.

2. Spam & Fraud

Problem: Open platforms attract spam, fake listings, and scammers with no automated detection.

Solution: Built a configurable spam detection engine scoring listings on regex patterns, keyword blacklists, and phone analysis. Suspicious listings auto-queue for review.

3. Image Processing

Problem: Users upload large, unoptimized images causing slow page loads and bandwidth waste.

Solution: Dedicated image service processes every upload through Sharp — generating thumbnail, medium, and full-size WebP variants automatically. Served via CDN subdomain.

4. Monorepo Complexity

Problem: Four services sharing types, components, and templates could easily drift out of sync.

Solution: Turborepo with pnpm workspaces keeps everything unified — shared packages, consistent TypeScript config, and coordinated builds across all services.

Image

Full Admin Dashboard

Non-technical staff manages the entire platform — listing moderation, user management, category configuration, ad management, blog CMS, and data exports.

Features Delivered

Complete platform with tools for users, businesses, and admins

Instant search & filtering

Multi-step listing wizard

Verified company profiles

Monetization system (Featured, Urgent, Premium)

Spam detection engine

Blog CMS & ad management

28 email notification types

JWT auth with access/refresh token rotation

Rate limiting, DOMPurify, Helmet, CORS whitelist

CSV exports & site-wide settings panel

Want to Build a Marketplace?

Whether you need a custom marketplace, SaaS platform, or full-stack web application — we deliver production-grade solutions from database design to deployment.

Full-Stack Development | UI/UX | DevOps | Search | Monetization