We ❤️ Open Source
A community education resource
Building APIs with intent: Raphaël Simon on Goa and design-first development
Why starting with design matters when building APIs and services in Go.

This post is inspired by the open source maintainer month, highlighting the developers behind key projects that shape how we build software today.
Raphaël Simon created Goa to solve a problem he experienced firsthand: Building APIs in Go lacked structure, especially at the design level. Having worked on both web and enterprise applications, he found existing tooling insufficient for modeling services clearly and consistently. In 2014, he started work on Goa, a design-first framework that puts API definition before code.
Instead of jumping straight into implementation, Goa encourages developers to start with a high-level design written in a domain-specific language. From that single source, Goa generates idiomatic Go code, as well as documentation and other helpful artifacts. Raphaël sees this as a way to keep teams aligned, reduce duplication, and improve maintainability, especially in service-oriented architectures where clarity matters.
Read more: The missing metric in open source: Who’s using your code?
Maintaining an open source framework like Goa comes with its own set of challenges. Raphaël points to time constraints and balancing community feature requests with the project’s long-term vision. But he also emphasizes how meaningful contributions from thoughtful users have strengthened the framework. That back-and-forth with contributors has been essential to Goa’s evolution.
For Raphaël, open source isn’t just about putting code online, it’s about building tools that others can rely on and improve. He invites developers to participate by asking questions, sharing ideas, and submitting changes. Goa continues to grow as both a tool and a community because of this shared commitment.
Key takeaways
- Start with design: Goa enables teams to define APIs before implementation, making systems easier to understand and maintain.
- Generated code saves time: Goa creates boilerplate code automatically, helping developers focus on core logic.
- Community improves quality: Thoughtful contributions and open dialogue shape the framework’s direction.
Raphaël Simon’s work on Goa highlights how a single pain point, unclear API structure, can inspire a widely used solution. His approach combines careful planning with open collaboration, offering a model for anyone looking to build better tools through open source. At the end of the day, “Turns out, sometimes solving your own problems ends up helping a lot of other people too.”
More from We Love Open Source
- The missing metric in open source: Who’s using your code?
- Measuring open source community health with Savannah
- Why AI won’t replace developers
- What is OpenTelemetry?
This article is adapted from “Building Goa: An open source journey” by Raphaël Simon, and is republished with permission from the author.
The opinions expressed on this website are those of each author, not of the author's employer or All Things Open/We Love Open Source.