Context
Nobody likes dependency upgrades. Bumping the version takes a second. Then you spend the afternoon chasing every breaking change through the codebase.
Shift is meant to do both halves for you, on any stack, and still leave you the last word.
Plan
- Detect the stack:
shift statusshows what you’re running and which upgrades are available. - Apply AST-based codemods for the code changes each upgrade needs.
- Show everything in an interactive merge editor, so you review it before anything is applied.
- Take a snapshot first, so any upgrade can be rolled back instantly.
shift init # scan project, create .shift/ config
shift status # show stack and available upgrades
shift upgrade react@19 # upgrade with interactive review
shift rollback 1 # instant rollback
Open questions
It’s still early, and I’m writing it in Rust. The order I’m working in: the workspace structure, stack detection, snapshot and rollback, the codemod engine, the merge editor, and then a public launch.