01
secondhand.fi
The marketplace where Gen Z in Finland buys and sells pre-loved fashion — with AI pricing, virtual try-on, and buyer protection.
Y Combinator S26 Application
|
secondhand.fi
02
Problem
Selling clothes in Finland is broken
-
1
Tori.fi is a classifieds board, not a marketplace.
No payments, no shipping, no buyer protection. Like Craigslist in 2024. Median listing gets 0 messages.
-
2
Vinted entered Finland only in Nov 2023 — still early.
€10B+ GMV globally but Finnish market barely started. Bought (ex-Zadaa) just raised $1.5M — validating the vertical.
-
3
Pricing is a guessing game.
Sellers don't know what things are worth. 40% of listings are priced wrong and never sell. No AI, no market data.
-
4
Businesses have no platform.
Outlet stores, returns, open-box — Finnish retailers have no dedicated resale channel for B2C surplus inventory.
Sources: Tori.fi user research (2025), Vinted market coverage map, internal seller surveys
03
Solution
Full-stack resale marketplace
built for Nordic trust culture
For Sellers
AI
AI auto-fill — snap a photo, get title + description + price suggestion in 3 seconds (Qwen-VL)
$
Dutch auctions — price drops automatically until someone bites. Zero negotiation friction.
B
Business batch upload — outlets, second-hand stores, returns. Upload 100 items at once with size variants.
💰
Instant payouts — Stripe Connect. Money in your bank next day.
For Buyers
🛡
Buyer protection — payment held in escrow until buyer confirms receipt. Disputes with evidence.
👗
Virtual try-on — see how clothes look on you before buying — our own try-on diffusion model, self-hosted on a ComfyUI + SAM3 pipeline (slide 14)
📦
Integrated shipping — Posti SmartPost labels generated automatically. Or meetup zones.
💬
Real-time chat — negotiate, send offers, counter-offer — all in-app with WebSocket.
04
Product
The product is live
Marketplace, escrow payments, chat, shipping and AI listing — shipped and running, not a mockup.
Home. Two doors in — sell in 30 seconds or browse deals. Finnish-first UI.
Browse. Category, city, condition and price filters; fixed-price and Dutch-auction items in one grid.
Screens from the running product
05
Product
AI writes the listing
One photo in. Brand, category, size, condition and measurements come back filled in — the seller only confirms.
Price suggestion from comparable sales, with a one-tap switch to a Dutch auction that walks the price down until it sells.
Description and tags (colour, style, fit) generated in the seller's language.
Result: the 20-minute listing chore that kills Finnish C2C supply becomes ~30 seconds.
Screens from the running product
06
Product
Item page built around trust
Item page. Seller profile, condition, measurements, buyer protection and secure payment stated before the buy button.
Three actions. Buy now, message the seller, or try it on — the try-on sits on the same screen as the purchase, which is where the return-rate saving comes from.
Screens from the running product
07
Product
Virtual try-on, on our own weights
Upload a photo, see the garment on yourself. No studio shot needed — secondhand items only ever have one amateur photo.
Our model, not an API. The try-on diffusion model is trained in-house and self-hosted, so per-image cost is GPU time, not a per-call vendor fee.
Shareable output — try-on images are the organic acquisition loop, not a paid channel.
Screens from the running product · model details on slide 14
08
Product
Checkout: ship it or meet
Escrow either way. Money is released when the buyer confirms the item.
Ship to me. Posti SmartPost €4.30 or Matkahuolto €4.90, label generated in-app, Stripe-held payment — and the seller receives 100%, we take no seller commission.
Meet in person. Pre-agreed public meeting points (Kamppi, Rautatientori, Aalto Dipoli, Itis, Sello) with date and time picked at checkout — the local handover that Tori does on trust, done with escrow behind it.
Screens from the running product
09
Market
Secondhand fashion is the fastest-growing segment in retail
$367B
Global secondhand apparel market by 2029
ThredUp 2025 Resale Report / GlobalData
5x
Faster growth than retail clothing
Online resale +23% YoY in 2024 (ThredUp)
€26B
European secondhand market by 2030
€15.9B in 2024 → €26B by 2030 (Cross-Border Commerce EU)
TAM → SAM → SOM
€2.5B
TAM — Nordic secondhand fashion (FI+SE+NO+DK). 27.5M people, €27.3B total fashion market. Secondhand ~10%.
€400M
SAM — Finland online secondhand fashion. 1.4M Finns 18-35, 89% have bought used. €802/yr apparel spend.
€12M
SOM — Year 3: 3% of Finnish online resale. 50% shop C2C online but only 23% use apps — conversion gap.
Sources: ThredUp 2025 Resale Report, Cross-Border Commerce Europe 2024, Globe Monitor Nordic Fashion 2024, Statista Finland population
10
Why Finland? Why now?
-
🇫🇮
5.6M people, 95% internet penetration
Highest digital adoption in EU. Mobile-first culture.
-
♻️
89% of under-24s have bought secondhand
Only 11% never tried it (Posti 2025). 62% have also sold used items. It's cultural, not a trend.
-
🏪
No dominant fashion resale player
Tori.fi = generalist classifieds (€36M rev). Vinted just entered. Bought raised $1.5M pre-seed — market is validated but unowned.
-
📐
Small enough to win, big enough to matter
Win Finland → expand to Nordics (26M people, same culture, same logistics).
Finland → Nordics playbook
Finland
5.6M
+ Sweden
10.5M
+ Norway
5.5M
+ Denmark
5.9M
Total Nordics
27.5M
Same Posti/PostNord logistics, same trust culture, same payment infra (Stripe EU). One codebase, four markets.
11
Traction
Built in 3 months. Solo founder.
18
Backend modules shipped
Auth, AI, payments, chat, shipping, disputes, admin...
148
TypeScript source files
Production-grade NestJS + Next.js 14
9
Item source types supported
Personal, returns, open-box, outlet, deadstock, trade-in...
What's live and working
🤖
AI AnalysisQwen-VL + GPT-4o-mini
auto-fill listings in 3s
+ own try-on model (slide 14)
💳
Stripe PaymentsCheckout + Connect
auto-payouts every 10 min
📦
Posti ShippingSmartPost integration
auto-generated labels
🏪
Business AccountsBatch upload, Y-tunnus
outlet/returns/open-box
12
Business Model
Three revenue streams from day one
5% + €0.70
Buyer Protection Fee
Charged to buyer on every transaction. Min €1.00. Covers escrow, dispute resolution, fraud prevention.
On €25 avg item: €1.95 fee (7.8% effective take rate)
€0.40
Shipping Margin
Fixed margin on every shipped order. Posti base €3.90 → buyer pays €4.30. We keep €0.40.
~70% of orders are shipped = €0.28 blended per txn
€0.99
Listing Bumps
Push listing to top of feed for 24h. Optional, seller-paid. ~5% attach rate expected.
Future: business subscriptions, promoted listings, featured brands.
Blended take rate at scale
~10%
Comparable to Vinted (10.5%), Depop (10%), Poshmark (20%). Conservative — room to add business subscriptions and ads.
13
Competitive landscape
| Feature |
Tori.fi €36M rev, 3.5M MAU |
Vinted €813M rev, €5B val |
Bought (ex-Zadaa) $1.5M pre-seed |
secondhand.fi |
| In Finland |
Yes (generalist) |
Since Nov 2023 |
Yes |
Yes |
| Built-in payments |
No |
Yes |
Yes |
Yes (Stripe) |
| Buyer protection |
No |
Yes |
No |
Yes (escrow) |
| Integrated shipping |
No |
Yes |
Yes (Wolt) |
Yes (Posti) |
| AI auto-fill listings |
No |
No |
Email history AI |
Yes (Qwen-VL photo) |
| Virtual try-on |
No |
No |
No |
Yes (ComfyUI) |
| Business sellers (B2C) |
No |
No |
No |
Yes (9 source types) |
| Dutch auctions |
No |
No |
No |
Yes |
| Fashion-focused |
Everything |
Yes |
Yes |
Yes |
Why we win: Bought does AI from email receipts — we do AI from photos (no email access needed). Vinted is generic pan-EU — we're local-first with Posti, Y-tunnus business verification, meetup zones. Self-hosted AI models (Qwen-VL, SAM3) = no API dependency. And the try-on model is trained in-house from scratch (202M-param DiT, 59K-pair dataset) — we own the weights, the dataset and the inference stack, where a competitor would rent a third-party try-on API. That's the moat competitors can't copy in a sprint.
14
Technology Moat
Own weights where it matters. Open source for the rest.
202M
Parameter diffusion transformer
First-generation text-to-image DiT trained from scratch — not a fine-tune of someone else's checkpoint
470K+
Training steps completed
512px stage done, 512→768→1024 resolution cascade in progress
59K
Try-on pairs in our dataset
Person / garment / target triplets with masks, pose and segmentation
What we built ourselves
1
Text-to-image DiT from scratch — custom VAE latent space + Qwen2-7B text encoder + single-stream DiT denoiser. Trained on a curated multi-source image set we assembled ourselves.
2
Virtual try-on diffusion model — edit-variant of the base model with packshot reference tokens, trained on a 59K-pair dataset we mined and labelled ourselves.
3
Data pipeline — ~30 fashion/editorial sources scraped, triplet mining (SigLIP + YOLO11-pose + ArcFace), VLM-as-judge recaptioning with Qwen2.5-VL.
4
Try-on weights + inference stack — the model runs on our own ComfyUI pipeline (NexTry fitting room, already live in production) behind a NestJS proxy. No third-party try-on API in the path.
Open source we deliberately don't rebuild
🏷
Qwen-VL + GPT-4o-mini — listing auto-fill from a photo (title, description, condition, price hint) in 3s. Self-hosted VL, API only for the text polish.
✂️
SAM3 + ComfyUI — segmentation and pipeline orchestration around our try-on weights. Plus BiRefNet (server) / @imgly (client, free) for background removal.
🔁
CatVTON (Apache 2.0, <8GB VRAM, FID 5.43) — hot fallback and capacity overflow, so a GPU incident never takes try-on down.
⚖️
The split is the strategy: train what is the product and the moat, rent or reuse what is a commodity. Zero per-call AI cost on the core feature.
Second generation — Samay, training right now
288.65M
DiT params, flow matching
46.0M
Own 16-channel latent VAE
1.12M
Self-curated training images
0
Pretrained weights borrowed
Samay is the next base model under the try-on stack: our own 16-channel VAE (~12:1 compression, not a borrowed SD VAE) plus a dual-stream flow-matching DiT with a frozen Qwen text encoder, trained from zero on 1.12M images we captioned and filtered in-house — on one desktop GPU (~32GB). 512px stage done, 768px training now, 1024px next. The edit / reference-image path the fitting room needs is already architected on top of this base.
Samay one-pager (PDF) →
Why it matters: try-on costs GPU-seconds, not API calls — no per-generation vendor bill, no pricing or ToS change that can break the core feature, and every listing photo and try-on is training signal we own. 470K+ steps of compute, a 59K-pair dataset and the training infrastructure behind them are years of work, not an API key.
Track record: 121 generative models published on Civitai — 111K+ downloads, 13K+ likes, 1,300+ followers.
15
Impact
Every item resold = one fewer manufactured
3 kg
CO2 saved per garment resold
Reuse has 70x lower environmental impact (EuRIC 2024)
2,700L
Water saved per garment
One cotton t-shirt requires 2,700L to produce
92M
Tons of textile waste annually
Only 12% of clothing is recycled globally
At 100K transactions/year, secondhand.fi would prevent 360 tons of CO2 and save 270 million liters of water. Sustainability is not our marketing — it's our unit economics. Resale has zero COGS.
Sources: EuRIC / Journal of Circular Economy 2024, ThredUp 2025 Resale Report, Planet Aid
16
Roadmap
Q2 2026 (Now)
- ✅ MVP complete (148 files)
- ✅ AI pricing (Qwen-VL)
- ✅ Stripe payments + payouts
- ✅ Posti shipping
- ✅ Business accounts + batch
- ✅ Virtual try-on (own model)
Q3 2026
- Beta launch in Helsinki
- First 100 sellers onboarded
- Partner with 5 outlet stores
- Aalto University campus launch
- CSV bulk import for business
- Try-on model: 768px stage + 16-ch VAE
Q4 2026
- 1,000 active sellers
- Expand to Tampere + Turku
- Business subscription tiers
- Promoted listings (ads)
- Social features (follows, shares)
2027
- 10,000 active sellers
- Sweden launch (PostNord)
- €500K+ monthly GMV
- Series A readiness
- Brand partnerships
17
Team
👨💻
Solo Founder
Full-stack engineer and ML engineer. Built the entire platform in 3 months — and trains the generative models it runs on (121 models on Civitai, 111K+ downloads).
NestJS
Next.js
PostgreSQL
Stripe
ComfyUI
PyTorch
Diffusion / DiT
VAE training
Docker
Hiring plan (post-funding)
Growth / Community
Helsinki campus ambassadors, seller onboarding, social media.
Frontend Engineer
React Native mobile app. PWA → native conversion.
ML / AI
Pricing models, recommendation engine, image search.
18
The Ask
€500K
Pre-seed round to reach 1,000 active sellers in Finland
40%
Engineering
(hire 2, infra, models)
30%
Growth
(campus launch, seller acquisition)
20%
Operations
(shipping deals, support, legal)
10%
Runway buffer
(18 months runway)
secondhand.fi
The Vinted for the Nordics — with AI, business sellers, and Finnish trust.