[{"data":1,"prerenderedAt":40},["ShallowReactive",2],{"blog-posts":3},[4,19,30],{"path":5,"title":6,"description":7,"date":8,"tags":9,"image":16,"imageAlt":17,"readingTime":18},"\u002Fblog\u002Fpokemon-shopping-cart-vue3","Pokémon shopping cart with Vue 3, Axios and the PokéAPI","How a Vue 3 shopping cart demo consumes the PokéAPI REST API: batched lazy loading with Promise.all, client-side pagination, a reactive cart with computed totals, loading and error states, and a simulated checkout.","2026-10-17",[10,11,12,13,14,15],"Vue 3","Composition API","Axios","REST API","Tailwind CSS","CodePen",null,"A Pokémon shopping cart demo with product cards and a cart summary",6,{"path":20,"title":21,"description":22,"date":8,"tags":23,"image":28,"imageAlt":29,"readingTime":18},"\u002Fblog\u002Fvue3-autocounter","Vue 3 Autocounter: an animated number counter component for Vue 3","How vue3-autocounter works, how to install it, and how to use it to animate statistics, metrics and prices in Vue 3 and Nuxt apps, with every prop, event and method documented.",[10,24,25,26,27],"TypeScript","npm","Open source","Components","\u002Fimages\u002Fprojects\u002Fvue3-autocounter-demo.png","The vue3-autocounter demo website showing animated counters",{"path":31,"title":32,"description":33,"date":8,"tags":34,"image":37,"imageAlt":38,"readingTime":39},"\u002Fblog\u002Fvue3-todo-app-composition-api","Building a TODO app with the Vue 3 Composition API and localStorage","A walkthrough of a Vue 3 TODO app built with ref, computed and onMounted: reactive task state, To-Do and Done tabs, UUID task IDs, confirmation flows and localStorage persistence.",[10,11,35,36,15],"JavaScript","localStorage","\u002Fimages\u002Fprojects\u002Fvue3-todo-app-demo.png","The Vue 3 TODO app showing To-Do and Done tabs with a list of tasks",5,1792306173253]