SoldComps
A quanto si vende davvero un oggetto usato, con una sola richiesta
Incasso mensile: 25.913 USD (fonte indicata nella scheda)
Cosa fa
API per rivenditori e analisti: scrivi una parola chiave e ottieni fino a 200 vendite concluse su eBay con prezzo, condizione e data.
Come guadagna
Gratis, 9, 29 o 79 $ al mese e piani per grandi volumi. 587 abbonati. Nato a marzo 2025 in Canada. Incassi verificati con Stripe.
Rendilo tuo
- Un'app per chi rivende sui mercatini italiani: fotografi l'oggetto e vedi a quanto metterlo.
- Solo per una categoria: orologi, sneaker, Lego.
- Calcolo del margine già al netto di spedizione e commissioni.
Le frasi da scrivere all'AI
1. Base del sito e grafica
Crea un'app web in italiano chiamata "Quanto Vale": uno strumento per chi rivende usato: cerchi un oggetto o lo fotografi e vedi prezzo mediano, fascia di prezzo e margine stimato dopo commissioni e spedizione. Usa React, Vite, TypeScript e Tailwind CSS.
Pagine da creare:
1. Pagina iniziale con una ricerca di prova e i prezzi
2. Registrazione
3. Ricerca per testo o foto
4. Risultato: mediana, fascia, grafico, annunci simili
5. Il mio magazzino con i margini
Stile: pratico: sfondo #F8FAFC, verde #16A34A, arancione #EA580C, carattere "Inter", numeri grandi. Nessuna immagine generica di stock.
Tutto deve funzionare perfettamente da telefono. Tutti i testi in italiano, chiari e senza parole tecniche.
2. Database, account e sicurezza
Collega il progetto a Supabase e attiva la registrazione con email e password.
Crea queste tabelle:
- "ricerche": utente, testo, risultato
- "prezzi_rilevati": oggetto, prezzo, condizione, data, fonte
- "magazzino": utente, oggetto, costo, prezzo di vendita
Regole di sicurezza obbligatorie:
- ognuno vede solo le sue ricerche e il suo magazzino
- le rilevazioni le scrive solo il server
- i crediti si scalano solo dal server
Usa esattamente il codice SQL che trovi nei "Dettagli tecnici" di questa scheda: eseguilo nel SQL Editor di Supabase prima di continuare, poi collega le pagine alle tabelle.
3. Da dove prendere i prezzi, in regola
La parte delicata sono i dati. eBay ha un'API ufficiale per le vendite concluse (Marketplace Insights) con accesso su richiesta; l'API Browse dà gli annunci attivi. Leggere con programmi automatici Vinted, Subito o le pagine di eBay può violare i loro termini: usa solo API ufficiali o dati forniti dagli utenti.
Dalle vendite si tolgono i valori anomali e si calcolano mediana e fascia centrale, che dicono più della media (codice nei Dettagli tecnici).
Dalla foto Claude ricava marca, modello e condizione, che diventano la ricerca.
4. Margine e magazzino
Calcolatore: prezzo stimato meno commissioni della piattaforma, spedizione e costo d'acquisto = guadagno.
Magazzino con gli oggetti comprati, il margine previsto e reale. Avvertenza: chi rivende abitualmente può dover aprire una partita IVA.
5. Pagamenti con Stripe
Aggiungi pacchetti di crediti: 100 ricerche a 5 €, 1.000 a 29 €. Ogni nuovo utente riceve 10 crediti gratis. Ogni ricerca costa un credito. Mostra sempre in alto quanti crediti restano e, quando finiscono, un riquadro per comprarne altri.
A pagamento riuscito il webhook aggiunge i crediti del pacchetto con la funzione aggiungi_crediti.
Per la sessione di pagamento e il webhook segui la guida "Pagamenti con Stripe" di Fattibile.
6. Controlli specifici di questo progetto
Oltre ai controlli della guida "Controllo finale", verifica in particolare:
1. Valori strani: inserisci tra i dati una vendita a 1 € e una a 9.999 €: la mediana non deve cambiare in modo visibile.
Correggi quello che non va e scrivimi cosa hai cambiato.
Dettagli tecnici
Prezzo tipico senza valori anomali
Si scartano gli estremi con il metodo dell'intervallo interquartile, poi si calcola la mediana.
const quantile = (v: number[], q: number) => {
const p = (v.length - 1) * q, b = Math.floor(p);
return v[b + 1] !== undefined ? v[b] + (p - b) * (v[b + 1] - v[b]) : v[b];
};
export function prezzoTipico(prezzi: number[]) {
const v = [...prezzi].sort((a, b) => a - b);
if (v.length < 5) return null; // troppo poche vendite per dire qualcosa
const q1 = quantile(v, 0.25), q3 = quantile(v, 0.75), iqr = q3 - q1;
const puliti = v.filter((x) => x >= q1 - 1.5 * iqr && x <= q3 + 1.5 * iqr);
return { mediana: quantile(puliti, 0.5), da: quantile(puliti, 0.25), a: quantile(puliti, 0.75), vendite: puliti.length };
}
Pezzi comuni a tutti i progetti
Glossario
- Mediana
- Il valore che sta esattamente a metà: pochi prezzi assurdi non la spostano.
