CRITICAL FIXES: - API: Added end_time > now() filter to all auction queries - Scheduler: Cleanup expired auctions every 15 minutes - Scheduler: Scrape auctions every 2 hours (was 1 hour) - Scheduler: Sniper alert matching every 30 minutes Affected endpoints: - GET /auctions (search) - GET /auctions/feed (unified) - GET /auctions/hot - GET /auctions/ending-soon (already had filter) Updated MARKET_CONCEPT.md with: - 3 pillars: Pounce Direct, Live Auctions, Drops Tomorrow - Data freshness architecture - Unicorn roadmap
16 KiB
🎯 POUNCE MARKET — Das Herzstück der Plattform
Letzte Aktualisierung: 11. Dezember 2025
📋 Executive Summary
Die Market Page ist das Herzstück von Pounce. Hier fließen alle Datenquellen zusammen:
- Pounce Direct — User-Listings (unser USP, 0% Provision)
- Live Auktionen — Externe Plattformen (GoDaddy, Sedo, etc.)
- Drops Tomorrow — Domains bevor sie in Auktionen landen (Phase 3)
Der Weg zum Unicorn (aus pounce_strategy.md)
"Der Weg zum Unicorn führt nicht über besseres Scraping, sondern über einzigartigen Content."
Aggregation kann jeder. Pounce Direct ist unser USP.
🔧 KRITISCHE FIXES (Implementiert am 11.12.2025)
Problem: Veraltete Daten wurden angezeigt
VORHER: Abgelaufene Auktionen wurden im Feed angezeigt
→ Schlechte User Experience
→ Vertrauensverlust
Lösung: Multi-Layer Data Freshness
# 1. API-Filter: Nur laufende Auktionen
query = select(DomainAuction).where(
and_(
DomainAuction.is_active == True,
DomainAuction.end_time > datetime.utcnow() # ← NEU!
)
)
# 2. Scheduler: Cleanup alle 15 Minuten
scheduler.add_job(
cleanup_expired_auctions,
CronTrigger(minute='*/15'), # Alle 15 Minuten
id="auction_cleanup"
)
# 3. Scraper: Alle 2 Stunden frische Daten
scheduler.add_job(
scrape_auctions,
CronTrigger(hour='*/2', minute=30), # Alle 2 Stunden
id="auction_scrape"
)
📊 Die 3 Säulen des Market
Säule 1: POUNCE DIRECT (Unser USP!)
"Das sind die Domains, die es NUR bei Pounce gibt."
┌─────────────────────────────────────────────────────────────────┐
│ 💎 POUNCE DIRECT │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Warum es genial ist: │
│ ───────────────────────────────────────────────────────────── │
│ ✓ Unique Content (nur bei uns!) │
│ ✓ 0% Provision (vs. 15-20% bei Sedo) │
│ ✓ DNS-Verifizierung = Trust │
│ ✓ Instant Buy (kein Bieten) │
│ ✓ SEO: Jedes Listing = eigene Landing Page │
│ │
│ Der Flow: │
│ ───────────────────────────────────────────────────────────── │
│ 1. User listet Domain (Trader/Tycoon Abo) │
│ 2. DNS-Verifizierung (TXT Record) │
│ 3. Listing erscheint im Market Feed │
│ 4. Käufer kontaktiert Verkäufer (nach Login) │
│ │
└─────────────────────────────────────────────────────────────────┘
Status: ⏳ 0 Listings — Muss aktiviert werden!
Säule 2: LIVE AUKTIONEN (Content Filler)
"Zeige alle relevanten Auktionen von GoDaddy, Sedo, NameJet, etc."
┌─────────────────────────────────────────────────────────────────┐
│ 🏢 LIVE AUKTIONEN │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Datenquellen: │
│ ───────────────────────────────────────────────────────────── │
│ 📦 Web Scraping (Hauptquelle) │
│ └─→ ExpiredDomains.net (~350 Domains) │
│ └─→ GoDaddy RSS │
│ └─→ Sedo Public │
│ └─→ NameJet Public │
│ └─→ DropCatch Public │
│ │
│ Data Freshness: │
│ ───────────────────────────────────────────────────────────── │
│ ⏱️ Scraping: Alle 2 Stunden │
│ 🧹 Cleanup: Alle 15 Minuten │
│ ✅ Filter: Nur end_time > now() │
│ │
│ Qualitätsfilter: │
│ ───────────────────────────────────────────────────────────── │
│ • Vanity Filter für Public (nur Premium-Domains) │
│ • Pounce Score (0-100) │
│ • TLD Filter (com, io, ai, etc.) │
│ │
└─────────────────────────────────────────────────────────────────┘
Status: ✅ ~361 aktive Auktionen
Säule 3: DROPS TOMORROW (Tycoon Exclusive)
"Zeige Domains BEVOR sie in Auktionen landen."
┌─────────────────────────────────────────────────────────────────┐
│ 🔮 DROPS TOMORROW — Phase 3 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Das Konzept: │
│ ───────────────────────────────────────────────────────────── │
│ 1. Zone Files von Verisign (.com/.net) beziehen │
│ 2. Tägliche Diff-Analyse (was war gestern da, ist heute weg) │
│ 3. Diese Domains droppen in 1-5 Tagen! │
│ 4. Pounce Algorithm filtert nur Premium-Domains │
│ │
│ Warum das ein MONOPOL schafft: │
│ ───────────────────────────────────────────────────────────── │
│ • ExpiredDomains zeigt ALLES (Spam-Hölle) │
│ • Pounce zeigt nur die TOP 100 (kuratiert) │
│ • = Zeitersparnis = Premium Feature = $29/Monat │
│ │
└─────────────────────────────────────────────────────────────────┘
Status: 🔜 Geplant (6-12 Monate)
🎨 UI/UX: Die Market Page
Filter Bar
[✓] Hide Spam [○] Pounce Only [TLD ▾] [Price ▾] [Ending ▾]
Die Master-Tabelle
| Spalte | Inhalt | Visualisierung |
|---|---|---|
| Domain | Name | Fettgedruckt. 💎 Icon für Pounce Direct |
| Score | Pounce Score | 0-100 (Grün > 80, Gelb 50-80, Rot < 50) |
| Price | Preis/Gebot | $500 oder $50 (Bid) |
| Status | Zeit/Verfügbarkeit | ⏱️ 4h left oder ⚡ Instant |
| Source | Herkunft | 🏢 GoDaddy, 💎 Pounce |
| Action | Button | [Bid ↗] oder [Buy Now] |
Visuelle Hierarchie
┌─────────────────────────────────────────────────────────────────┐
│ MARKET FEED │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 💎 POUNCE EXCLUSIVE — Verified Instant Buy │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ zurich-immo.ch $950 ⚡ Instant ✅ Verified [Buy] │ │
│ │ crypto-hub.io $2.5k ⚡ Instant ✅ Verified [Buy] │ │
│ └───────────────────────────────────────────────────────────┘ │
│ │
│ 🏢 LIVE AUCTIONS │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ techflow.io $250 ⏱️ 4h left GoDaddy [Bid ↗] │ │
│ │ datalab.com $1.2k ⏱️ 23h left Sedo [Bid ↗] │ │
│ │ nexus.ai $5k ⏱️ 2d left NameJet [Bid ↗] │ │
│ └───────────────────────────────────────────────────────────┘ │
│ │
│ 🔮 DROPS TOMORROW (Tycoon Only) │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ 🔒 Upgrade to Tycoon to see domains dropping tomorrow │ │
│ └───────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
💰 Monetarisierung (aus pounce_pricing.md)
| Feature | Scout ($0) | Trader ($9) | Tycoon ($29) |
|---|---|---|---|
| Market Feed | 🌪️ Vanity Filter | ✨ Clean | ✨ Clean + Priority |
| Alert Speed | 🐢 Daily | 🐇 Hourly | ⚡ Real-Time (10m) |
| Watchlist | 5 Domains | 50 Domains | 500 Domains |
| Sell Domains | ❌ | ✅ 5 Listings | ✅ 50 + Featured |
| Pounce Score | ❌ Locked | ✅ Basic | ✅ + SEO Data |
| Drops Tomorrow | ❌ | ❌ | ✅ Exclusive |
⚙️ Technische Architektur
Scheduler Jobs
# Aktive Jobs (Scheduler)
# ─────────────────────────────────────────────────────────────────
# 1. Auction Scrape — Alle 2 Stunden
scheduler.add_job(scrape_auctions, CronTrigger(hour='*/2', minute=30))
# 2. Expired Cleanup — Alle 15 Minuten (KRITISCH!)
scheduler.add_job(cleanup_expired_auctions, CronTrigger(minute='*/15'))
# 3. Sniper Matching — Alle 30 Minuten
scheduler.add_job(match_sniper_alerts, CronTrigger(minute='*/30'))
# 4. TLD Prices — Täglich 03:00 UTC
scheduler.add_job(scrape_tld_prices, CronTrigger(hour=3))
API Endpoints
# Market Feed Endpoints
# ─────────────────────────────────────────────────────────────────
GET /api/v1/auctions/feed # Unified Feed (Pounce + External)
GET /api/v1/auctions # External Auctions only
GET /api/v1/auctions/ending-soon
GET /api/v1/auctions/hot
GET /api/v1/listings # Pounce Direct Listings
Data Freshness Garantie
# Jede Query filtert automatisch auf aktive Auktionen:
query = select(DomainAuction).where(
and_(
DomainAuction.is_active == True,
DomainAuction.end_time > datetime.utcnow() # ← IMMER!
)
)
📈 Roadmap
✅ ERLEDIGT (11. Dezember 2025)
- Unified Feed API
/auctions/feed - Pounce Score v2.0
- Vanity Filter
- Web Scraping (5 Plattformen)
- FIX: end_time Filter (nur laufende Auktionen)
- FIX: Cleanup alle 15 Minuten
- FIX: Scraper alle 2 Stunden
- Sniper Alerts
🎯 NÄCHSTE SCHRITTE (Diese Woche)
-
Erste Pounce Direct Listings erstellen
- Test-Domains zum Verifizieren des Flows
- USP aktivieren!
-
Sedo API Credentials eingeben
- Sedo.com → Mein Sedo → API-Zugang
- Partner ID + SignKey in
.env
-
Frontend: "Live" Indikator
- Zeige wann Daten zuletzt aktualisiert wurden
🔮 PHASE 2-3 (6-12 Monate)
-
Zone File Access beantragen
- Verisign (.com/.net)
- "Drops Tomorrow" Feature
-
Pounce Instant Exchange
- Integrierter Escrow-Service
- 5% Gebühr
🚀 Der Unicorn-Pfad
Phase 1: INTELLIGENCE (Jetzt)
├── Pounce Direct aktivieren (Unique Content)
├── Clean Feed (aktuelle Daten, Spam-frei)
├── Trust aufbauen
└── 10.000 User, $1M ARR
Phase 2: LIQUIDITÄT (18-36 Monate)
├── Pounce Instant Exchange
├── Buy Now im Dashboard
├── 5% Gebühr
└── $10M ARR
Phase 3: FINANZIALISIERUNG (3-5 Jahre)
├── Fractional Ownership
├── Domain-Backed Lending
└── = FINTECH ($50-100M ARR)
Phase 4: IMPERIUM (5+ Jahre)
├── Enterprise Sentinel (B2B)
├── Fortune 500 Kunden
└── = $1 Mrd. Bewertung
💎 Das Fazit
Aggregation ist Commodity. Pounce Direct ist der USP.
Der Weg zum Unicorn:
- ✅ Datenqualität (aktuelle, saubere Daten)
- ⏳ Unique Content (Pounce Direct aktivieren!)
- 🔮 Datenhoheit (Zone Files)
"Don't guess. Know."
— Phase 1: Intelligence