Start with the contract the product already relies on
A mature application relies on far more than a successful compilation. It expects particular asset URLs, route behavior, module loading, environment configuration, and deployment output. A new bundler has to preserve those expectations or change them deliberately.
Build a compatibility inventory
For a migration proof of concept, the useful checklist includes dynamic imports, route entry points, styles, static assets, development behavior, and production runtime checks. Each item should have a reproducible example and an expected result.
Existing application
→ dependency compatibility
→ import and asset behavior
→ route and runtime smoke checks
→ production output
→ deployment verification
Separate the questions
Does it build? Does it behave correctly? Does it improve developer experience? Can the team operate it? Those are separate questions. A positive answer to the first should not be presented as evidence for all four.
Performance comparisons also require a repeatable environment. Cold builds, incremental builds, and browser runtime are different measurements. An attractive number without those conditions is not a useful decision aid.
Keep rollback understandable
A smaller change surface makes it easier to isolate a regression and return to the previous path. Combining a bundler change with a framework rewrite may be justified, but it also makes it harder to identify which change caused a failure.
The modernization project described in this portfolio is a compatibility proof of concept. It does not claim a completed production migration or an unverified percentage improvement. That boundary is part of telling the engineering story accurately.