{"slug": "the-ai-powered-classifieds-stack-that-posts-in-seconds", "title": "The AI-Powered Classifieds Stack That Posts in Seconds", "summary": "24ad.info has deployed an AI-powered classifieds stack that processes photo uploads, generates listing details, and posts ads in seconds. The system uses OpenRouter and Gemini 2.5 Flash for vision processing, assigns categories through keyword matching and AI classification, and produces multilingual output with i18n keys. The stack achieves low median ad creation time with parallel AI requests, fallback caching, and subdomain-based location locking.", "body_md": "#\nThe AI-Powered Classifieds Stack That Posts in Seconds\n\nUsers can upload a photo to [24ad.info](https://24ad.info). AI assists with the listing details.\n\nThe ad goes live before any manual steps are complete. Here's how the stack works.\n\n##\nThe Pipeline\n\n###\n1. Vision Processing (OpenRouter + Gemini 2.5 Flash)\n\nWhen you upload photos:\n\nKey observations:\n\n- Processes images quickly\n- Handles mixed content\n- Price suggestions draw on available data\n\n###\n2. Category Assignment\n\nThe system first tries keyword matching. If uncertain, it queries the classification options.\n\nTwo clever bits:\n\n-\n**Dormant category reactivation** - Instead of creating duplicate categories, it finds and revives inactive ones\n-\n**Custom field generation** - For categories like Cars, AI suggests relevant fields\n\n###\n3. Multilingual Output\n\nUsing the same call flow, translations are generated.\n\nThe response lands in our `locales/`\n\ndirectory with i18n keys.\n\n##\nThe Stack That Makes It Possible\n\n###\nFrontend\n\n-\n**React 19 + Vite 7** - For the instant form updates\n-\n**shadcn/ui** - Pre-built components with Tailwind\n-\n**wouter v3** - Lightweight routing (no React Router bloat)\n\nCritical UX details:\n\n- File upload starts analysis during selection\n- Price/category suggestions appear as editable previews\n- Location auto-fills from browser geolocation or IP\n\n###\nBackend\n\n-\n**tRPC v11** - Keeps frontend/backend types in sync\n-\n**Drizzle ORM** - For type-safe MySQL queries\n-\n**Express 4** - Handles the traffic types:\n- User requests (API/SSR)\n- Googlebot HTML injection\n- Health checks (\n`/api/system-health`\n\n)\n\n###\nInfrastructure\n\n-\n**Caddy v2** - Wildcard subdomains with HSTS\n-\n**PM2 cluster mode with 4 instances** - load-balanced\n-\n**MariaDB** - Heavily indexed for search (title, location, price)\n\n##\nPain Points We Solved\n\n###\n1. AI Latency\n\nInitial versions waited for all AI steps sequentially. Now:\n\n-\n**Parallel processing** - Fire all AI requests simultaneously\n-\n**Fallback caching** - Common items use template descriptions if needed\n\n###\n2. Location Handling\n\nEarly users saw unexpected placement. Fixed by:\n\n-\n**Subdomain locking** - Forces location based on subdomain\n-\n**Clear labels** - Shows target country\n\n###\n3. Spam Protection\n\nCurrent defenses include:\n\n-\n**AI content check** - Flags suspicious patterns\n-\n**IP/email blacklist** - Shared across country subdomains\n-\n**Stripe verification** - Premium ads require validated payment\n\n##\nThe Admin Toolkit\n\nModerators get bulk tools plus:\n\n-\n**AI banner rotator** - Generates event-specific graphics\n-\n**Health monitor** - Checks subsystems including font rendering and upload permissions\n\n##\nPerformance\n\nMedian ad creation time is low. Category handling is accurate.\n\n##\nLessons Learned\n\n**AI isn't magic** - Pricing suggestions benefit from additional rules.\n\n**Condition detection** - The AI spots visible details in photos.\n\n**Speed matters** - The entire process must fit within user attention.\n\nTry it yourself: [24ad.info](https://24ad.info).", "url": "https://wpnews.pro/news/the-ai-powered-classifieds-stack-that-posts-in-seconds", "canonical_source": "https://dev.to/slawekluzny/the-ai-powered-classifieds-stack-that-posts-in-seconds-4dd8", "published_at": "2026-06-02 23:21:28+00:00", "updated_at": "2026-06-02 23:42:35.048045+00:00", "lang": "en", "topics": ["ai-products", "ai-tools", "computer-vision", "natural-language-processing", "ai-startups"], "entities": ["24ad.info", "OpenRouter", "Gemini 2.5 Flash", "React", "Vite", "shadcn/ui", "tRPC", "Drizzle ORM"], "alternates": {"html": "https://wpnews.pro/news/the-ai-powered-classifieds-stack-that-posts-in-seconds", "markdown": "https://wpnews.pro/news/the-ai-powered-classifieds-stack-that-posts-in-seconds.md", "text": "https://wpnews.pro/news/the-ai-powered-classifieds-stack-that-posts-in-seconds.txt", "jsonld": "https://wpnews.pro/news/the-ai-powered-classifieds-stack-that-posts-in-seconds.jsonld"}}