[{"data":1,"prerenderedAt":51},["ShallowReactive",2],{"home-projects-en":3,"home-posts-en":38},[4],{"locale":5,"slug":6,"title":7,"description":8,"category":9,"year":10,"context":11,"stack":12,"results":25},"en","product-image-editor","A product image editor inside the inSales admin, built in Vue","A full-screen Vue editor where merchants build product infographics with templates and AI tools. Used by 3,000+ active inSales clients, with 800+ AI operations a day.","Browser editors","Mar 2025 – Sep 2026","inSales",[13,14,15,16,17,18,19,20,21,22,23,24],"Vue 3","TypeScript","FabricJS","Complex UI","Composition API","E-Commerce Development","Frontend Architecture","SCSS","Web Application Development","API Integration","AI-Powered Image Editing","Front-End Development",[26,29,32,35],{"value":27,"label":28},"3,000+","active inSales clients use the editor, according to product analytics",{"value":30,"label":31},"800+","AI operations a day in the editor, including background removal and text generation",{"value":33,"label":34},"2–3 min","to apply one set of edits to 10 product images with bulk transfer, instead of 5–10 min by hand",{"value":36,"label":37},"2","production contexts for one editor component, product images and the visual site editor",[39],{"slug":40,"title":41,"description":42,"category":43,"date":44,"readingMinutes":45,"cover":46,"coverAlt":47,"tags":48},"vue-3-proxy-deep-comparison","Vue 3 didn't make our autocomplete slow. 244,650 comparisons did","After a Vue 3 migration, an autocomplete with 700 domain zones took about 12 seconds to open. The cause was an old quadratic deduplication that became expensive once it read every object through a reactive Proxy.","Performance","2026-10-21",7,"\u002Fimages\u002Fblog\u002Fvue-3-proxy-deep-comparison.svg","Diagram of 700 items producing 244,650 deep comparisons through Vue Proxies, and the two fixes that removed the delay",[13,43,49,50],"Reactivity","Migration",1793195986382]