Cosa c'è sotto al cofano? TALL ed altro...

Il codice e i tool dietro al mio sito

Never Stop
Testing

Come avrai capito, mi piace studiare e sperimentare cose nuove: questo è il mio sito personale ma anche e soprattutto il mio laboratorio. Qualcosa è pubblico e visibile, altro no.

Cosa c'è sotto il cofano?

In questa pagina svelo il trucco della magia. Stai vedendo come funziona, qui scoprirai perchè funziona così ;-)

In questa versione del sito, ho voluto sperimetare lo stack TALL: Tailwind, Alpine, Laravel, Livewire.

Infrastruttura

Dominio / DNS

Google Domains

Un servizio ancora in beta per Google ma che fa già quello per cui lo si paga. Google Domains offre una gestione semplice, veloce ed intuitiva dei record DNS; la protezione da spoofing dei DNS e estensioni DNSSEC con un click e la privacy sulle informazioni di contatto su WHOIS e RDAP per prevenire lo spam.

Google Suite

La funzionalità di Gmail sulle caselle di dominio, oltre a 30GB di spazio per tutti i prodotti della Google Suite (Calendar, Drive, Fogli, Documenti, Moduli...)

Server / Hosting

Ploi.io

Solitamente uso Laravel Forge ma ho voluto provare anche questo (se trovo il tempo farò anche una comparativa) e, per ora non me ne pento, anzi.

Ploi.io è un SaaS per il deploy di applicazioni web in maniera semplice e veloce. La configurazione del droplet o della VPS la gestisce lui ma fornendotri una dashboard veramente molto granulare per le impostazioni di fino.

Sviluppato da un amante di Laravel, se rileva che state usando questo framework, vi farà apparire una sezione ad hoc da dove eseguire tutti i comandi Artisan senza collegarsi in SSH. Molto comoda!

Digital Ocean

Digital Ocean è un fornitore di servizi cloud scalabili senza le complicazioni eccessive (per progetti non troppo complessi) di Google Cloud Platform o di AWS.

Fra le varie soluzioni, propone droplet, load balancer, dischi di archiviazione aggiuntiva, spazio scalabile e contenitori kubernetes.

Dropbox

DropBox è un famoso sistema di archiviazione e condivisione dei file sul cloud. In questo sito lo uso per archiviare i backup del server. Se non lo conosci, accedendo da questo link ti verranno regalati 500MB, oltre ai 2GB gratuiti.

Mailgun

Mailgun offre una interfaccia API per l'invio, la ricezione e il tracciamento di email transazionali studiata per gli sviluppatori.

Mailchimp

Non credo che Mailchimp necessiti di presentazione, comunque... lo strumento per la gestione delle newsletter e campagne DEM e di mail automation. In questo sito usato all'1% delle sue possibilità, per ora.

Tecnologia usata

Server Side

PHP

PHP è il mio linguaggio di programmazione web preferito. In questo sito gira la versione: 7.4.13.

Laravel

Laravel a mio avviso è IL framework PHP. Sviluppato da Taylor Otwell è giunto ormai alla versione 8 e facilita in maniera esponenziale lo sviluppo di web app avanzate.

Laravel Nova

Laravel Nova è uno strumento per la creazione rapida di pannello di controllo basato su Eloquent. Semplifica e riduce il tempo necessario per creare il pannello di amministrazione CRUD dei record a DB.

Livewire

Livewire è un framework che permette la creazione di interfacce reattive (come React o Vue) ma senza abbandonare il comfort di PHP e Laravel.

Client Side

Blade

Blade è un template engine nativo di Laravel che semplifica il riutilizzo e l'organizzazione del codice.

Dalla versione 7 di Laravel, a Blade sono stati aggiunti gli steroidi, ovvero i Blade component tag che in accoppiata con Alpine e Livewire fanno magie.

Tailwind CSS v2

Tailwind è un framework CSS di basso livello, altamente customizzabile tramite un file di configurazione. Stop ai componenti già fatti che sembrano velocizzare il lavoro ma in realtà lo rallentano con strutture e nomi di classi da ricordare: Tailwind è utility-first e fluente. Vuoi un testo blu? Aggiungi la classe .text-blue-500

PS: tramite purgeCSS integrato, il foglio di stile in produzione conterrà solo le classi realmente necessarie/utilizzate facendolo pesare pochi kB. Per il mio sito esattamente 23.6kB. Non male, no?

Alpine.js

Alpine.js è un piccolissimo framework JS che ti permette di dare reattività al DOM in maniera dichiarativa (e non imperativa come jQuery) e senza l'ingombo di librerie più complesse, come React o Vue.

Vuoi saperne di più?
Sono a tua disposizione