← Tutte le idee Marketing e social

AI Directories

Iscriviamo la tua startup a oltre 100 directory, a mano

Incasso mensile: 716 USD (fonte indicata nella scheda)

Cosa fa

Servizio che iscrive manualmente un nuovo prodotto online a tante directory e siti di lancio, per farlo conoscere e ottenere link.

Come guadagna

Ha entrate ricorrenti ogni mese, verificate su TrustMRR. Prezzi e piani esatti sono indicati sul sito del progetto.

Rendilo tuo

  • Directory italiane per attività locali: PagineGialle, portali di settore, siti del comune.
  • Report finale con l'elenco dei link ottenuti.

Le frasi da scrivere all'AI

1. Base del sito e grafica

Crea un'app web in italiano chiamata "Lancio Ovunque": un servizio che iscrive un nuovo prodotto online a decine di directory e siti di lancio scelti con cura, a mano, e mostra al cliente l'avanzamento e i link ottenuti. Usa React, Vite, TypeScript e Tailwind CSS.

Pagine da creare:
1. Pagina iniziale con l'elenco delle directory, i pacchetti e i prezzi
2. Ordine: dati del prodotto (nome, descrizione breve e lunga, logo, screenshot, categoria)
3. Area cliente: avanzamento iscrizione per iscrizione
4. Report finale con i link e lo stato
5. Pannello del team: ordini e directory da fare

Stile: pratico e trasparente: sfondo bianco, viola #7C3AED, verde #16A34A per le iscrizioni approvate, carattere "Inter", tabella di avanzamento chiara. 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:
- "directory": nome, indirizzo, categoria, gratuita o a pagamento, tempo medio di approvazione, attiva o no
- "ordini": prodotto e i suoi testi, pacchetto, pagato o no, collegati al cliente
- "iscrizioni": per ogni ordine e directory lo stato (da fare, inviata, approvata, rifiutata) e il link ottenuto

Regole di sicurezza obbligatorie:
- ogni cliente vede solo i suoi ordini e le loro iscrizioni
- solo il team aggiorna gli stati delle iscrizioni
- "pagato" lo cambia solo il pagamento

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. Ordine e avanzamento

Il cliente sceglie il pacchetto (es. 25, 50 o 100 directory), compila i dati del prodotto e paga. I testi vengono controllati: descrizione breve di 60 caratteri, lunga tra 300 e 1.000, logo quadrato, almeno 3 screenshot.

Dopo il pagamento il sistema crea un'iscrizione "da fare" per ogni directory del pacchetto adatta alla categoria. Il team le invia a mano, una per una, rispettando le regole di ogni directory: niente invii automatici.

L'area cliente mostra l'avanzamento in tempo reale (query nei Dettagli tecnici): da fare, inviate, approvate, rifiutate, e i link ottenuti.

4. Pannello del team

Pannello del team: elenco delle iscrizioni da fare per directory, con i testi del cliente pronti da copiare campo per campo e il pulsante "Inviata". Promemoria per controllare dopo 14 giorni se l'iscrizione è stata approvata.

Report finale per il cliente in PDF con tutti i link. Pagina onesta: "Non promettiamo traffico o posizioni su Google: garantiamo l'invio a mano a tutte le directory del pacchetto".

5. Pagamenti con Stripe

Aggiungi un pagamento singolo di 49 €, 89 € o 149 € a seconda del pacchetto. Il pagamento conferma l'ordine e crea le iscrizioni da fare.

A pagamento riuscito il webhook imposta "pagato" a true nella tabella "ordini", sulla riga del ordine indicata in client_reference_id.

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. Trasparenza: controlla che l'elenco delle directory di ogni pacchetto sia visibile prima di pagare e che le directory chiuse vengano tolte.
Correggi quello che non va e scrivimi cosa hai cambiato.

Dettagli tecnici

Ordini e iscrizioni

Dopo il pagamento si crea un'iscrizione per ogni directory adatta; il cliente vede l'avanzamento, solo il team lo aggiorna.

create table directory (
  id serial primary key,
  nome text not null,
  url text not null,
  categorie text[] not null default '{}',
  attiva boolean not null default true
);

create table ordini (
  id uuid primary key default gen_random_uuid(),
  utente_id uuid not null references auth.users(id) on delete cascade,
  prodotto jsonb not null,           -- nome, testi, logo, screenshot, categoria
  pacchetto int not null check (pacchetto in (25, 50, 100)),
  pagato boolean not null default false
);

create table iscrizioni (
  ordine_id uuid not null references ordini(id) on delete cascade,
  directory_id int not null references directory(id),
  stato text not null default 'da_fare'
    check (stato in ('da_fare', 'inviata', 'approvata', 'rifiutata')),
  link text,
  aggiornata_il timestamptz not null default now(),
  primary key (ordine_id, directory_id)
);

alter table ordini enable row level security;
alter table iscrizioni enable row level security;
create policy "i miei ordini" on ordini for select using (auth.uid() = utente_id);
create policy "creo il mio ordine" on ordini for insert with check (auth.uid() = utente_id and not pagato);
create policy "le mie iscrizioni" on iscrizioni for select using (exists (
  select 1 from ordini o where o.id = ordine_id and o.utente_id = auth.uid()));

-- Chiamata dal webhook dopo il pagamento
create function crea_iscrizioni(ordine uuid) returns int
language sql security definer set search_path = public as $
  with o as (select * from ordini where id = ordine and pagato)
  insert into iscrizioni (ordine_id, directory_id)
  select o.id, d.id from o, directory d
  where d.attiva and (o.prodotto->>'categoria') = any (d.categorie)
  order by d.id
  limit (select pacchetto from o)
  on conflict do nothing
  returning 1;
$;

Avanzamento per il cliente

Quante iscrizioni ci sono in ogni stato, per la barra di avanzamento.

select stato, count(*) as quante
from iscrizioni
where ordine_id = 'ID-ORDINE'
group by stato;

Pezzi comuni a tutti i progetti

Glossario

JSONB
Un tipo di colonna che contiene dati strutturati flessibili, come un piccolo documento.
Directory
Un sito che elenca prodotti o aziende per categoria: farsi inserire porta visibilità e link.
Backlink
Un link da un altro sito al tuo: Google li considera un segnale di fiducia.