Portfolio
Proyecto propio (esta web) · 2026

This very site: a bilingual Laravel portfolio from scratch

Laravel 13, i18n, SEO and security

The site you are reading: a bilingual portfolio and blog on Laravel 13 with a custom admin panel that manages ALL content (posts, tags, portfolio, testimonials, clients and messages) without touching code.

My role Full design and implementation (full-stack)

  • Laravel 13.8
  • PHP 8.3
  • Tailwind CSS v4
  • MariaDB
  • Docker
  • Pest 4
  • JSON-LD / Schema.org
  • Sentry
This very site: a bilingual Laravel portfolio from scratch
24
Commits
~1.630
PHP lines (app/)
37
Blade views
24
Pest tests

Screenshots

Problem

I needed my own website to win clients as a senior Moodle/PHP developer, instead of a vendor CMS I had no control over. And above all I wanted to manage all the content myself —blog, portfolio, testimonials, clients, messages— without touching code or depending on anyone to publish or fix things.

Solution

I built it on Laravel 13 with a custom admin panel that manages absolutely everything: blog posts with their tag taxonomy, portfolio case studies (create, edit, delete, ordering and featured), testimonials, clients and the contact-form messages. It includes image uploads with responsive WebP conversion (320/640/1024), field-by-field ES/EN bilingual editing, and access protected with TOTP 2FA, throttling and a honeypot. The front end is Tailwind v4 with localized-slug i18n, per-page JSON-LD SEO, a dynamic sitemap and per-request nonce CSP headers.

Result

The site runs in production fully under my control: I can create and edit any content —posts, portfolio, tags, testimonials, clients— from the backend, with no deploys or technical help. It is backed by CI tests and automatic daily backups. It is also living proof of how I work: clean architecture, a bespoke admin panel, WCAG AA accessibility and careful end-to-end security.