API Console by MuleSoft

UX / UI design, Product design, development
Project Overview
MuleSoft's API Console is a developer tool that automatically generates API consumer documentation by reading any API specification like RAML, OAS, and Async. The console is used internally by various MuleSoft products including API Designer, Anypoint Studio, Anypoint Exchange, ACM, and Advanced REST Client. This versatile application can be easily incorporated into any web environment, including Salesforce platform and customers' custom CMS.
My Contributions
Upon joining MuleSoft, I took on the role of product designer, product manager, and engineer for the product. I was responsible for building both the logic and UI from the ground up and worked closely with developers across teams and platforms to implement API Console into various products.

The design process

When I began working on this product, only two products existed that could render documentation from an API specification: MuleSoft's API Console and Swagger UI. After evaluating the existing API Console and the closest competitor, Swagger UI, using internal feedback and public forums, I determined the main pain points and decided on the future direction for the product.

The first major decision I made was to separate the API specification parsing process from the documentation rendering. Previously, the console would parse the API specification every time it loaded in the browser, which could take minutes. By generating a view model from the API specification before publishing the documentation, I reduced the load time from several seconds to under a second. While I don't have exact values to share, the improvement was significant.

The second major change I made was to improve how the documentation was rendered. Previously, both Swagger UI and the API Console would display all endpoints on a single page with documentation below it. This proved to be inefficient for complex APIs, taking up to 15 seconds to render in some cases. I solved this by dividing the documentation rendering into separate pages for each endpoint, resulting in rendering times of about a second, which met our budget at the time.

Finally, I built the API Console using web components, allowing it to be embedded in different products and CMSs, even those using different technologies. Additionally, this approach enabled the reuse of API components in different applications, which was a cutting-edge approach to application design and development in 2016.

To improve the user experience, I utilized Google Analytics to measure user interaction with the documentation. I also held multiple sessions with users to gather feedback on their experience using the application. Based on their feedback, I redesigned the navigation to support indentation and search. Additionally, I introduced the option to view all operations within an endpoint at once, instead of just one operation. Lastly, I used their input to streamline the "try it" function, making it easier and faster for users to input data and send HTTP requests.

API Console summary page for the HTTP Bin API.
API Console - Google Drive API - Endpoint documentation.API Console - 403 response from the server - Google Drive API