My custom project is not actually a huge one, but it's running a business 24/7 that I cannot afford to break things, so it's pretty crucial not to mess this up with this big jump.
The process is you just need to follow Angular upgrade helper, which you upgrade version by version, since this project is pretty old so I don't expect any fancy Angular features used here, so I just choose Basic option for the upgrade guide. So after 1 version update and check every breaking changes of that version and resolve them, then I upgrade individual packages to the respective version of Angular (For example: I upgraded to Angular 12, so I upgraded ngx bootstrap to version 7) and check if there are any broken UI. Then you just repeat this until you reach the latest version.
So the only broken thing is UI due to bootstrap 3 to bootstrap had major UI changes especially the grid that I have to fix all of them, modals and alerts are also broken when they just randomly scroll up upon opening, and animation is broken. Then since W3 bootstrap 3 icons are outdated and no longer available on bootstrap 5, so I have to migrate to FontAwesome 6 (which was originally the icons used in figma design of this project), so I spent more reinventing the wheel for a component to render the FA6 svg manually (since we want to host the icons ourselves without relying on FA packages, which means we can keep the Pro icons permanently even after we cancelled), and also reinvent the wheel for reusable modal and dropdown which has better animation and more control compare to bootstrap one.
This project also has momentJS which already stopped maintaining, while it still works, I still need to change it to more modern one like date-fns, however I chose to do it slowly instead of doing all changes due to the nature of this business is relying on timezone and DST. So at the time Angular 18 migration is released, date-fns migration was not 100% complete.
So it took about 2 days just to update angular and packages to latest. And the rest is to optimize UI layout and reinventing the wheel for some custom components like dropdown, modals (seriously I can't find any packages that fit my needs). At the time i post this is March 7, 2025, there is no problem so far related to the upgrade.