# The AI-Powered Classifieds Stack That Posts in Seconds

> Source: <https://dev.to/slawekluzny/the-ai-powered-classifieds-stack-that-posts-in-seconds-4dd8>
> Published: 2026-06-02 23:21:28+00:00

#
The AI-Powered Classifieds Stack That Posts in Seconds

Users can upload a photo to [24ad.info](https://24ad.info). AI assists with the listing details.

The ad goes live before any manual steps are complete. Here's how the stack works.

##
The Pipeline

###
1. Vision Processing (OpenRouter + Gemini 2.5 Flash)

When you upload photos:

Key observations:

- Processes images quickly
- Handles mixed content
- Price suggestions draw on available data

###
2. Category Assignment

The system first tries keyword matching. If uncertain, it queries the classification options.

Two clever bits:

-
**Dormant category reactivation** - Instead of creating duplicate categories, it finds and revives inactive ones
-
**Custom field generation** - For categories like Cars, AI suggests relevant fields

###
3. Multilingual Output

Using the same call flow, translations are generated.

The response lands in our `locales/`

directory with i18n keys.

##
The Stack That Makes It Possible

###
Frontend

-
**React 19 + Vite 7** - For the instant form updates
-
**shadcn/ui** - Pre-built components with Tailwind
-
**wouter v3** - Lightweight routing (no React Router bloat)

Critical UX details:

- File upload starts analysis during selection
- Price/category suggestions appear as editable previews
- Location auto-fills from browser geolocation or IP

###
Backend

-
**tRPC v11** - Keeps frontend/backend types in sync
-
**Drizzle ORM** - For type-safe MySQL queries
-
**Express 4** - Handles the traffic types:
- User requests (API/SSR)
- Googlebot HTML injection
- Health checks (
`/api/system-health`

)

###
Infrastructure

-
**Caddy v2** - Wildcard subdomains with HSTS
-
**PM2 cluster mode with 4 instances** - load-balanced
-
**MariaDB** - Heavily indexed for search (title, location, price)

##
Pain Points We Solved

###
1. AI Latency

Initial versions waited for all AI steps sequentially. Now:

-
**Parallel processing** - Fire all AI requests simultaneously
-
**Fallback caching** - Common items use template descriptions if needed

###
2. Location Handling

Early users saw unexpected placement. Fixed by:

-
**Subdomain locking** - Forces location based on subdomain
-
**Clear labels** - Shows target country

###
3. Spam Protection

Current defenses include:

-
**AI content check** - Flags suspicious patterns
-
**IP/email blacklist** - Shared across country subdomains
-
**Stripe verification** - Premium ads require validated payment

##
The Admin Toolkit

Moderators get bulk tools plus:

-
**AI banner rotator** - Generates event-specific graphics
-
**Health monitor** - Checks subsystems including font rendering and upload permissions

##
Performance

Median ad creation time is low. Category handling is accurate.

##
Lessons Learned

**AI isn't magic** - Pricing suggestions benefit from additional rules.

**Condition detection** - The AI spots visible details in photos.

**Speed matters** - The entire process must fit within user attention.

Try it yourself: [24ad.info](https://24ad.info).
