Salta al contenuto
Portfolio

Elena Castellet

Sito portfolio bilingue con CMS su misura per un'artista digitale: pipeline 3D, gallery video e deploy ripetibile su hosting condiviso.

Visita il sito ↗

Ruolo

Progettazione, sviluppo full-stack, deploy e messa in produzione.

Stack

Laravel 13 Filament 5 Livewire 4 Tailwind CSS 4 MySQL model-viewer + Draco Cloudflare Vite 8

Status

Live

Anteprima del progetto Elena Castellet

Cosa ho fatto

  • 01 Il pannello di amministrazione è costruito con Filament: Elena aggiunge progetti, modifica il CV e legge i messaggi in autonomia, senza toccare codice o passare da me. L'editor dei progetti è bilingue con due schede IT ed EN affiancate; i contenuti tradotti stanno in colonne JSON, così non ho dovuto raddoppiare le tabelle per la seconda lingua. Ogni titolo genera in automatico uno slug URL leggibile, con fallback e verifica di univocità.
  • 02 Per i modelli 3D uso il web component model-viewer con compressione Draco, servendo il decoder dallo stesso dominio invece che da un CDN esterno: privacy migliore e nessun terzo attore che entra nel bundle. Le immagini caricate dal pannello vengono ottimizzate al volo (ridimensionate e ricompresse), i video sono self-hosted con autoplay solo quando entrano nel viewport e rispetto di prefers-reduced-motion. Gli embed YouTube si caricano solo dopo consenso cookie.
  • 03 L'hosting non offre accesso terminale, quindi ho fatto un flusso di deploy interamente via browser: rotte protette da token che eseguono migrate, seeding, pubblicazione degli asset e ricostruzione della cache. L'app è in split-docroot, con il codice fuori dalla webroot e public_html separato, e un override del path pubblico per far coincidere gli upload. È un percorso ripetibile che uso ora come base per altri deploy su hosting condiviso.
  • 04 CSP restrittiva ma compatibile con quello che il sito deve fare davvero: model-viewer con texture da blob:, Draco che vuole wasm-unsafe-eval, Filament che ha bisogno di worker-src. Insieme a HSTS, X-Frame-Options e Referrer-Policy porta il grado A su securityheaders.com. Lato GDPR la prova del consenso privacy è registrata a database (accountability), i messaggi hanno retention automatica via task schedulato, gli analytics sono Cloudflare Web Analytics cookieless per non dover mettere un banner invasivo.

Prossimo progetto

ZampeSulWeb

Piattaforma di matching tra rifugi animali, volontari e cittadini.

Seleziona lingua

IT EN