We ❤️ Open Source

A community education resource

3 min read

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

This article is adapted from “Building Goa: An open source journey” by Raphaël Simon, and is republished with permission from the author.

About the Author

The ATO Team is a small but skilled team of talented professionals, bringing you the best open source content possible.

Read the ATO Team's Full Bio

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.

Want to contribute your open source content?

Contribute to We ❤️ Open Source

Help educate our community by contributing a blog post, tutorial, or how-to.

This year we're hosting two world-class events!

Check out the AllThingsOpen.ai summary and join us for All Things Open 2025, October 12-14.

Open Source Meetups

We host some of the most active open source meetups in the U.S. Get more info and RSVP to an upcoming event.