An existing code base, even one as recent as 4 years old, gives you something to test against. You haven't specified why you have to abandon it, especially as it's practically brand new.<p>If you have to migrate to a new platform, try to get buy in from everyone that you're going to <i>only</i> match feature for feature, until the old one is turned off for the last time.<p>You can make decisions with upgrades in mind, but just push to get it moved completely first. You don't want to end up paying technical debt in 2 places forever.
Generally, the older it is, the harder it is to redo. There's a <i>lot</i> of undocumented bug fixes that accumulate as a project gets older. Some things are so bad that you just can't do anything with it and it's easier rebuilt than done.<p>Often it's best to have high test coverage when migrating. You can push this to be part of the current project if it's not there and it's some productivity anyway. I usually skip things that test/mock the code and just do things like UI or API tests.<p>Migrations may take much, much, much, much longer than anticipated. If you have a gantt chart of some kind, make sure it's not reliant on the migration.
More details?<p>This can be so different between some small company's website vs an enterprise SASS, for example.<p>What is your project? Who are the stakeholders? Who are the users? What are your resources and budget? What are your goals and constraints?