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.
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.
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:
To modernize the web stack and lay the foundation for a scalable architecture, the first phase focused on migrating to Next.js.
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.