Vue 2 reached end of life on 31 December 2023. Vuetify 2 followed on 25 January 2025. If your admin panel still runs on them, it gets no security fixes, and every SOC 2 or ISO 27001 review asks why.
To show what the move involves, I migrated a well-known open-source app in public: Creative Tim's Vuetify Material Dashboard (MIT, 1.3k GitHub stars). The full branch is here: https://github.com/SayedEsmail/vuetify-material-dashboard . Every commit handles one concern and lists the breaking changes it fixed, so the commit log reads as the migration plan. I wrote the plan, did the work with an AI coding assistant, and reviewed every change myself at the end.
The starting point
Vue 2.6, Vuetify 2.2, Vuex 3, Vue Router 3, Vue CLI 4 on webpack 4.
33 single-file components and 5,620 lines of JavaScript and Vue.
553 lines of custom SASS written against Vuetify 2's internal class names.
The target was Vue 3.5, Vuetify 3, Pinia, Vue Router 4 and Vite.
Step 0: delete before you migrate
Seven of the 33 components…