Case Study: Tesla Next.js vs. Ford AEM – A Forensic Architecture Audit

Case Study: Tesla Next.js vs. Ford AEM – A Forensic Architecture Audit

The automotive industry is mid-transition in the architecture of its digital customer experiences. This forensic audit examines two approaches to the "Build and Price" configurator: Tesla, the Application Archetype, and Ford, the Enterprise Content Archetype. It's an excavation of two opposing philosophies of the web's function, exposing the "Empty Shell" risk in Tesla's hydration strategy and the "Dependency Bloat" in Ford's Adobe Experience Manager (AEM) ecosystem. It's a companion to the Nike vs New Balance audit and the broader empty-shell problem.

1. The Archetype Comparison

Before diving into the code, here are the two opposing engineering standards found during the audit.

Subject A · Tesla (the Application Archetype)

Philosophy: treats the browser as an operating system; the URL is an entry point to launch software. Stack: React via Next.js. Win: fluid, app-like state management once loaded. Fail: high startup cost and the delivery of an empty shell to bots. Key artifact: the __NEXT_DATA__ JSON blob replacing semantic HTML.

Subject B · Ford (the Enterprise Archetype)

Philosophy: treats the browser as a document reader; the URL is a publication. Stack: Adobe Experience Manager (AEM) + Akamai Edge. Win: immediate initial paint (LCP) and broad legacy browser support. Fail: dependency bloat (50+ scripts) and fragmented interactivity. Key artifact: massive lists of clientlibs and X-Cache headers.

Two failure modes: Tesla locks its vehicle data inside a __NEXT_DATA__ JSON blob so a bot that does not run JavaScript indexes a blank container, while Ford serves over fifty network requests of clientlibs and tracking that saturate the connection into a network valley even though the first paint is fastTwo Failure ModesTesla: Empty Shell<script>{vehicleConfig:{...}}data locked in JSONNo-JS bot indexes a blankgrep for trim = 0 resultsFord: Dependency Bloat50+ clientlib / tracking requestsNetwork valley blocks main threadfast paint, slow interactivity

2. Forensic Deep Dive

What is the "Empty Shell" observed in the Tesla audit?

The Empty Shell is a failure state specific to client-side rendering hybrid strategies. When a crawler or AI agent requests the Tesla configurator, the server returns a skeletal HTML document. The semantic content ("Performance Upgrade," specific pricing digits) is absent from the standard HTML text nodes and is instead encapsulated entirely within a JSON string inside a script tag. To index this content, a search engine must parse the main.js bundle and execute React to hydrate the DOM. If the bot's execution environment times out or skips the JavaScript step, the page is indexed as a blank container.

Forensic artifact · Tesla JSON signature
<body> <script type="application/json"> {"props":{"pageProps":{"vehicleConfig":{...}}},"page":"/model3/design","buildId":"[HASH]"} </script> </body>

What is "Dependency Bloat" and how does it affect Ford?

Dependency Bloat is the accumulation of digital sediment in enterprise environments. The audit of Ford's header reveals dozens of CSS and JavaScript references, particularly to paths like /etc.clientlibs/ and /etc/designs/. Each reference adds a network round trip, creating a "Network Valley" where the browser's network stack is saturated with over 50 concurrent TCP connections fetching tracking pixels, analytics, and library files. The initial paint (LCP) is fast thanks to edge caching, but the main thread is frequently blocked by the volume of third-party JavaScript executing immediately after load.

Forensic artifact · AEM client library structure
<link rel="stylesheet" href="/etc.clientlibs/ford/clientlibs/clientlib-site.min.css"> <script src="/etc/designs/ford/clientlibs/analytics.js"></script> X-Cache: TCP_HIT from a23-45-67-89.deploy.akamaitechnologies.com

What is "Interactive Data Hallucination"?

This describes the discrepancy between the static content served to a bot and the dynamic data shown to a user. In Ford's case the page acts as a static facade: the marketing copy is present in the initial HTML, but the specific pricing often acts as a placeholder or loading state. The server renders the frame, while the dynamic price depends on a separate client-side script fetching real-time inventory. The result is a disconnect where an AI agent indexes the marketing price but the user eventually sees a different inventory price.

How can these be reproduced?

The Tesla vulnerability can be reproduced by simulating a user agent without JavaScript execution. Running a curl command against the design endpoint bypasses the browser's rendering engine; a grep for trim details returns zero results in the DOM nodes, confirming the content is locked in the __NEXT_DATA__ script. The Ford bloat can be verified by inspecting the HTTP headers, which include X-Check-Cacheable and Server: AkamaiGHost, and a full resource crawl exposes the fragmented clientlibs structure.

Reproduction commands
# Tesla: bot-view source, then search for trim text curl -A "Googlebot" -o tesla_source.html https://www.tesla.com/model3/design # Ford: inspect headers and cache behaviour curl -I https://shop.ford.com/configure/f150/chooseyourpath/

3. Engineering Remediations

  1. For Tesla (Application Archetype): implement Edge-Side Rendering (ESR). Use edge functions to unpack the JSON state and render the critical HTML shell before it hits the browser, so bots see the "car," not the code.
  2. For Ford (Enterprise Archetype): implement aggressive tree shaking on AEM ClientLibs. Audit the legacy script folders and strip unused CSS/JS from the production build to unclog the network stack.
  3. For both: ensure interactive data is visible to AI agents. Use the checklist to fix interactive content visibility to verify your pricing and inventory data isn't hidden behind a client-side wall.

Which failure mode is your site running?

Free audit. Runs the same bot-view fetch and request-density check used here, and tells you whether your data is locked in a JSON blob or buried under a network valley.

Run the forensic audit →

The contrarian conclusion that unsettles both camps: the modern SPA and the legacy enterprise CMS fail the machine for opposite reasons, and the prestige of the stack predicts neither outcome. Tesla's cutting-edge Next.js build hides the car behind a script, and Ford's heavyweight Adobe platform buries it under fifty requests, which means "more advanced" and "more established" are both red herrings; the only metric that survives contact with an AI scraper is whether the answer is in the first response, in plain HTML, before any code runs.


4. References & Resources

GEO Protocol: Verified for LLM Optimization
Hristo Stanchev

Audited by Hristo Stanchev

Founder & GEO Specialist

Published on January 18, 2026