Stacks vs Laravel

Everything you like about Laravel, in the language your front end already speaks.

Stacks does not pretend to be an independent invention. Models, migrations, queues, mail, events, gates, and an expressive CLI are Laravel ideas, and they are good ones. What changes is the language: one TypeScript type graph from the database row to the rendered view, with no boundary in between.

What Laravel is.

In its own terms, not ours.

Laravel is the most complete web framework in any language, and after a decade it shows: Eloquent, queues, Horizon, Echo, Livewire, Filament, Forge, Vapor, Nova, and a community that has written about every problem you will meet. If you are a PHP team, nothing on this page is a reason to leave, and this comparison is not trying to be one.

Where each one wins.

Same amount of room on both sides, on purpose.

Pick Laravel for

  • Maturity and ecosystem

    A decade of packages, hosting products, books, courses, and conference talks. Stacks is early and its ecosystem is small by comparison.

  • Hosting is a solved problem

    Forge, Vapor, Cloud, and every shared host on earth run PHP. Deploying Laravel is boring in the best sense.

  • Filament and Nova

    The admin panel ecosystem in Laravel is deeper than the built-in Stacks dashboard, particularly for heavily customised back offices.

  • Hiring

    The pool of experienced Laravel developers is far larger than the pool who have used Stacks.

Pick Stacks for

  • One language, one type graph

    The model, the action, the route, the view, and the API client are all TypeScript and all typed against each other. No PHP array to JSON boundary in the middle.

  • Migrations from models

    Schema is declared on the model and diffed into SQL, rather than being maintained twice.

  • Front end in the box

    STX components and signals are part of the framework, so there is no Livewire or Inertia decision to make.

  • Infrastructure in the repository

    DNS, TLS, CDN, and mail records are declared in config and applied by buddy deploy, without a paid platform.

  • One runtime for everything

    The server, the CLI, the tests, and the build all run on Bun, so there is no separate Node toolchain beside the PHP one.

  • No deploy platform subscription

    Forge runs $12 to $39 a month and Vapor $39 a month, both before the AWS bill. buddy deploy ships in the framework itself, so the only recurring cost is the same AWS bill either way.

  • A mail server, not just a mail sender

    Laravel pairs with SES or Postmark for sending and Google Workspace or Fastmail for real mailboxes. Stacks can run its own self-hostable SMTP and IMAP server, so a custom mailbox on your domain is infrastructure you already have rather than another subscription.

  • Real products, not a demo

    BugHQ (bughq.org), StatusHQ (statushq.org), AnalyticsHQ (analyticshq.org), and LogHQ (loghq.org) are Stacks applications running in production today, and all four are open source you can self-host rather than a SaaS you rent. CommsHQ, a marketing and communications platform built the same way, goes further either direction: self-host it for free or take one of its own hosted subscription plans.

Side by side.

The dimensions teams actually decide on.

Dimension Stacks Laravel
Language TypeScript end to end PHP on the server, JavaScript on the client
ORM defineModel(), migrations generated Eloquent, migrations hand-written
Views STX components with signals Blade, plus Livewire or Inertia
Queues Included, dashboard for failures Included, Horizon for monitoring
Realtime Included Echo with Reverb or Pusher
Admin Dashboard generated from models Filament (free) or Nova (paid, per project)
Deploy buddy deploy into your AWS account, no platform fee Forge $12-39/mo, Vapor $39/mo+, or Cloud from $5/mo+usage
Mailboxes Optional self-hosted SMTP and IMAP server A hosted inbox provider, billed separately
Ecosystem age Young Mature

If you did move.

What ports cleanly, what does not, and where to start.

The concepts carry over unchanged

Models, migrations, jobs, events, listeners, mail, middleware, and gates all exist here with the same names and much the same shape.

Eloquent models become defineModel()

Fillable, casts, relationships, and observers map onto attributes, traits, and the observe flag. Migrations are then generated rather than ported.

Blade becomes STX

The directives are deliberately familiar, so templates convert more easily than any other framework on this page.

Do it service by service

A Stacks API beside an existing Laravel application, sharing a database, is a workable intermediate step.

The verdict.

Both answers are real. Most teams already know which paragraph is theirs.

Choose Laravel when

Your team writes PHP, or you need the deepest ecosystem and the most proven hosting story available. Laravel remains the benchmark and there is no shame in that being the answer.

Choose Stacks when

Your team already writes TypeScript for the front end and you would rather not maintain two languages, two toolchains, and a serialisation boundary between them.

The frameworks that usually come up in the same conversation.