At Etsy we have been doing some pioneering work with our web APIs. We switched to API-first design, have experimented with concurrency handling in our composition layer, introduced strong typing into our API design, experimented with code generation, and built distributed tracing tools for the API as part of this project. We faced a common challenge: much of our logic was implemented twice. All of the code that was built for the website then had to be rebuilt in our API to be used by our iOS and Android apps. We wanted an approach where we built everything on reusable API components that could be shared between the web and API. Unfortunately, our existing API framework couldn’t support this shared approach. The solution we settled on was to abandon the existing framework and rebuild it from scratch. Follow along this case study of building an API First architecture. Hear what problems prompted this drastic change. Learn which new tools we had to build to be able to work with the new system and what mistakes we made along the way. Finally, how did it end? How did the team adopt the new system and have we succeeded in our goals of API First? From our learnings, can we make the adoption of new systems and ideas easier for everyone?