Migrating 10,000 Lines of Untyped, Untested Domain Logic from Vuex to Pinia
At Studio, we have a decade's worth of accumulated Vue.js code assets from our development history. While this code still supports Studio's hot paths today, every time new code was added, the old code — especially the domain logic held within Vuex — ached like an inflamed wound. Even now, in 2026, in an era where coding agents have become the norm, this problem had gone untouched, and there was a shared understanding that the longer someone's tenure, the less likely they were to be the one to take it on. In this talk, I'll share how I, just three months into the job at the time, confronted this challenge and saw it through to completion. I'll cover the Vuex/Pinia migration itself, how to make effective use of coding agents, and the mindset needed to tackle a challenge like this, in roughly a 3:4:3 ratio. I'll also touch on the positive impact the move to Pinia had on broader efforts afterward, including improving module dependencies and domain modeling across a wider scope.
ushironoko
Migrating 10,000 Lines of Untyped, Untested Domain Logic from Vuex to Pinia
At Studio, we have a decade's worth of accumulated Vue.js code assets from our development history. While this code still supports Studio's hot paths today, every time new code was added, the old code — especially the domain logic held within Vuex — ached like an inflamed wound. Even now, in 2026, in an era where coding agents have become the norm, this problem had gone untouched, and there was a shared understanding that the longer someone's tenure, the less likely they were to be the one to take it on. In this talk, I'll share how I, just three months into the job at the time, confronted this challenge and saw it through to completion. I'll cover the Vuex/Pinia migration itself, how to make effective use of coding agents, and the mindset needed to tackle a challenge like this, in roughly a 3:4:3 ratio. I'll also touch on the positive impact the move to Pinia had on broader efforts afterward, including improving module dependencies and domain modeling across a wider scope.
