Laravel

Mis paquetes favoritos de Laravel

Autorangel cruz
Actualizado
Publicado
Lectura4 min de lectura
Mis paquetes favoritos de Laravel

Estos son los paquetes de Laravel que instalo casi en cada proyecto. No es una lista exhaustiva ni un ranking: son los que, después de años, siguen resolviéndome problemas reales sin estorbar. La mayoría son de Spatie, que es prácticamente sinónimo de paquetes Laravel bien mantenidos. Para cada uno te digo qué hace y cuándo lo uso.

Gestión de datos y modelos

spatie/laravel-permission — roles y permisos

El que más repito. Añade roles y permisos a tus modelos con una API limpia ($user->assignRole(), $user->can()), respaldado por tablas en base de datos. Lo uso en cuanto un proyecto tiene más de un tipo de usuario (admin, editor, cliente). Evita reinventar la autorización a mano.

spatie/laravel-sluggable — slugs automáticos

Genera el slug de un modelo a partir de un campo (por ejemplo el título) automáticamente, cuidando unicidad. Lo pongo en cualquier modelo que vaya a tener URL amigable: posts, productos, páginas. Cero lógica manual para generar y validar slugs.

spatie/laravel-medialibrary — archivos asociados a modelos

Asocia archivos e imágenes a tus modelos Eloquent y genera conversiones (thumbnails, distintos tamaños) sobre la marcha. Lo uso siempre que hay uploads: avatares, galerías, adjuntos. Te ahorra todo el trabajo de mover archivos, versionarlos y servir la conversión correcta.

SEO y contenido

spatie/laravel-sitemap — sitemaps

Genera el sitemap.xml del sitio, ya sea rastreando las rutas o construyéndolo a mano desde tus modelos. Imprescindible en cualquier proyecto donde el SEO importe.

spatie/laravel-feed — feeds RSS/Atom

Crea feeds RSS/Atom a partir de tus modelos con muy poca configuración. Lo uso en blogs y secciones de noticias (de hecho, un feed limpio es lo que permite sindicar tu contenido a plataformas como dev.to).

Formularios y privacidad

spatie/laravel-honeypot — anti-spam en formularios

Protege tus formularios de bots con la técnica del honeypot (un campo trampa invisible), sin CAPTCHA ni fricción para el usuario real. Lo pongo en cualquier formulario público: contacto, comentarios, registro.

Muestra un banner de consentimiento de cookies listo para usar. Útil cuando el proyecto tiene requisitos legales de privacidad y no quieres montar el banner desde cero.

Internacionalización

mcamara/laravel-localization — rutas por idioma

Añade el locale en la URL (/es/..., /en/...) y gestiona el idioma activo por ruta. El que uso cuando un sitio necesita ser multi-idioma de verdad, con URLs localizadas para SEO.

Cómo elegir un paquete (y cuándo no usarlo)

Un paquete es deuda que aceptas a cambio de tiempo. Antes de instalar uno reviso tres cosas: que esté mantenido (commits recientes, compatible con tu versión de Laravel), que resuelva algo no trivial (para tres líneas de código no vale la pena), y que no arrastre dependencias que no quieras. Por eso casi todos los de esta lista son de Spatie: llevan años mantenidos y son predecibles.

Y recuerda fijar versiones: mantener tu composer.lock bajo control es lo que evita que una actualización te rompa producción.

Preguntas frecuentes

¿Cuál es el paquete de Laravel más útil para empezar?

Si tu proyecto tiene distintos tipos de usuario, spatie/laravel-permission (roles y permisos) es el que más impacto tiene desde el día uno. Le sigue spatie/laravel-medialibrary en cuanto necesites subir archivos.

¿Por qué tantos paquetes de Spatie?

Porque llevan años bien mantenidos, tienen documentación clara y son compatibles con las versiones nuevas de Laravel rápido. En la práctica, apostar por Spatie reduce el riesgo de quedarte con un paquete abandonado.

¿Cómo sé si un paquete de Laravel está bien mantenido?

Mira los commits recientes, los issues abiertos/cerrados, la compatibilidad declarada con tu versión de Laravel y el número de descargas en Packagist. Un paquete sin actividad en mucho tiempo es una señal de alerta.

¿Conviene usar muchos paquetes?

Cada paquete es una dependencia que tendrás que mantener y actualizar. Usa los que te ahorren trabajo real y evita meter uno por algo que resuelves en pocas líneas.