Laravel

Francesco Ciannavei

Laravel

This site runs on two Laravel apps I wrote: the headless CMS that serves every page you're reading, and a separate visits tracker. Both have their admin panels in Filament. Since leaving STCC, Laravel is the PHP framework I use most.

The CMS behind this site

Pages, articles, skills, experiences and certifications live in a Laravel app with a Filament panel to edit them and a REST API to read them. The Astro frontend calls the API when a page is requested, and the page stays cached at Cloudflare's edge until I clear it: no build step, I edit in Filament and clear the cache.

The panel is reachable only from my local network, through Caddy; from outside I connect over WireGuard, and the API reaches Cloudflare through a tunnel. The contact form goes through it too: the API verifies the Turnstile token server-side, with the same check as my PHP guide.

A visits tracker instead of Google Analytics

This site's statistics don't go through Google Analytics. Another Laravel app collects them, with a Filament panel where I generate new keys and look at the analytics. It records the page address, the referring page, the user agent, the IP to work out the country, a session identifier and the date and time, only after consent, and keeps the data for up to 12 months. Like the CMS, it runs on PostgreSQL in Docker on a home server.

Technical skills

My experience with Laravel includes migrations and seeders for database versioning, complex Eloquent relationships, custom middleware and authentication. I've worked with the queue and job system for asynchronous processing and with caching, use Artisan to automate repetitive tasks and Vite to compile frontend assets.

Dashboards at HSPI and where I started

At HSPI I've built internal dashboards in Laravel. I wrote my first Laravel code at the Boolean bootcamp, between February and July 2022.

Rating
4/10

Where i've used it: