EasyPost initially built their web presence as a monolithic application that housed their marketing website, developer documentation, and customer dashboard under easypost.com. While this architecture served them well in their early stages, it eventually became a bottleneck for team productivity and scalability.

Challenge

The original architecture consisted of:

The primary pain point was the CI/CD pipeline, which had degraded to a 25-minute build time, severely impacting the team's ability to iterate quickly.

Solution

The migration strategy unfolded in three well-defined phases, each designed to address specific challenges and lay the groundwork for a more scalable and efficient architecture:

Phase 1: Next.js Migration

To modernize the web stack and lay the foundation for a scalable architecture, the first phase focused on migrating to Next.js.

Phase 2: Monorepo Implementation

Building on the foundation established in Phase 1, the second phase introduced a monorepo structure to improve organization and enhance build efficiency across multiple applications.