Define contracts once. Generate the transports, clients, docs, schemas, tools, and runtime glue that keep production code honest.
Documentation · Goa · Goa-AI · Examples · Discussions · Design First
|
Design-first APIs and microservices in Go. Write one DSL contract and generate type-safe HTTP, gRPC, JSON-RPC, clients, OpenAPI docs, CLIs, and transport scaffolding with zero drift between design and code. |
Design-first agentic systems in Go. Declare agents, tools, MCP servers, policies, structured model outputs, streaming events, and durable execution; generate the plumbing and run it locally or with Temporal. |
Install the generator, describe a service, and let Goa create the boring parts.
go install goa.design/goa/v3/cmd/goa@latest
mkdir hello && cd hello
go mod init example.com/hello
mkdir designpackage design
import . "goa.design/goa/v3/dsl"
var _ = Service("hello", func() {
Method("say_hello", func() {
Payload(func() {
Field(1, "name", String)
Required("name")
})
Result(String)
HTTP(func() {
GET("/hello/{name}")
})
})
})goa gen example.com/hello/design
goa example example.com/hello/design
go run ./cmd/helloFrom that one design, Goa generates server interfaces, transport adapters, clients, OpenAPI documentation, and command-line helpers. Your code stays focused on business behavior.
Goa-AI applies the same design-first contract model to agent systems:
- Typed tool contracts: Goa types, validations, examples, generated JSON Schema, and generated codecs.
- MCP integration: generated MCP servers and callers for exposing Goa services and consuming external tools.
- Structured completions: service-owned result schemas with unary and streaming helpers.
- Runtime policy: budgets, tool caps, confirmation gates, cancellation, retries, and bounded tool results.
- Durable execution: an in-memory development engine and a Temporal-backed production engine.
- Real-time products: typed stream events for assistant text, tool progress, awaits, child runs, usage, and status.
Start with the Goa-AI quickstart, then go deeper in the Goa-AI docs and repository guides.
- No drift: the design owns the contract; generated code, docs, schemas, and clients stay aligned.
- Less boilerplate: Goa generates the repetitive 30-50% of an API or agent system so teams build the behavior that matters.
- One contract, many surfaces: HTTP, gRPC, JSON-RPC, OpenAPI, clients, CLIs, tools, MCP adapters, and agent runtimes come from the same source.
- Production boundaries: business logic stays separate from transports, model providers, workflow engines, storage, and observability.
| Project | What it is for |
|---|---|
| goa | The core design-first framework and code generator for Go APIs and services. |
| goa-ai | Agents, tools, MCP, structured completions, policies, streaming events, and durable runtimes. |
| examples | Copy-pasteable services that show specific Goa capabilities in real projects. |
| plugins | Official plugins that extend Goa generation. |
| clue | OpenTelemetry-based observability for logs, metrics, traces, and health. |
| pulse | Event streaming, replicated maps, Redis-backed semaphores, and distributed worker pools. |
| model | C4 software architecture diagrams as Go code. |
We are building Goa with people who care about typed contracts, generated infrastructure, clean service boundaries, and production-grade Go systems.
- Join the Goa Slack channel.
- Follow project updates on Design First.
- Ask questions and shape the roadmap in GitHub Discussions.
- Read the published documentation at goa.design.
Use incident.io to run incidents end-to-end, rapidly fix issues, and learn from them so your team can build more resilient products. Learn more |
Speakeasy helps teams create feature-rich, production-ready SDKs and improve API developer experience. Integrate with Goa |
Goa Design is open source and community-built. The most helpful contributions come with a small design, a failing test, a clear reproduction, or a focused documentation improvement.
Start with the contributing guide and code of conduct, or browse good first issues.