Creare un URL shortener personalizzato.
Inauguro questo blog parlando della mia recente esperienza nel realizzare un url shortener personalizzato, una pratica molto "di moda" dopo la diffusione di Twitter. Il famoso vincolo dei 140 caratteri ha infatti creato la necessità di usare link il più corti possibile. Certo, ci sono vari servizi già pronti per l'uso e gratuiti come Bit.ly, TinyURL e moltissimi altri, ma la tentazione di averne uno personale era per molti geek come me irresistibile! :)
Ecco un esempio del risultato finale che ho ottenuto: http://kos.ee/kult
Il primo step è stato proprio la scelta del dominio. Ci sono vari tool sparsi per la rete che facilitano la ricerca dei domini disponibili, alcuni di questi specializzati proprio nella ricerca di domini corti. Il più famoso probabilmente è Domai.nr, che aiuta a trovare dei domain hack ovvero dei domini in cui l'estensione contribuisce a formare la parola o il marchio (ad esempio pep.si, youtu.be, ecc.).
Il servizio è piuttosto utile e veloce, ma presenta alcune pecche: molto spesso propone delle soluzioni con domini da uno/due caratteri mostrandole come disponibili, ma in realtà quasi sempre i registrar hanno come requisito minimo che il dominio abbia almeno 3 caratteri. Non sempre quindi ciò che ci viene mostrato da Domai.nr può essere effettivamente acquistato. Inoltre, per quanto il servizio cerchi di essere "intelligente", non può certo competere con la nostra creatività e vi assicuro, cercare il proprio short domain richiede tutta la nostra inventiva! ;)
Ho "giocato" un po' con questo tool, provando le parole chiave che in qualche modo hanno a che fare con me, quindi: Kultmedia, Kult, Cosentino, Kose (il mio soprannome da anni) ecc. Purtroppo non sono riuscito a trovare niente di realmente interessante e ho quindi preferito provare un approccio più "manuale" alla ricerca.
Prima di tutto ho trovato questa ottima lista su Wikipedia che ci mostra quali sono tutte le estensioni disponibili nel mondo. Spesso infatti i provider / registrar hanno una scelta piuttosto limitata. Persino Godaddy, registrar a cui mi affido spesso, ha a disposizione non più di una quarantina di estensioni.
Ho capito quindi che l'approccio corretto era:
Trovare l'estensione giusta
Trovare il registrar in grado di registrare quell'estensione
Naturalmente la difficoltà non sta solo nel trovare un dominio interessante, ma nel trovarlo anche libero. Per fare questi controlli in modo veloce mi sono servito del Bulk domain search tool offerto da 101domain, che permette di cercare anche più domini contemporaneamente.
Dopo un paio di ricerche scopro qualcosa di soprendente: il dominio co.se risultava libero. Ancora incredulo (un dominio di sole due lettere è qualcosa di veramente raro e ottimo per il nostro scopo) decido di inviare l'ordine direttamente con 101domain in quanto abilitato all'acquisto di domini .se (Svezia). Faccio quindi il mio ordine e relativo pagamento e attendo con impazienza l'attivazione.
Qui le cose si complicano... Dopo alcuni giorni senza alcuna notizia decido di aprire un ticket. L'attivazione doveva richiedere dalle 48 alle 72 ore, tempo che era già abbondantemente passato. Purtroppo anche al mio ticket seguono giorni di silenzio assoluto. Nessuna risposta, eppure anche i ticket secondo le FAQ dovevano essere gestiti entro 48 ore. Comincio a leggere un po' di forum sparsi per la rete e scopro che a quanto pare l'assistenza di 101domain è piuttosto scadente e che c'è in giro gente molto più arrabbiata di me.
Fortunatamente avevo pagato con Paypal quindi mi appello all'unica "arma" ancora a mia disposizione: la contestazione. Apro quindi una contestazione Paypal spiegando le mie ragioni e attendo. Dopo poche ore ricevo il rimborso dell'importo pagato, l'annullamento dell'ordine e una mail che mi spiega che quel dominio, pur risultando libero, è in realtà bloccato dalle autorità svedesi e quindi non può essere acquistato. Contento di aver recuperato i miei soldi (un po' meno dell'aver dovuto usare le "maniere forti" per farmi valere) torno alla ricerca del mio dominio.
Sono quasi sul punto di comprare kose.li quando un mio amico, Paolo, mi illumina suggerendo kos.ee (Estonia). L'idea mi sembra ottima ma anche qui trovo un ostacolo: pare infatti che per possedere un dominio in Estonia sia necessario possedere lì la residenza o un'attività. Cerco un modo per "aggirare" questo vincolo e scopro che 101domain offre un servizio di Trustee ovvero un servizio di presenza locale in Estonia. Purtroppo però non mi fido più molto di loro e proseguo la mia ricerca fino a trovare l'eccellente Marcaria.com che fin da subito si rivela la soluzione al mio problema, ad una cifra più che ragionevole. Concludo l'ordine e dopo qualche giorno sono il felice possessore del dominio kos.ee.
Bene, ora ho il mio dominio, ma cosa ci faccio?
Da diverso tempo Bit.ly ha reso disponibile nella versione free una funzionalità che prima era riservata ai possessori di un account Pro: i custom short domain.
Procedo quindi subito alla configurazione, molto semplice:
Aprire un account gratuito su Bit.ly
Puntare i DNS del nostro dominio sul server di Bit.ly
Comunicare a Bit.ly il nostro custom domain (ed eventualmente metterlo come predefinito)
Il sistema funziona alla perfezione e trovo subito alcune funzionalità davvero interessanti: la possibilità di monitorare i click sui nostri short link, la presenza di estensioni per i browser più diffusi ecc. Nel complesso un ottimo servizio.
Mi scontro però con due cose che non mi piacciono molto:
Non è possibile fare il forward del dominio "base" (ad esempio http://kos.ee) a un sito da noi scelto. Il nostro dominio infatti rimanderà automaticamente alla homepage di bit.ly e non è possibile modificare questa impostazione (se non comprando la versione Enterprise alla cifra astronomica di $995,00 al mese, che si possono permettere solo alcuni mostri sacri come Pepsi e il New York Times).
La stringa generata nel nostro short url non è altro che un alias della stringa col dominio bit.ly. Per rendere meglio l'idea: kos.ee/s6zkws è esattamente la stessa cosa di bit.ly/s6zkws. Questo significa che, pur avendo un dominio custom, non avremo mai delle stringhe semplici perchè la nostra stringa deve essere univoca non solo per il nostro dominio ma per tutto il database degli utenti bit.ly.
Insomma, il nostro dominio è diventato un "mirror" di Bit.ly. Il controllo che abbiamo è quindi fortemente limitato.
Decido di cercare un'alternativa e per un po' valuto l'idea di acquistare CloudApp Pro, a una cifra ragionevole: $45,00 all'anno. Oltre all'ottimo servizio di condivisione file, infatti, viene offerto anche un url shortener personale.
C'è un altra idea che mi frulla in testa: farmelo da solo e ospitarlo su un mio server. "Sono pur sempre uno sviluppatore", mi dico, "che sarà mai?". Ma prima che io possa valutare seriamente l'idea di "fare da me" mi imbatto in questo fantastico script PHP open source: Yourls.
L'installazione è piuttosto semplice, si copiano i file nello spazio web, si fanno un paio di modifiche al file di configurazione (in cui dobbiamo inserire i parametri per la connessione a un database MySql) e il gioco è fatto. Inoltre la documentazione sul sito è completa e dettagliata.
Dopo aver fatto funzionare il tutto mi rendo conto di avere davanti uno strumento ottimo, che non ha niente da invidiare ai vari servizi già provati ma col vantaggio di essere self-hosted e quindi mio al 100%. Posso creare degli indirizzi corti e semplici come ad esempio http://kos.ee/kult e inoltre ho potuto indirizzare il dominio "base" al mio sito personale. Le statistiche dei click ci sono, si possono modificare i link già creati e ci sono addirittura diversi tipi di Bookmarklet che possono essere inseriti nel nostro browser con estrema facilità. Insomma, lunga vita a Yourls, un piccolo "gioiellino" che consiglio a tutti.
Con questa storia (piuttosto lunga a quanto pare, spero di non avervi annoiato) si conclude il mio primo post su questo blog, mi auguro che la mia esperienza possa tornare utile a qualcuno! :)
P.S. alla fine quelli di 101domain hanno risposto al mio ticket. Peccato che fosse già passata più una settimana dalla chiusura del "caso"... Se non altro però hanno avuto l'accortezza di correggere l'errore nel loro tool di ricerca, ora il tentativo di registrare quel dominio dà esito negativo, com'è giusto che sia.