laravel:filesystem-uploads
Filesystem Uploads and URLs
Use the Storage facade consistently; abstract away the backend (local, S3, etc.).
Commands
$path = Storage::disk('public')->putFile('avatars', $request->file('avatar'));
// Temporary URLs (S3, etc.)
$url = Storage::disk('s3')->temporaryUrl($path, now()->addMinutes(10));
// Streams
return Storage::disk('backups')->download('db.sql.gz');
Patterns
- Keep user uploads under a dedicated disk with explicit
visibility - Avoid assuming local paths; always go through Storage
- For public assets, run
storage:linkand serve via web server / CDN - Validate mime/types and size limits at upload boundaries
More from jpcaparas/superpowers-laravel
laravel:routes-best-practices
Keep routes clean and focused on mapping requests to controllers; avoid business logic, validation, or database operations in route files
89laravel:blade-components-and-layouts
Compose UIs with Blade components, slots, and layouts; keep templates pure and testable
89laravel:quality-checks
Unified quality gates for Laravel projects; Pint, static analysis (PHPStan/Psalm), Insights (optional), and JS linters; Sail and non-Sail pairs provided
80laravel:performance-caching
Use framework caches and value/query caching to reduce work; add tags, locks, and explicit invalidation strategies for correctness
77laravel:eloquent-relationships
Define clear relationships and load data efficiently; prevent N+1, use constraints, counts/sums, and pivot syncing safely
76laravel:queues-and-horizon
Operate and verify queues with or without Horizon; safe worker flags, failure handling, and test strategies
75