On every page load, before anything rendered, the app made a network request to fetch plant configuration: production lines, machine assignments, site-specific rules. The response rarely changed between deploys. The fetch never went away.
The Overhead
The render pipeline waited for four steps: JavaScript bundle parsed, framework hydrated, configuration fetched, page rendered. Step three added latency on every single page load and introduced a failure mode. If that request failed, the page wouldn't render at all. It was overhead disguised as a feature.
The Fix
Static configuration that doesn't change between deploys was moved to build time. It now ships inside the JavaScript bundle instead of being fetched at runtime. No separate request, no loading state waiting on config, the build process bakes it in.
Runtime overrides are still possible for site-specific tweaks. The architecture wasn't broken, just over-engineered for a use case that no longer existed.
The Results
One fewer network request per page load. No loading flash caused by a config fetch. Configuration is now versioned with the app. A bad deploy includes bad config, and both get fixed together.
The tradeoff is deliberate. Plant configuration rarely changes intentionally, and when it does, that change should be part of a proper release cycle, not a hot-patch. The old fetch pattern made config changes invisible to deployment history. Now they are not.