- 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
VPS vs Managed Platform vs Serverless: Where Should Your Laravel App Live?
About Post
"Where should we host it?" sounds like a technical question. It's really a question about who gets woken up when something breaks, and how much you want the monthly bill to surprise you.
For Laravel apps there are three broad options today: run your own server, hand the servers to a managed platform, or go serverless and stop thinking about servers at all (mostly). I've worked with Laravel on plain Linux servers and on AWS, and each option is the right answer for someone. Just rarely for everyone.
The housing analogy
- A VPS is owning a house. You decide everything, it's cheap per square metre, and when the boiler breaks at midnight, that's your problem.
- A managed platform is a serviced apartment. You move in with your suitcase (your code). Someone else handles the plumbing, and you pay for that service.
- Serverless is a hotel billed by the minute. Brilliant when you only need a room occasionally or suddenly need fifty rooms. Odd if you live there full time.
Option 1: a VPS (your own Linux server)
A virtual machine from AWS EC2, DigitalOcean, Hetzner, Linode or similar. You install Nginx, PHP-FPM, MySQL or a managed database, Redis, Supervisor for queue workers, and a cron entry for the scheduler.
Why people love it:
- Full control: any PHP extension, any system package, any cron schedule, long-running workers, WebSockets.
- A flat, predictable monthly price. Traffic spikes make it slower, not more expensive.
- Laravel runs exactly as it does locally. No special rules.
What it costs you in effort: OS updates, PHP upgrades, firewall rules, SSH hardening, TLS renewal, backups you've actually tested restoring, monitoring and log rotation. None of it is hard. All of it is easy to forget.
Tools like Laravel Forge sit on top of this option. It's still your VPS on your cloud account, but provisioning, Nginx config, SSL, deploy scripts and workers are set up for you. For many teams, that's the sweet spot: VPS prices with much less of the ops burden.
Option 2: a managed platform
You connect a Git repository and the platform builds, deploys and runs the app. Laravel Cloud is the Laravel team's own take on this category; general platforms such as Render, Fly.io or Heroku-style services work too, with more setup for Laravel specifics.
Why people love it:
- Push to deploy, preview environments, managed databases and caches, queue workers as a setting.
- Scaling is a slider, not a migration project.
- Nobody on the team needs to know what
ufwis.
The trade-offs: less control over the underlying system (unusual extensions or binaries can be awkward), pricing that grows with usage and add-ons, and some degree of lock-in to the platform's way of doing things. You're also trusting their uptime and support with yours.
Option 3: serverless
Your app runs as functions, typically on AWS Lambda. Laravel Vapor is the commercial option built for Laravel; Bref is the popular open-source way to run PHP on Lambda.
Why people love it:
- It scales up to very high traffic and back down to almost nothing without anyone touching it.
- No servers to patch at all.
- For spiky or seasonal traffic, paying per request can be far cheaper than idle servers.
The rules change, though. This is where Laravel apps get surprised:
- The filesystem is read-only except
/tmp, so uploads go to S3 and local file caches and sessions won't work. - No long-running processes. Queue workers become functions triggered by SQS, and the scheduler is triggered by an AWS event, not cron.
- Each invocation has a maximum duration, so long reports or imports need to be split into jobs.
- Lots of concurrent functions can mean lots of database connections. A connection proxy or careful limits matter.
- Cold starts add latency to the first request on a new instance.
- Cost is less predictable. A viral moment, or a badly behaved bot, shows up on the bill.
Side by side
| VPS (+ Forge) | Managed platform | Serverless | |
|---|---|---|---|
| Control | Full | Medium | Low (function rules) |
| Ops burden | Highest (lower with Forge) | Low | Low, but new concepts |
| Cost predictability | High: flat monthly | Medium: grows with usage | Lowest: per request |
| Scaling | Manual or scripted | Built in | Automatic |
| Queues and scheduler | Supervisor and cron, as normal | Platform workers | SQS and AWS events |
| Laravel "just works" | Yes | Mostly | With adjustments |
| Best for | Steady traffic, custom needs, cost-sensitive teams | Small teams who want to ship, not run servers | Spiky traffic, big scale, AWS-heavy teams |
How I'd choose
Ask three questions, in this order:
- Who will own the servers? If the honest answer is "nobody", rule out a raw VPS. Choose Forge on a VPS, a managed platform, or serverless.
- What does your traffic look like? Steady business traffic, like an internal portal used during office hours, suits a flat-priced server. Huge spikes, like ticket sales or a campaign landing page, suit serverless.
- Does your app need anything unusual? Long-running processes, WebSockets, heavy local file work, odd binaries or PHP extensions all point towards a VPS or a flexible platform.
My default: for a typical business Laravel app with steady traffic, a VPS managed with a tool like Forge, or a managed platform if nobody wants to own servers. Move to serverless when the traffic pattern, not the hype, asks for it.
Whatever you pick, do these
- Keep the app stateless: sessions and cache in Redis or the database, files in S3-compatible storage. It keeps every option open.
- Script your deploys.
composer install --no-dev, migrations,config:cache,route:cache, queue restart, in the same order every time. - Back up the database somewhere other than the server it runs on, and test a restore.
- Set up uptime checks and error tracking before launch, not after the first outage.
Where do your Laravel apps live right now, and what would make you move them?

Be first to comment it...