Portafolio
Proyecto propio (esta web) · 2026

Esta misma web: portafolio Laravel bilingüe desde cero

Laravel 13, i18n, SEO y seguridad

La web que estás leyendo: portafolio y blog bilingües en Laravel 13 con un panel de administración propio desde el que se gestiona TODO el contenido (posts, etiquetas, portafolio, testimonios, clientes y mensajes) sin tocar código.

Mi rol Diseño e implementación completa (full-stack)

  • Laravel 13.8
  • PHP 8.3
  • Tailwind CSS v4
  • MariaDB
  • Docker
  • Pest 4
  • JSON-LD / Schema.org
  • Sentry
Esta misma web: portafolio Laravel bilingüe desde cero
24
Commits
~1.630
Líneas PHP (app/)
37
Vistas Blade
24
Tests Pest

Capturas

Problema

Necesitaba una web propia para captar clientes como desarrollador Moodle/PHP senior, en lugar de un CMS de proveedor sobre el que no tenía control. Y, sobre todo, quería poder gestionar todo el contenido yo mismo —blog, portafolio, testimonios, clientes, mensajes— sin tocar código ni depender de nadie para publicar o corregir.

Solución

La construí en Laravel 13 con un panel de administración propio desde el que se administra absolutamente todo: entradas de blog con su taxonomía de etiquetas, casos de portafolio (alta, edición, borrado, orden y destacados), testimonios, clientes y los mensajes del formulario de contacto. Incluye subida de imágenes con conversión responsive a WebP (320/640/1024), edición bilingüe ES/EN campo a campo, y acceso protegido con 2FA TOTP, throttling y honeypot. El front es Tailwind v4 con i18n por slugs localizados, SEO con JSON-LD por página, sitemap dinámico y cabeceras CSP con nonce por petición.

Resultado

El sitio corre en producción totalmente bajo mi control: puedo crear y editar cualquier contenido —posts, portafolio, etiquetas, testimonios, clientes— desde el backend, sin despliegues ni intervención técnica. Está respaldado por tests en CI y backups diarios automáticos. Es, además, la prueba viva de cómo trabajo: arquitectura limpia, panel a medida, accesibilidad WCAG AA y seguridad cuidada de extremo a extremo.