How Hipcamp upgraded Expo SDK versions with Claude Code
Key Points
- Automated dependency audit with AI agents
- Replaced many libs with Expo modules and structured DB tracking
- Upgrade time cut from months to weeks
Summary
Hipcamp used an internal AI agent (Scout, powered by Claude/Claude Code techniques) to automate a large Expo SDK upgrade from Expo 50 (RN 0.73) to Expo 54 (RN 0.81 / React 19.1) and adopt React Native's New Architecture (16kb Android page size). The agent performed a dependency audit, created upgrade PRs, and validated builds so engineers could focus on complex issues. The automated approach reduced an estimated 2–3 month effort to a couple of weeks.
Key Points
- Goals
- Only touch dependencies that are required; prefer replacing with Expo modules when available.
- Use patch-package only as a last resort.
- Multi-phase workflow
- Phase 1: Build an agent and index your codebase to avoid hallucinations.
- Phase 2: Audit every dependency (one per subagent), record notes and results in per-dep files and a sqlite DB.
- Phase 3: Have subagents open upgrade PRs, run lint/tsc/bundle, create EAS builds, and attach build artifacts and QA notes.
- Phase 4: QA with staged rollouts, monitor errors, and iterate fixes.
- Audit requirements (examples to automate)
- Read changelogs and migration docs, search GitHub issues, check peer-deps and conflicts, and verify New Architecture / 16kb support.
- Produce structured output: per-dep markdown + sqlite rows (name, expo_50_version, expo_54_version, new_arch_support, sixteenkb_support, status, change_recommendation, etc.).
- Practical checklist for engineers
- Index app architecture before automation.
- Run automated audits one dependency per agent/subagent.
- After upgrades: run yarn lint, tsc, react-native bundle; create EAS builds for iOS/Android and validate.
- Use company-wide QA ("QA party") and staged rollouts; integrate error tracking and performance profiling (e.g., Expo Observe).
- Outcome and caveats
- Most dependencies were upgraded or swapped to Expo modules; total upgrade time shortened dramatically.
- Minimal post-upgrade regressions observed; one notable increase in memory usage under New Architecture required focused debugging.
Practical recommendations
- Prefer Expo modules when possible to reduce maintenance and native complexity.
- Track audit results in a structured DB to sync with PM/workflow tools.
- Use subagents for long-running, single-responsibility tasks to keep PRs small and reviewable.
- Budget for a short focused debugging phase for New Architecture issues (e.g., memory/performance).