5. The API deprecations: manageable on Alloy, more interesting on real sites
CMS 13 means a range of long-standing APIs are obsolete. PageReference and PageData.PageLink are going away, which is part of a push to treat all content generically rather than page-specifically. ContentArea.FilteredItems is replaced by a new filtering interface. Various shell UI utilities have been moved or merged.
On a clean, simple codebase, these are findable and fixable. The compiler surfaces them, you work through the list, and you're done.
On a production codebase with several years of development history, it's a different picture. We've seen real sites where these deprecated patterns are deeply embedded in shared rendering pipelines, base page templates, and utility libraries that everything else depends on. In those cases, the deprecations aren't a tidy checklist and will need a genuine refactoring, which in turn needs time and proper testing coverage.
Our advice is straightforward: start with Optimizely's published list of breaking changes, work through which of those actually affect you specifically, and build a migration plan from there. It sounds obvious, but when you do this upfront, you're going to move faster than finding those breaking changes halfway through.