Informazioni su questo sito🔗
(Clicca qui per informazioni su di me)
Questo sito vuole essere uno spazio digitale fuori dai social media in cui stare, e buona parte del piacere che ne traggo viene proprio dal costruirlo e mantenerlo. Ricevo anche molte domande su come faccio certe cose, quindi su questa pagina cercherò di documentare come è fatto il sito e le domande più frequenti. Se c'è qualcosa che vorresti sapere, o che non ho affrontato, scrivimi pure.
Indice🔗
Link del sito🔗
- Commenti
- Sitemap
- Feed RSS
- robots.txt
- Punteggio di Mozilla Observatory (cioè la sicurezza)
- Punteggio di Google PageSpeed (cioè le prestazioni)
Design e filosofia del sito🔗
Il modo in cui ho dato priorità alle mie decisioni lavorando su questo sito è stato più o meno questo:
- Divertirsi
- Facilità di manutenzione
- Esperienza utente
Quanto ciascuna di queste cose pesi sul risultato finale dipende da quale aspetto del sito stiamo parlando.
Design visivo/UX🔗
Quando mi sono messo a progettare il sito, ho passato parecchio tempo lontano dal progetto vero e proprio, limitandomi ad annotare le idee che mi venivano in mente. Ruotavano tutte attorno alla domanda a cosa mi serve davvero tutto questo? Credo che se ci si mette a costruire qualcosa senza aver riflettuto seriamente su questa domanda, si finisce inevitabilmente con qualcosa che somiglia a un bel sito portfolio. E così diventa difficile capire dove mettere le informazioni che in un portfolio non ci stanno.
L'uso del colore si è evoluto man mano. Per esempio, ho sfondi scuri semplicemente perché fissare uno schermo luminoso troppo a lungo mi faceva male agli occhi, e ci sono molti colori diversi sparsi nel testo (forse troppi?) perché annoia guardare un colore solo quando si scrivono contenuti per lunghi periodi. In sostanza volevo ravvivare un po' le cose, e forse è stato il continuo passare dal sito all'anteprima all'editor di codice a mettermi in testa quell'idea.
Quanto alla tipografia credo di avere ancora molta strada da fare, e il mio uso degli spazi bianchi non è stato granché ispirato. Onestamente non ho idea di cosa sto facendo, e spero solo di non dover cambiare troppe cose quando avrò un'idea più chiara di come andrebbero fatte.
L'ultima cosa è che ho iniziato a disegnare di più e mi sono accorto che le illustrazioni mi piacciono davvero. Puoi vederne un esempio sulla mia homepage. Parte di ciò che mi diverte è il processo di problem solving che il lavoro di illustrazione porta con sé. È straordinario in uno di quei modi per cui puoi dedicarci tutto il tempo che vuoi per migliorare sempre di più, oppure fermarti a abbastanza buono. C'è qualcosa di elegante in questo tipo di lavoro non binario.
In ogni caso, sto cercando di inserire più illustrazione e più lavoro di design nel sito, per dargli un aspetto curato e professionale, mantenendolo però esteticamente amichevole e divertente. Spero che chi arriva sul mio sito si senta ispirato ed entusiasta di andare a fare le proprie cose, a partire da qualcosa che ha visto qui.
Più avanti in questa pagina trovi un elenco di siti web che hanno ispirato il design di questo sito.
Tecnologie utilizzate e architettura del sito🔗
L'html è generato con il generatore di siti statici Zola, il CSS è fatto al 99,9% con le classi di utilità di Tailwind CSS, e il sito è ospitato su Cloudflare Pages. Una piccola parte delle funzionalità è realizzata anche con i Cloudflare Workers.
Noterai anche che non c'è nessun Javascript, a eccezione di poche cose inserite da Cloudflare.
Zola non ha un sistema di plugin, mentre Tailwind ha bisogno di leggere il tuo html prima di poter produrre il CSS, per via del tree shaking e delle più recenti funzionalità JIT che offre. Quindi, per farli funzionare insieme, eseguo il comando di build standalone di Tailwind dopo quello di Zola, mettendo il css risultante nella cartella di output di Zola (di solito public/). Ha funzionato sorprendentemente bene e non ho avuto problemi. Anche se per comodità uso uno script di build npm personalizzato, i miei comandi di build/run sono più o meno i seguenti:
zola build && npx tailwindcss \
--input <IN> --output <OUT>
zola serve --interface 0.0.0.0 \
& npx tailwindcss \
--input <IN> --output <OUT> \
--watch <WATCH_1> <WATCH_2> \
<...> <WATCH_N>
Di solito tengo sotto osservazione il mio file tailwind.css principale, oltre alle cartelle content e template.
Nota: --interface 0.0.0.0 serve per poter testare il sito sul mio computer con il mio vero dispositivo mobile.
Header HTTP🔗
Ecco una copia del mio file degli header, per chi fosse interessato. Sentiti libero di commentare o di propormi dei suggerimenti.
# HTTP Headers file (Note: https://developers.cloudflare.com/pages/platform/headers)
# Ask to deny search engine indexing for not "production" deployments
https://:project.pages.dev/*
X-Robots-Tag: noindex
/*
Strict-Transport-Security: max-age=31536000; includeSubDomains
Content-Security-Policy: default-src 'none'; script-src 'self' 'wasm-unsafe-eval' static.cloudflareinsights.com ajax.cloudflare.com; style-src 'self' 'unsafe-inline'; style-src-attr 'self' 'unsafe-inline'; img-src 'self'; font-src 'self'; connect-src 'self' cloudflareinsights.com; prefetch-src 'self'; child-src 'none'; frame-src 'self' https://stories.spenc.es; worker-src 'self'; frame-ancestors 'self' https://stories.spenc.es; form-action 'self'; base-uri 'self'; manifest-src 'self'; object-src 'none';
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
Referrer-Policy: no-referrer-when-downgrade
Permissions-Policy: accelerometer=(), ambient-light-sensor=(), autoplay=(), battery=(), camera=(), cross-origin-isolated=(), display-capture=(), document-domain=(), encrypted-media=(), execution-while-not-rendered=(), execution-while-out-of-viewport=(), fullscreen=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), midi=(), navigation-override=(), payment=(), picture-in-picture=(), publickey-credentials-get=(), screen-wake-lock=(), sync-xhr=(), usb=(), web-share=(), xr-spatial-tracking=(), clipboard-read=(), clipboard-write=(), gamepad=(), speaker-selection=(), conversion-measurement=(), focus-without-user-activation=(), hid=(), idle-detection=(), serial=(), sync-script=(), trust-token-redemption=(), vertical-scroll=(),
Feature-Policy: default 'none'
X-XSS-Protection: 1; mode=block
/pgp/spencer-scorcelletti-public.asc
Content-Type: application/pgp-keys
/atom.xml
Content-Type: application/atom+xml
/*/atom.xml
Content-Type: application/atom+xml
Ho usato Observatory di Mozilla per aiutarmi a individuare i problemi e cercare di stringere le maglie il più possibile.
Testare su mobile dal mio computer🔗
È importante fare i test su un dispositivo mobile vero. Per questo eseguo squidman sul portatile e poi configuro un proxy nelle impostazioni di rete del telefono.
Per esempio:
- Avvio squidman e prendo nota della porta di squidman e dell'IP del portatile
- Configuro il proxy sul telefono, usando l'IP del portatile e la porta di squidman del passaggio precedente
- Vado sul sito usando l'IP del portatile e la porta su cui gira il mio server
Risorse🔗
Ecco una raccolta di risorse che ho trovato utili. Fammi sapere se ce ne sono altre che dovrei includere.
- Observatory di Mozilla
- PageSpeed di Google
- Documentazione di MDN
- TODO...
Ispirazione e ringraziamenti🔗
Tengo un elenco di cose che mi hanno ispirato mentre continuo a lavorare al mio sito. Ogni voce ha qualcosa di diverso da offrire. Alcune hanno un elemento estetico che mi ha ispirato, altre organizzano le informazioni in un modo che funzionava ma che andava oltre quello che si vede di solito in un template. Altre ancora sono semplicemente strampalate e bizzarre. Proverò a spostare quell'elenco
- Questo sito di una sola pagina, semplice, di Haraldur Thorleifsson è ciò che mi ha spinto a fare le mie illustrazioni. La sensazione che ho provato visitando il suo sito è quella che vorrei dare agli altri quando vedono per la prima volta la mia homepage. In più, nei testi tiene un tono professionale ma umile, e riesce benissimo a comunicare il minimo indispensabile. Mi piace molto anche il fatto che sia un designer e imprenditore molto importante, e che nonostante questo metta la sua email sul sito e si impegni a rispondere alle persone.
- Questo blog del professor David Mumford della Brown University è stato per me una grande ispirazione per il progetto del sistema di commenti a cui sto lavorando. In pratica, in fondo all'articolo linkato, ha incluso direttamente nell'articolo stesso le email scambiate con amici e colleghi su vari punti del testo, e quello funge da sistema di commenti. Adoro la semplicità e l'eleganza di questo sistema.
- Il sito personale di Will Boyd è nel complesso davvero piacevole e bello da vedere. L'autore usa molto bene gli spazi bianchi e mi piace in particolare la pagina "Bits", dedicata alle cose sparse che voleva condividere. Credo che dove mettere questo tipo di informazioni sia una delle cose più difficili nel progettare il mio sito, e non posso dire di aver trovato una buona risposta.
- Questo sito di Dustin Brett è progettato per assomigliare al desktop di un computer. Non credo sia un design che amo per la sua utilità pratica, ma la cosa importante è che è divertente! Curiosamente, ho finito per fare anch'io qualcosa di vagamente skeuomorfico per la mia homepage, sotto forma di singoli SVG cliccabili come menu.
- Oleksandr Kaleniuk ha un sito che si chiama Words and Buttons Online, facile da leggere, ma soprattutto adoro quanto tempo l'autore abbia dedicato a raccogliere e organizzare tutti questi piccoli moduli interattivi. Ce ne sono decine da sfogliare e con cui giocare. Sono proprio siti come questo a far intuire cosa è possibile fare al di fuori dei binari prestabiliti. L'autore ha anche un libro gratuito sul linguaggio C intitolato So You Think You Know C?.
- Il blog di John Kapolos ha alcune cose che mi sono piaciute molto. Prima di tutto ha un tono divertente e accessibile, ottenuto spargendo meme nel contenuto principale. Si capisce che l'autore immagina di presentare questo contenuto a un pubblico mentre lo scrive. In più usa esempi di codice davvero belli da vedere. Anche se non sono selezionabili (sono in realtà immagini), restano innegabilmente molto leggibili. Credo che qualcosa del genere, ma mescolato con gli SVG, potrebbe dare il meglio dei due mondi: testo selezionabile, ma mostrato bene in una finta finestra come ha fatto questo professore.
- Apprezzo il modo in cui tailwindcss ha organizzato il proprio blog, che sembra un
CHANGELOG, o la versione formattata di una cronologia di commit tenuta molto bene. Una cosa che mi ispira è che ti costringe a scrivere solo articoli con titoli che rispettano questo formato, il che in pratica ti impedisce di scrivere articoli spam senza contenuto. - Il sito personale di Gavin D. Howard fa una cosa carina: mette dei metadati prima del contenuto vero e proprio dell'articolo, come un disclaimer e informazioni sul "pubblico presunto". Ho fatto qualcosa di simile per la sezione scritti del mio sito, per esempio qui, ma in questo caso la somiglianza è stata solo una coincidenza. Volevo comunque citare il suo sito.
- Il sito personale di Robin Schroer ha una tipografia bella e semplice e colori riposanti, né troppo scuri né troppo chiari. In più, una cosa che fanno e che mi piace molto è avere un'intera sezione
Uses This, in cui raccontano semplicemente com'è fatto il loro setup tecnologico. Mi stupisce quanto sia vario internet fuori dai social media e dai soliti siti in stile portfolio. - Il sito Modern Sounds ha un aspetto bello e minimalista, con spazi bianchi curati e immagini dei prodotti davvero belle. Non è particolarmente originale o creativo e probabilmente nasce da un template, ma nonostante questo mi è piaciuto e mi è sembrato valesse la pena citarlo qui.
- Il sito personale di Alex Crompton ha un aspetto pulito e ordinato, ma quello che ho apprezzato di più è come usa lo spazio nei margini per segnalare altre cose che potrebbero interessarti sul suo sito. Io i margini non li uso davvero in quel modo, ma è bello da vedere e un giorno potrebbe essere un'idea da riprendere.
- La tipografia di [leerob.io] è una cosa che ho apprezzato. Mi è piaciuto anche il fatto che abbia un guestbook, una cosa divertente e un po' vecchia scuola.
- Il design del sito Electronic Material Office mi è sembrato davvero d'impatto, anche se non ho poi ripreso nessuna idea da lì.