# ToGO for Laravel developers: the artisan commands you know, in Go

> A translation table from Laravel to ToGO: artisan to togo, Eloquent to sqlc, migrations to Atlas, service providers to plugins, Blade/Inertia to React.

*2026-11-01T05:02:45Z*

I have written PHP and Laravel for more than ten years, including 60+ Filament plugins under TomatoPHP. When I started building services in Go, what I missed was not the language. It was `php artisan make:...`.

ToGO is built so a Laravel developer feels at home on day one. Here is the translation table I wish I had.

## The command map

| Laravel | ToGO |
|---|---|
| `laravel new app` | `togo new app` |
| `php artisan make:model Post -mcr` | `togo make:resource Post title:string body:text` |
| `php artisan make:model` | `togo make:model` |
| `php artisan make:controller` | `togo make:controller` |
| `php artisan migrate` | `togo migrate` |
| `php artisan db:seed` | `togo seed` |
| `php artisan serve` + `npm run dev` | `togo dev` / `togo serve` |
| `composer require vendor/package` | `togo install togo-framework/<plugin>` |
| custom artisan command | `togo make:plugin` or any `togo-<cmd>` binary on your PATH |

## Concept by concept

**Eloquent → sqlc.** In Laravel you write `Post::where('published', true)->get()`. In ToGO you write the SQL once in a query file and sqlc generates a typed Go function. No reflection at runtime, and the compiler catches a renamed column.

**Migrations → Atlas.** You still describe tables per resource; Atlas plans and applies the change. `togo migrate` runs it, and `.env` is loaded for `migrate`, `seed` and `dev`, just like you expect.

**Service providers → plugins.** A ToGO plugin implements `Name()`, `Priority()`, `Register(k)` and `Boot(ctx, k)`. It calls `togo.Register(p)` in `init()`, and your app imports it. Lower priority boots first, the same idea as provider order. Plugins listen to kernel events through a hook bus (`On(event, priority, fn)`), similar to Laravel events.

**Routes and controllers → Huma + GraphQL.** Each resource gets a REST handler with an OpenAPI 3.1 spec (think API resources with free Swagger) and a GraphQL schema. Routing is chi under the hood.

**Blade / Inertia → React.** The frontend is React (Next.js or TanStack). `make:resource` also generates the TypeScript client, a hook and a page, so you don't hand-write `axios` calls.

**Packages → the marketplace.** Auth (JWT, RBAC, multi-guard, Supabase), payments (Stripe, Paymob, Fawry, Tap, Moyasar, PayTabs, Lemon Squeezy), Redis cache, S3 storage, Meilisearch, Resend mail, NATS queues and more: browse the [plugin marketplace](/marketplace).

**Laravel Boost / MCP → built in.** Every new ToGO app ships an MCP server and a `.mcp.json`. Claude Code can inspect your schema, routes and logs and run generators through MCP tools.

## A first resource, start to finish

```bash
go install github.com/togo-framework/cli/cmd/togo@latest
togo new blog
cd blog
togo make:resource Post title:string body:text:nullable published:bool
togo generate
togo migrate
togo serve
```

No Go toolchain? Grab a binary from [GitHub releases](https://github.com/togo-framework/cli/releases).

You now have a table, typed queries, REST + GraphQL endpoints with OpenAPI docs, and a React page for posts.

## What you give up (honestly)

- Laravel's huge ecosystem and its decade of answers. ToGO is pre-1.0 and small.
- Eloquent's convenience for quick, dynamic queries. sqlc asks you to write SQL.
- If you pick Postgres today, review the generated schema before migrating; the template is SQLite-first.

## What you get

- One language and one type system from the database to the API, plus TypeScript types on the frontend.
- Static Go binaries that start fast and deploy to a small server, Fly, Docker or GCP (`togo infra:init gcp|fly|docker`, then `togo deploy`).
- An app that AI agents can understand and drive from day one.

Next: [ToGO vs Laravel, Rails and Buffalo](/en/blog/togo-vs-laravel-rails-buffalo) · [How ToGO's plugin marketplace works](/en/blog/togo-plugin-marketplace-microkernel) · [the full ToGO walkthrough](/en/blog/togo-go-react-framework-artisan-cli).

Moving a Laravel product to Go and want help? [Product engineering with Fady Mondy](https://fadymondy.com/en/services/product-engineering).

---

Source: https://to-go.dev/en/blog/togo-for-laravel-developers
