Vue 3 | Pinia | TypeScript | Leaflet | Knockout | VueX | SCSS | HTML
I worked on SiteZeus's location intelligence platform for multi-unit businesses from October 2021 to September 2023. SiteZeus is built with the goal of giving businesses the data they need to grow with confidence. It's a complex application with a legacy Knockout front-end where new features are developed in Vue 3 and placed within the DOM via Vue's Teleport feature. In my time at SiteZeus I took our app from Vue-CLI to Vite, introducing Hot Module Replacement to our playground environment and lowering build times, improving developer experience and speed. I also led the development of the front-end features powering our custom polygons toolbar and the Territories subscription; exchanging our legacy Polygons feature with a streamlined experience, expanded functionality, and a sleeker look. But my first major takeaway from this experience was surprise at just how big the gulf between Vue 2 and Vue 3 is.
Before SiteZeus I didn't really have any issues with the Options API, but working on a large, data-heavy application with tightly coupled features made the Composition API's value add clearer. The Composition pattern makes it so much easier to create reusable code, lift state when necessary, and organize components by logical concern. The TypeScript support is also so much better with Vue 3 and Pinia. SiteZeus began building features in Vue before Pinia's release, so I got to learn firsthand how weak the TypeScript support is for VueX. The simplicity of getting to simply import a store and call a function was a major improvement over the hacks people had come up with over the years to get TypeScript and VueX to work together. When I refactored a store from VueX to Pinia for easier use with the new Share functionality, removing the old, complicated VueX dispatches was a relief.
The Share feature is a part of the custom polygons toolbar; that toolbar is the engine of the Territories and Trade Areas features. It allows users to easily draw, cut, merge, color, copy, and group custom territory shapes. These territories could then be planned out with solid data, using demographics from SiteZeus to better understand an area's revenue potential and sell to franchisees. The Share feature empowers users to share territories between accounts and franchise groups, making it easier to keep everyone on the same page. It is coupled with a Leaflet map that lives in Knockout and is driven by Leaflet Geoman Pro, a revolutionary geospatial data management library. My love of coding has always come from wanting to simplify people's lives; using these GIS tools I was able to do just that and play a major part in shipping the Territories subscription.