Role: UX, Design & Development
Aptible is a Platform as a service (PaaS) tool used by startups to deploy apps and managed databases. Engineering teams use Aptible to ship code without worrying about security and the underlying cloud infrastructure that runs their code. As the sole designer, I worked with leadership and developers to redesign our entire web application. I also helped translate my designs into production code, contributing my coding skills when feasible for visual styling.
Aptible offers a free trial to everyone. I was tasked with redesigning our onboarding flow to improve clarity & add ways to deploy apps. Before my redesign, Some problems we faced were cognitive overload (too many instructions) and context switching (asking devs to leave the browser to perform actions). After many design iterations, usability sessions, and feedback survey responses, we added the ability to set up automatic deployments through GitHub Actions. Pre-made app templates allowed engineers to see our product’s value much faster too. We also added runtime logs, so devs can fix misconfigurations and re-run failed deployments. I gained a deeper understanding about building dockerfiles and troubleshooting runtime errors.
Stacks are where code is deployed inside Aptible’s cloud (ex. us-east-1). Teams can choose between shared stacks (for non-sensitive data) or purchase dedicated stacks that provide network isolation. Within stacks users create environments — groups of apps and databases. Before my redesign, navigating stacks and environments was cumbersome. The full list was squeezed inside a left sidebar panel. I observed users typing CMD + F to hunt for stacks by name, and their visual styling was too similar to tell apart from environments. To improve discovery, we created global pages for important Aptible primitives. This extra screen real estate allowed us to display more information, add column sorting, and show a proper search bar to filter results.
Keeping track of cloud resources inside Aptible was too difficult before the redesign, because the typography made every resource look alike. I introduced a set of icons and images for all Aptible primitives to ease new users into our concepts. I improved the usability of our resource detail pages by adding consistent breadcrumbs for navigation, header detail boxes for clarity with doc links, and settings tabs for important actions. The biggest ask from users was a global activity page of all resource operations. We had to paginate this page to accommodate large customers with thousands of operations. We added a new Sources page to connect GitHub repos to their running Aptible apps too. I explored visualizations that show deployed commits moving over time between apps to improve observability.
Aptible offers granular access controls for admins to assign members to environments — Roles. I worked with our head of security to add sensible security settings, and interviewed users to see where the old design lacked clarity. A big painpoint was the roles page. Large customers had difficulty understanding who was in what role because we didn’t have filters (users would CMD + F here too). I added filters that default to hiding environments with no permissions granted; this improved data density and cut out noise dramatically. I also introduced a visual table of checks to clearly show permissions by type, and added a left-aligned list of members shown under each role name for quick scanning instead of long comma separated text blobs. I explored a bulk edit interaction too for admins to select a set of users and quickly assign or remove access to their roles.
Recognizing the time users put into customizing their Aptible environments, we understand the consequences of accidentally deprovisioning them. I explored ways to inform users and provide a clear path for regaining access to their resources after an accidental deprovision.