Automasean

I recently posted on a web forum to launch my newly Production-ready RSS reader app. Someone checking out the post informed me that the app name I'd chosen was already taken in the RSS reader space. This is why I embarked on a mission to update the name and URL of my app.

Let's dive into what it took to change the name of my web application.

The steps below were taken for both the Staging and Production environments. They are specific to my application and infrastructure architecture. The application is a React SPA client deployed via Netlify with a Phoenix/Elixir API deployed via Fly IO.

Here's what it took to get this job done:

  1. come up with the new name
    • this was the longest part of the process for me
    • shout out to my beautiful wife for coming up with the final name, FeedWise
  2. Update the application code to use the new app name instead of the old one
    • nice to just have this done and ready to go
    • this includes any logos and images with the old site name
  3. buy the new domain via Netlify
  4. create a new Netlify site
    • import the client GitHub repository
    • set up environment variables with the new domain updates
    • disable preview deploys (personal preference)
    • deploy client
  5. update the Netlify DNS configuration for the new site to use the new domain
  6. for the old Netlify site
    • unlink the GitHub repository
    • "Lock to stop auto publishing"
  7. set up API to work with the new domain as well as the old domain
    • fly certs add api.new-domain.net -a <fly-app-name-for-api>
    • add CNAME record in Netlify DNS configuration page
    • add new domain to CORS allow list and deploy the changes to the target environment
  8. make sure the cert gets issued
    • fly certs show api.new-domain.net -a <fly-app-name-for-api>
  9. update the public/_redirects file in the client to automatically redirect users to the new domain if trying to navigate to the old URL
    • /* https://new-domain.net/:splat 301!
  10. have any third party apps re-configured to point to the new domain instead of the old domain
    • For example, OAuth providers like Google and GitHub
    • Don't save the changes just yet! This is nice to reduce down-time. When the time comes just save the changes instead of having to fill out the forms.
  11. deploy the application code changes from step 2 to update the new name
  12. manually deploy public/_redirects changes
    • ensure the environment variables on your machine match what you'd expect in the target environment
    • yarn build
    • copy the dist directory from your local machine to Netlify for a manual deploy
  13. save all 3rd party config updates from step 10
  14. test

Steps 11-13 should be done together as fast as possible to reduce down-time.

Some cleanup steps that should probably happen next:

  • remove cert for old domain API
  • plan to retire the old domain
    • either via given timeline or when there is less than a certain amount of traffic being redirected
  • update bookmarked links
  • update links in any published content like blog posts

Some optional next steps:

  • update GitHub repository names
  • update infrastructure naming
  • update all API namespace naming

That's it! New app name, who dis?