Por que migramos un cliente de Vue2 a Nuxt (e que se rompeu polo camiño)

O sitio deste cliente inmobiliario levaba anos funcionando en Vue 2 con Vue CLI, e funcionaba ben, esa é a parte incómoda de contar esta historia, porque non migramos porque algo estivese roto, senón porque Vue 2 deixou de recibir soporte e seguir aí a medio prazo era acumular débeda técnica a propósito.
A primeira sorpresa, e das gordas, foi o SEO. O sitio vello era unha SPA pura: todo se renderizaba no cliente, e para unha inmobiliaria que vive de que Google indexe ben cada ficha de propiedade, iso xa era un problema antes de tocar nada. Pasar a Nuxt con SSR non foi só “actualizar dependencias”, foi repensar como se xeran as URLs de cada propiedade e que se manda pre-renderizado desde o servidor.
O que se rompeu, para ser honesta: o sistema de repositorios que falaba coa API de Symfony. Estaba pensado para axios puro dentro de compoñentes Vue clásicos, e houbo que adaptalo enteiro a composables. Non foi difícil, pero si foi desas tarefas que parecen mecánicas ata que te atopas cun endpoint que devolve un formato distinto segundo haxa imaxes ou non, e ninguén lembra por que se fixo así.
Tamén se rompeu, brevemente, a busca de propiedades en produción, durante unhas dúas horas, por unha diferenza de comportamento entre como Vue 2 e Nuxt manexan o estado reactivo en listaxes grandes. Detectámolo rápido porque tiñamos un cliente mirando o sitio ese mesmo día. Non foi o noso mellor momento, pero solucionouse antes de que se notase demasiado.
Mereceu a pena? Si, pero non polo que adoita venderse destas migracións. O sitio non é dramaticamente “máis rápido” para o usuario medio. O que gañamos é que agora hai un camiño claro de mantemento para os próximos anos, no canto dun armario cheo de dependencias que un día deixan de instalarse.
Se alguén me pregunta cando migrar un proxecto que “funciona ben”, a miña resposta é: cando o custo de non facelo empeza a ser maior có risco de facelo con calma, non cando aparece a próxima versión maior e xa está.