Curionect
Case study torgio.eu

Torgio

A production classifieds marketplace for Central Europe. Designed and built solo, brand, interface, front-end, database, payments, and running live in seven languages.

Role
Everything. Brand to database.
Status
In production · torgio.eu
Stack
Next.js · Supabase · Stripe
Torgio's first screen: a language chooser listing Slovenčina, Čeština, Polski, Magyar, Deutsch, English and Українська.
The first screen a visitor sees. Seven languages, one marketplace, not a claim you read, one you can count.
The problem

The region doesn’t divide neatly by language. The software pretends it does.

A Slovak buyer searches for a kočík. A Czech seller lists a kočárek. A Ukrainian family in Košice types in Cyrillic. Existing sites treat each language as a separate island, so half the inventory is invisible to half the market.

And a marketplace isn’t one product. It’s a listings app, a payments system, a chat system, a moderation system, an ad platform, a content platform and a brand, and none of them are worth much until all of them exist.

SK kočík CZ kočárek PL wózek HU babakocsi DE Kinderwagen EN pram UK коляска
1 index → every result
Seven words for the same object. One normalised index underneath.
7interface languages, live
12listing categories
5ad-slot formats, CPM engine
1person, brand to database

Honest about the stage: this is pre-launch. There’s no traction story yet, and I’m not going to invent one. The number that matters here isn’t users, it’s scope.

Key decisions

Four calls I had to make, then live with.

01

One index, not seven translated silos

Most multilingual sites translate the interface and stop, which leaves search broken across borders. Here Slovak, Czech, Polish, Hungarian, German, English and Ukrainian live in a single index. Diacritics fall away, praca and práca return the same results. Cyrillic resolves to Latin, камера finds cameras. A listing written in Czech surfaces for a Slovak query.

Why it matters The difference between “we support 7 languages” as a marketing line and seven languages as working inventory. It's the pattern most agencies get wrong.

Torgio search: twelve category chips and a voice-enabled search field.
02

AI drafts the listing, the user is never trapped in it

The single biggest reason people abandon a listing is the form. Photograph the item, optionally say a few words, and Gemini drafts the title, description and category. Then you edit and publish. Three constraints hold it honest: a manual mode that never calls AI, plain disclosure before the first call, and AI as a draft, never a publish.

Why it matters The interesting work in an AI feature isn't the API call. It's the fallback, the consent and the exit. That's what makes it shippable in the EU instead of a liability.

03

An internal currency, not a checkout at every corner

Paid features run on Iskry (sparks): AI drafting, boosting, featured placement, VIN checks. Sparks are earned through activity or bought via Stripe, and the whole balance and history live on one page.

Why it matters A token system is where a product quietly becomes a regulatory problem. No randomness, no transfer, no cash-out, a paid balance that never lapses. It was a legal design decision as much as a product one.

04

An ad platform with the black box removed

Five fixed slots, no auctions. Advertisers set a CPM and a budget cap, target by city and category, and the campaign auto-pauses at the cap. Delivery is a weighted random pick among eligible campaigns; stats are visible in real time.

Why it matters The honest bit is the mechanic: a young platform can't promise daily reach, so campaigns guarantee delivered impressions instead, running past the end date until the volume lands. The constraint became the selling point.

Build highlights

The whole surface, not just the app.

What I’d do differently

The build taught me the lessons the plan couldn’t.

  1. I built the whole marketplace before the audience.

    Every system on that list works. Shipping the ad platform before there was traffic to sell was the right thing in the wrong order, and the fix wasn’t more features. It was going out and getting the first sellers.

  2. Scope discipline is a skill I learned late.

    The VIN checker and the map are good. Neither was the reason anybody would use Torgio on day one. I now start by asking which single thing has to be excellent, and treat everything else as a candidate for cutting.

  3. Constraints made the best decisions, not ambition.

    The no-auction ad model, the delivered-impressions guarantee, the spark rules, the strongest parts all came from accepting an uncomfortable limit instead of designing around it. That’s the habit I carry into client work.

I build production web products end to end, brand, interface, front-end, database, payments.

Have one that needs building?

React · Next.js · Supabase · Neon · Vercel · Stripe · Cloudinary · Sentry · Cloudflare Turnstile · Google Gemini