---
title: "Remixing Shopify's Admin: How We Made It 30% Faster and AI-Ready"
description: "Shopify rebuilt its Admin architecture to address inconsistent loading, duplicate requests, and fragmented route knowledge across a TypeScript codebase serving 67 million daily page views. With 101 teams contributing about 350 pull requests daily and the codebase containing 3,184,248 lines of TypeScript, the work adopted Remix with Vite and SPA mode. Typed route manifests, globbed by Vite, now define metadata and a single source of truth for 1,017 routes, while Remix loaders start data fetching before large component bundles finish loading. Idle-time prefetching warms the Apollo cache, and persistent IndexDB storage helps frequently visited pages load between sessions. The changes delivered a 30% improvement in perceived load times, standardized transitions, and created an architecture in which Remix actions and zod schemas let Sidekick discover forms, validate inputs, and submit tasks without loading unnecessary JavaScript."
---

# Remixing Shopify's Admin: How We Made It 30% Faster and AI-Ready

[Shopify](https://yomu.fyi/company/shopify) · 2023-10-18 · Jun 30, 2025

**Type:** Problem & solution

## Summary

Shopify rebuilt its Admin architecture to address inconsistent loading, duplicate requests, and fragmented route knowledge across a TypeScript codebase serving 67 million daily page views. With 101 teams contributing about 350 pull requests daily and the codebase containing 3,184,248 lines of TypeScript, the work adopted Remix with Vite and SPA mode. Typed route manifests, globbed by Vite, now define metadata and a single source of truth for 1,017 routes, while Remix loaders start data fetching before large component bundles finish loading. Idle-time prefetching warms the Apollo cache, and persistent IndexDB storage helps frequently visited pages load between sessions. The changes delivered a 30% improvement in perceived load times, standardized transitions, and created an architecture in which Remix actions and zod schemas let Sidekick discover forms, validate inputs, and submit tasks without loading unnecessary JavaScript.

## Context

Shopify Admin had to support 67 million daily page views while 101 teams merged about 350 pull requests daily into a rapidly growing TypeScript codebase. This produced inconsistent loading patterns, duplicate data requests, conflicting implementations, and separate route sources of truth for systems such as Search and Sidekick.

## Approach / What changed

Shopify adopted Remix with Vite and SPA mode, replacing runtime route definitions with typed route manifests that are globbed during builds. Remix loaders start data fetching before component bundles load, while standardized transitions, idle-time prefetching, Apollo caching, and persistent IndexDB storage improve navigation. Remix actions and zod schemas expose route forms and validation for Sidekick.

## Takeaways

- Typed route manifests provide a build-time sitemap and a single source of truth for 1,017 Admin routes, including metadata such as descriptions, titles, and eligibility.
- Remix loaders let the Product Index route fetch data from a 3.2kb loader while its 914kb component bundle loads in parallel; idle-time prefetching also warms the Apollo cache.
- Remix actions and zod schemas allow Sidekick to identify routes, apply form schemas, validate fields, and submit POST requests without loading unnecessary JavaScript.

**Tags:** [Architecture](https://yomu.fyi/topic/architecture), [Developer Experience](https://yomu.fyi/topic/developer-experience), [Performance](https://yomu.fyi/topic/performance), [TypeScript](https://yomu.fyi/topic/typescript)

- Source: [Shopify](https://shopify.engineering/remixing-admin)
- Source URL: https://shopify.engineering/remixing-admin
- Ingested by Yomu: 2026-08-30T13:19:33.426Z

[Read original post](https://shopify.engineering/remixing-admin)
