Developing Classifieds Board
Classifieds board is a platform for posting ads about sale/purchase/rental between private individuals or companies. Benchmarks: Avito, OLX, Craigslist. Key features: users post listings themselves, deals happen outside platform (or via integrated payments), platform earns on promotion.
Listing Structure
- Type (selling / buying / renting / looking / services)
- Title, description
- Category + subcategory
- Dynamic attributes (by category: for cars — make/model/year, for real estate — area/floor)
- Price (type: fixed, negotiable, free)
- Photos (up to N)
- Contact data (phone, name, optionally email)
- Location (city / district / map point)
- Active period (30 days, then archive)
Dynamic Attributes
Each category has specific fields. Storage:
CREATE TABLE category_attributes (
id, category_id, name, type ENUM('text', 'number', 'select', 'boolean'),
options JSONB, -- for select: list of options
required BOOLEAN, searchable BOOLEAN
);
CREATE TABLE listing_attributes (
listing_id, attribute_id,
value_text, value_number, value_boolean
);
When creating listing, form is built dynamically based on category attributes.
Geolocation Search
Key feature: "listings near me" or "listings in Moscow, South Butovo".
-- PostGIS: listings within 10 km from point
SELECT l.*, ST_Distance(l.location::geography, $1::geography) AS dist
FROM listings l
WHERE ST_DWithin(l.location::geography, $1::geography, 10000)
AND l.category_id = $2
AND l.status = 'active'
ORDER BY dist;
Built-in Messenger
Buyer contacts seller through internal chat (not phone), so contacts aren't revealed until ready for deal. Chat tied to specific listing: "Your ad 'iPhone 14'". Implementation: WebSocket + PostgreSQL (messages) + Redis (presence).
Listing Moderation
Two approaches:
- Pre-moderation — listing visible only after moderator check. Publication delay, but less spam.
- Post-moderation — listing visible immediately, deleted after complaint. Faster, but fraud risk.
Auto-check: forbidden content detection (drugs, weapons), spam patterns, duplicate listings (same title + phone in last 7 days).
Monetization
- Paid placement: listings in premium categories (auto, real estate) — paid
- VIP bump: listing bumped to top for 24 hours
- Highlighting: listing displayed with color border or badge
- Turbo packages: set of several bumps at discount
Deal Safety
Platform can offer "Safe Deal" (escrow): buyer pays platform → seller ships → buyer confirms receipt → money transferred to seller. Stripe or YooKassa for escrow account.
Timeline
MVP (posting listings, search, filters, photos, contacts): 6–8 weeks. With messenger, geosearch, moderation, monetization: 3–5 months.







