Com'è fatto questo sito

In questa pagina voglio raccontarvi il dietro le quinte di Imparare Coding con Manuel.

Il progetto è in continua evoluzione, ma le costanti che cercherò di tenere sempre come punti cardinali del progetto sono: scalabilità, tecnologia, sicurezza e performance.

Con ogni elemento che compone questo sito ho una storia da raccontare, fatta di difficoltà, sfide e soddisfazioni, perché in fondo questo significa programmare.

Vediamo un po' quindi che cosa è stato fatto.

DevOps

Il sistema è abbastanza semplice e per il momento soddisfa a pieno i criteri che mi sono imposto in fase di progettazione.

Tutto il codiice che scrivo ha una sua pipeline per test e rilascio. Il punto di snodo è GitHub dove Google Cloud e Vercel sono in ascolto sulle rispettive repository di backend e frontend in modo tale che ad ogni push sulla branch principale si avvii il processo di rilascio.

Su Google Cloud uso un'architettura serverless. Il backend gira su Google Cloud Run, poi tramite apposite configurazioni mi collego ad un'istanza di Cloud SQL e un Bucket dove buttare tutti gli asset che carico attraverso Strapi, il CMS che ho deciso di utilizzare per questo progetto.

Per quanto riguarda il frontend è hostato su Vercel, altra architettura serverless che ho già utilizzato in passato per la vecchia versione di questo sito. Out of the box offre un sacco di funzionalità sulla quale ho voluto risparmiare tempo in termini di setup (monitoraggio delle performance, log super dettagliati e staging automatico).

Sito

Il sito è sviluppato usando esclusivamente JavaScript (libreria React e framework Next.js).

Il frontend è assemblato con l'aiuto della libreria di componenti Chakra UI.

Cloud

Imparare Coding con Manuel è 100% cloud. Sono nel datacenter svizzero di Google Cloud. Mentre per quanto riguarda Vercel sono a Francoforte.

Tools

Utilizzo Github per il versionamento della codebase e Clickup per tenere traccia dei bug, modifiche e dove tengo la documentazione.

Database

Come database uso MySQL (istanza di Cloud SQL), la scelta è di pura e semplice familiarità con il DBMS e perché Strapi non supporta MongoDB.


Questo per il momento è lo stack tecnologico di Imparare Coding con Manuel.

Molto probabilmente in futuro, con la crescita della piattaforma lo arricchirò, modificherò, ma dubito di ripensarlo.

Sicuramente ciò che mi riserverà il futuro saranno ancora tante belle difficoltà, sfide e soddisfazioni, perché in fondo anche questo è programmare.