Migrating a landing page
I spent the majority of 2020 migrating a landing page, in this blog just wanted to share the experience and insights on what challenges I faced. Might help to keep some things in mind if/when you plan your own migration
Pretext
Migration is something we might often need to do based, will skip over the benefit as that might lead to a debate ๐
The migration was done for one of the landing pages for a food delivery application.
We were mainly migrating from PHP + Symfony stack to React + Node + Typescript stack
Challenges
- Hard to migrate years of hard work and sweat by many developers that previously have worked on it
- Abstractions are hard to find in a monolith application.
- Rework with the new framework, the migration cannot be mindless. We had to rewrite some stuff for the new framework, meaning some things might not be easily doable in the new stack. One example of this was with cookies
- Needed to time box and prioritize so we could deliver
How
- Presenting the idea to the team, is a gradual process. We had multiple discussions on the feasibility and the need
- A basic page was bootstrapped by the infra/dev-ops team. This is really crucial as it really helps save development time
- Then comes the fun part, divide and concur. This is how we divided the page, this then became our guide to creating components/services.
- Once we have this, we were able to define smaller goals based on component functionality
Benefits
- New tech stack, along with keeping code updated. Also, be able to reduce page load speed and be able to use some native functionality. This is also good for new developers since this would be a popular stack
- Smaller ripple effect, making releases more predictable. Since we were only now deploying the application for this page. Or as we called it micro frontend ๐
- Testing everything: Since we were starting fresh we kept a policy to keep >95% coverage. This did increase the development time but in the hindsight helped us to increase confidence.
- Easier deployments, this was not exactly what I worked on, but this was one of the benefits to keep in mind
Downfalls
- Tracking. It was very important to collect metrics for the old and new pages. These were very important for the comparison and giving us the confidence to be able to direct the entire traffic on the new page.
- Big task. It became a bit frustrating, especially towards the end, since we were mostly done with development, just awaiting release.
- Either 0 or 100. We could not do an incremental release.