- Knowledge
- technology
- OOP
- Tips
- Programming
- Tips
- Tutorial
- SEO
- Ranking
- Knowledge
- Special Day
- Seo
- Bug
- Data science
- Seo
- artificial intelligence
- Machine Learning
- Robotics
- happyNewYear2021
- newYearEve
- 2021
- Automation
- Smart Home
- Career
- Best Practices
- Git
- Logging
- Web Fundamentals
- DNS
- HTTPS
- Performance
- AI Tools
- ChatGPT
- Claude
- Gemini
- Laravel
- Eloquent
- MySQL
- HTTPS
- TLS
- Web Security
- Certificates
- Developer Life
- Debugging
- Docker
- DevOps
- Transactions
- Queues
- LLMs
- AI
- AI Coding
- Developer Tools
- React Native
- Expo
- Kate PMS
- Mobile Apps
- Laravel
- Authentication
- Sanctum
- Cookies
- API Design
- Payments
- Idempotency
- DeepSeek
- Open Source AI
- LLMs
- AI News
- Git
- Version Control
- AI Coding
- Prompting
- PHP
- Checklist
- MCP
- AI Agents
- OpenAI
- Architecture
- Microservices
- Modular Monolith
- Estimation
- Developer Life
- Project Planning
- Humour
- OAuth
- OpenID Connect
- Authentication
- Embeddings
- Vector Search
- RAG
- pgvector
- OpenAI
- GPT-4.1
- Codex CLI
- Events
- Testing
- Clean Code
- Maintainability
- Code Review
- Webhooks
- API
- Security
- Claude Code
- Workflow
- AI
- LLM
- Prompt Injection
- Mobile
- React
- Networking
- TCP
- UDP
- HTTP/3
- CLAUDE.md
- AWS
- Cloud Security
- Backups
- PHPUnit
- Software Engineering
- Leadership
- Communication
- RAG
- Embeddings
- AI Engineering
- IT Infrastructure
- Networking
- Access Control
- CI/CD
- GitHub Actions
- Gemini CLI
- Claude Code
- JavaScript
- Async/Await
- Node.js
- Promises
- Security
- Cryptography
- Passwords
- MySQL
- Database
- Vibe Coding
- Software Quality
- DNS
- Code Reading
- Onboarding
- Productivity
- Background Jobs
- Developer Humour
- Estimates
- Dev Life
- JWT
- o3-mini
- DeepSeek R1
- Rate Limiting
- Kate PMS
- E-Signing
- Audit Trail
- REST
- GraphQL
- API Design
- Laravel 12
- Upgrade Guide
- Open Source
- Self-Hosting
- Task Scheduling
- Cron
- Secrets
- CORS
- PHP
- PHP-FPM
- OPcache
- GitHub Copilot
- Software Architecture
- Engineering
- TypeScript
- JavaScript
- Type Safety
- AI Security
- React Native
- Product Design
- AI Agents
- Kiro
- Queues
- Redis
- RabbitMQ
- AWS SQS
- Nginx
- Apache
- GPT-5
- gpt-oss
- Clean Code
- Architecture
- Naming
- Documentation
- Career
- ADR
- Teamwork
- Supply Chain
- Kate HRM
- HR Software
- Permissions
- System Design
- Pagination
- SSH
- Linux
- Big O
- Databases
- Laravel Boost
- MCP
- Developer Skills
- Validation
- Databases
- Indexes
- Code Quality
- Deployment
- Developer Humour
- Feature Flags
- Code Review
- Pull Requests
- Docker
- Cursor
- Authorization
- RBAC
- Gemini
- Long Context
- PHP 8.4
- Caching
- Dependency Injection
- Web Performance
- Browser
- CSS
- Database
- Migrations
- ChatGPT
- AI for Developers
- Monitoring
- On-Call
- REST
- Backend
- SQL
- NoSQL
- Database Design
- Coding Agents
- Claude 4
- API Resources
- REST API
- Load Balancing
- Scaling
- AWS
- AI Tools
- Claude
- Sora 2
- CTE
- 2FA
- TOTP
- Programming Languages
- Prompts
- Developer Workflow
- API Gateway
- APIs
- Passport
- API Auth
- Learning
- Burnout
- Developer Growth
- Web Development
- SEO
- Kate Mall
- ChatGPT Atlas
- Agent Skills
- Middleware
- Laravel 12
- Collections
- Context Window
- Monitoring
- Commit Messages
- Self Review
- Growth
- Regex
- Programming Basics
- Text Processing
- Database Design
- Normalization
- Linux
- Server Security
- Linux Foundation
- Open Standards
- Legacy Code
- Documentation
- AI Workflow
- File Uploads
- Test Data
- Hashing
- Performance
- Caching
- Enums
- Scope Creep
- Estimation
- Codex
- Gemini CLI
- Timezones
- Carbon
- Bugs
- PHP 8.5
- Gemini 3
- GPT-5.1
- Data Integrity
- Event Loop
- Async
- Opus 4.5
- AI Models
- React
- Forms
- Frontend
- Backups
- AI Images
- DALL-E
- Midjourney
- Race Conditions
- Concurrency
- Legacy Code
- Refactoring
- Senior Engineer
- Scope
- LLM
- CDN
- Web
- Sub-Agents
- Soft Deletes
- Audit Log
- Concurrency
- AI Learning
- NestJS
- AI Evals
- Policies
- SPF DKIM DMARC
- Unicode
- UTF-8
- Knowledge Graph
- Value Objects
- Technical Debt
- Feature Flags
- Laravel Pennant
- Deployment
- Copilot
- Composer
- Dependencies
- Artisan
- Automation
- AWS S3
- Object Storage
- Cloud
- Small Language Models
- Ollama
- Production
- Sessions
- HTTP
- Mentoring
- SQL
- Virtual Machines
- Web Development
- HTTP/2
- QUIC
- Web Performance
- AI Integration
- LLM API
- SOLID
- OOP
- Hosting
- Serverless
- Merge Conflicts
- Temperature
- AI Development
- Reverse Proxy
- Nginx
- Infrastructure
- Verification
- Passkeys
- WebAuthn
- Teams
- Communication
- Stakeholders
- Monorepo
- CI/CD
- Versioning
- JSON Schema
- Livewire
- Inertia
- Meetings
- Distributed Systems
- Privacy
- Full-Stack
- T-Shaped Skills
- Money
- Notifications
- Web Security
- HTTP Headers
- CSP
- Function Calling
- Load Testing
- k6
- Data Extraction
- Debugging
- WebSockets
- SSE
- Real-Time
- Laravel Reverb
- Infrastructure as Code
- Terraform
- Side Projects
- Laravel Pint
- OpenAPI
- Swagger
- UX
- Multimodal
- Jest
- Pair Programming
- APIs
- Rate Limiting
- Resilience
- Dev Humour
- Design Tokens
- JWT
- API Keys
- Sessions
- PHPStan
- Rector
- Incidents
- Reporting
- Dashboards
- Zero Trust
- IAM
- Search
- Laravel Scout
- Junior Developers
- Mentoring
- Images
- WebP
- AVIF
- Bug Reports
- Let's Encrypt
- Design Docs
- Software Design
- Observers
- Replication
- Accountability
- Data Structures
- Reliability
- LLM Memory
- Error Handling
- Payments
- Payment Gateway
- Webhooks
- PCI DSS
- Observability
- OpenTelemetry
- Personal Brand
- Writing
- Conventions
- Dates
- Scheduling
- Disaster Recovery
- Compression
- Brotli
- Deadlines
- Developer Habits
- State Machines
- Tech Roles
- UUID
- ULID
- Horizon
- Planning
- Engineering Culture
- Ownership
- Soft Skills
- Socialite
- Cost Control
- Collations
- Unicode
- Octane
- PostgreSQL
Laravel 12 Is Out: What Changed and How to Upgrade
About Post
A new major version of your framework usually means a weekend of reading upgrade guides and fixing things that used to work.
Laravel 12, released on 24 February, is refreshingly different. The Laravel team describes it as a maintenance release: it updates dependencies, keeps breaking changes to a minimum, and puts its big new ideas into how you start a project rather than how your existing one runs. For most apps, upgrading should be one of the least dramatic major upgrades you've done.
Here's what's new, what to watch for, and a checklist for moving an app over.
Why a "quiet" major release is good news
Laravel ships a major version roughly once a year, and the jump from 10 to 11 brought a big change to the application skeleton (the slimmer structure with bootstrap/app.php doing much of the configuration). Laravel 12 doesn't do anything like that. Most Laravel 11 apps should be able to upgrade without touching their application code.
That's exactly what you want from a framework that runs real businesses. Boring upgrades mean teams actually stay current, which means they keep getting security fixes.
The headline feature: new starter kits
The visible change is the new set of application starter kits, which replace Breeze and Jetstream as the recommended way to begin a new app. There are three:
- React, built with Inertia, TypeScript, Tailwind and shadcn/ui components.
- Vue, with the same Inertia and TypeScript approach.
- Livewire, for teams that prefer to stay in PHP and Blade, using the Flux UI component library.
Each comes with authentication screens and a clean dashboard layout ready to build on. The interesting design choice is that the kit's code is placed in your app, not hidden in a package. It's your code from day one, to change however you like.
Each kit also has an optional variant using WorkOS AuthKit, for teams that want social logins, passkeys or single sign-on without building them. The standard variants keep using Laravel's own built-in authentication.
Breeze and Jetstream don't disappear from existing apps, but they're no longer where new development is heading. If you're starting something new, the new kits are the place to begin.
What to check before you upgrade
"Minimal breaking changes" isn't "zero". The official upgrade guide is short, and you should read it end to end, but these are the items I'd look at first:
- Dependencies:
laravel/frameworkgoes to^12.0, and if you use them, PHPUnit to^11.0and Pest to^3.0. Laravel 12 requires PHP 8.2 or newer. - Carbon 3: support for Carbon 2 has been removed. If any of your code or packages pin Carbon 2, that's your first blocker.
- UUIDs: the
HasUuidstrait now generates ordered UUIDv7 values. If you depend on the old random UUIDv4 behaviour, switch to theHasVersion4Uuidstrait. - SVG images: the
imagevalidation rule no longer accepts SVG files by default. Useimage:allow_svgwhere you really want them. - Your packages: the real work in most upgrades isn't Laravel itself, it's waiting for every third-party package to declare Laravel 12 support.
An upgrade checklist
- Make sure you're on the latest Laravel 11 release and your test suite is green.
- Check that every package in
composer.jsonsupports Laravel 12.composer outdatedand each package's changelog are your friends. - Create a branch and update the version constraints:
"require": { "php": "^8.2", "laravel/framework": "^12.0" }, "require-dev": { "phpunit/phpunit": "^11.0" } - Run
composer updateand fix whatever Composer complains about first. - Go through the upgrade guide's list and search your code for each affected feature (
HasUuids, theimagerule, Carbon usage). - Run the full test suite, then click through the critical flows by hand: login, payments, file uploads, anything with dates.
- Deploy to staging first, with real-looking data, and watch the logs and queues for a day.
- Clear and rebuild caches on deploy (
config:cache,route:cache,view:cache) and restart your queue workers.
Upgrade tip: keep the framework upgrade in its own pull request. Don't mix it with features or refactors. If something breaks, you want to know it was the upgrade, and you want to be able to roll back cleanly.
Should you upgrade now?
For new projects: yes, start on Laravel 12 and try the new starter kits.
For existing apps: there's no rush, but there's also little reason to wait long. Laravel 11 keeps receiving bug and security fixes for a while (the release notes list the support dates), so you can plan the upgrade properly instead of doing it in a panic. Because this release is so light, it's a good one to do early, while the diff is small and your packages are catching up.
A side note: a busy day for developer tools
24 February turned out to be a big day beyond Laravel too. On the same day, Anthropic released Claude 3.7 Sonnet and a research preview of Claude Code, an agentic coding tool that works directly in your terminal. I'll write more once I've spent proper time with it, but it's an interesting coincidence: a framework release built around starter kits that become your code, and a tool built to help you work on that code.
The short version
- Laravel 12 is a maintenance release with minimal breaking changes.
- New starter kits for React, Vue and Livewire, with an optional WorkOS AuthKit flavour.
- Check Carbon 3,
HasUuids, SVG validation and your packages before upgrading. - Upgrade in a dedicated branch, test, stage, then ship.
Are you upgrading your apps to Laravel 12 right away, or waiting for your packages to catch up first?

Be first to comment it...