[{"data":1,"prerenderedAt":466},["ShallowReactive",2],{"navigation":3,"skills-page":26,"skills-component":326},[4],{"title":5,"path":6,"stem":7,"children":8,"page":25},"Blog","\u002Fblog","blog",[9,13,17,21],{"title":10,"path":11,"stem":12},"From Mockup to Market: My End-to-End Product Design Process","\u002Fblog\u002Ffrom-mockup-to-market","blog\u002Ffrom-mockup-to-market",{"title":14,"path":15,"stem":16},"How I Built My Design System from Scratch","\u002Fblog\u002Fhow-i-built-my-own-design-system-from-scratch","blog\u002Fhow-i-built-my-own-design-system-from-scratch",{"title":18,"path":19,"stem":20},"The Psychology of Color in UI Design","\u002Fblog\u002Fpsychology-of-color-in-ui-design","blog\u002Fpsychology-of-color-in-ui-design",{"title":22,"path":23,"stem":24},"The Case for Slow Design in a Fast-Paced Digital World","\u002Fblog\u002Fslow-design-in-fast-paced-digital-world","blog\u002Fslow-design-in-fast-paced-digital-world",false,{"id":27,"title":28,"body":29,"categories":30,"description":318,"extension":319,"meta":320,"navigation":321,"path":322,"seo":323,"stem":324,"__hash__":325},"skills\u002Fskills.yml","Skills & Technologies",null,[31,51,61,85,112,143,156,173,190,205,220,249,258,275,292,309],{"title":32,"description":33,"icon":34,"skills":35},"Frontend Core","Modern frameworks and languages for building interactive web applications.","i-lucide-monitor",[36,39,41,43,45,47,49],{"name":37,"level":38},"Vue.js","Expert",{"name":40,"level":38},"Nuxt.js",{"name":42,"level":38},"TypeScript",{"name":44,"level":38},"JavaScript (ES6+)",{"name":46,"level":38},"Vue Router",{"name":48,"level":38},"Vite",{"name":50,"level":38},"HTML5, css3",{"title":52,"description":53,"icon":54,"skills":55},"State Management","Client-side state handling and data flow management.","i-lucide-store",[56,58],{"name":57,"level":38},"Pinia",{"name":59,"level":60},"Vuex","Advanced",{"title":62,"description":63,"icon":64,"skills":65},"UI Frameworks & Libraries","Component libraries and styling frameworks for rapid UI development.","i-lucide-component",[66,68,70,72,74,76,78,81,83],{"name":67,"level":38},"Nuxt UI",{"name":69,"level":38},"Vuetify",{"name":71,"level":38},"Tailwind CSS",{"name":73,"level":60},"DaisyUI",{"name":75,"level":60},"Reka UI",{"name":77,"level":60},"UI Thing",{"name":79,"level":80},"Shadcn","MDI",{"name":82,"level":60},"Tailwind Merge \u002F Variants",{"name":84,"level":38},"SCSS \u002F Sass",{"title":86,"description":87,"icon":88,"skills":89},"SEO, Content & Localization","Search engine optimization, content management, and multi-language support.","i-lucide-search",[90,92,94,96,98,100,102,104,106,108,110],{"name":91,"level":38},"@nuxtjs\u002Fseo",{"name":93,"level":38},"nuxt-og-image",{"name":95,"level":60},"nuxt-schema-org",{"name":97,"level":60},"@nuxtjs\u002Fsitemap",{"name":99,"level":60},"@nuxtjs\u002Frobots",{"name":101,"level":60},"nuxt-link-checker",{"name":103,"level":38},"@nuxtjs\u002Fi18n",{"name":105,"level":38},"@nuxt\u002Fcontent",{"name":107,"level":38},"@nuxtjs\u002Fmdc",{"name":109,"level":60},"Nuxt Studio",{"name":111},"SSR Rendering",{"title":113,"description":114,"icon":115,"skills":116},"Backend & Infrastructure","Databases, ORMs, cloud storage, and realtime communication.","i-lucide-server",[117,119,121,123,125,127,129,131,133,135,137,139,141],{"name":118,"level":38},"Prisma",{"name":120,"level":60},"Drizzle ORM",{"name":122,"level":38},"MySQL2",{"name":124,"level":38},"MariaDB",{"name":126,"level":60},"@libsql\u002Fclient",{"name":128,"level":60},"AWS SDK \u002F S3",{"name":130,"level":60},"Vercel Blob",{"name":132,"level":60},"NuxtHub Core",{"name":134,"level":60},"Unstorage",{"name":136,"level":60},"Laravel Echo",{"name":138,"level":60},"Pusher.js",{"name":140,"level":60},"Socket.io Client",{"name":142},"Redis",{"title":144,"description":145,"icon":146,"skills":147},"Caching & Performance","Multi-layer caching strategy across the client, CDN, and server.","i-lucide-zap",[148,149,151,152,154],{"name":142,"level":60},{"name":150,"level":60},"Client\u002FCDN Caching",{"name":52,"level":60},{"name":153,"level":60},"Nitro Server Caching",{"name":155,"level":60},"Lighthouse",{"title":157,"description":158,"icon":159,"skills":160},"API & Rendering","Server communication, API design, and rendering strategies.","i-lucide-globe",[161,163,165,167,169,171],{"name":162,"level":38},"RESTful API",{"name":164,"level":38},"Axios",{"name":166,"level":60},"Nitro Server Routes (server\u002Fapi)",{"name":168,"level":60},"ufo",{"name":170,"level":38},"Server-Side Rendering (SSR)",{"name":172,"level":38},"Static Site Generation (SSG)",{"title":174,"description":175,"icon":176,"skills":177},"AI Integration","AI SDK integration and streaming chat experiences.","i-lucide-bot",[178,180,182,184,186,188],{"name":179,"level":60},"Vercel AI SDK",{"name":181,"level":60},"@ai-sdk\u002Fvue",{"name":183,"level":60},"@ai-sdk\u002Fopenai",{"name":185,"level":60},"@ai-sdk\u002Fanthropic",{"name":187,"level":60},"@ai-sdk\u002Fgoogle",{"name":189},"Comark",{"title":191,"description":192,"icon":193,"skills":194},"Forms & Validation","Form handling, validation, and input masking solutions.","i-lucide-file-check",[195,197,199,201,203],{"name":196,"level":38},"VeeValidate",{"name":198,"level":38},"Yup",{"name":200,"level":38},"Zod",{"name":202,"level":60},"Maska",{"name":204,"level":60},"Vue Currency Input",{"title":206,"description":207,"icon":208,"skills":209},"Maps & Geolocation","Mapping libraries and geolocation services integration.","i-lucide-map",[210,212,214,216,218],{"name":211,"level":60},"OpenLayers",{"name":213,"level":60},"MapLibre GL JS",{"name":215,"level":60},"Leaflet",{"name":217},"OpenStreetMap",{"name":219,"level":60},"Neshan Maps Platform",{"title":221,"description":222,"icon":223,"skills":224},"UX & Content Tools","Icons, fonts, animation, rich text editing, and media\u002Fnotification components.","i-lucide-sparkles",[225,227,229,231,233,235,237,239,241,243,245,247],{"name":226,"level":38},"@nuxt\u002Ficon",{"name":228,"level":38},"@nuxt\u002Ffonts",{"name":230,"level":38},"@nuxt\u002Fimage",{"name":232,"level":60},"@takumi-rs\u002Fcore",{"name":234,"level":38},"Motion-V",{"name":236,"level":60},"AOS",{"name":238,"level":38},"Swiper",{"name":240,"level":60},"VueDraggable",{"name":242,"level":38},"Vue Toastification",{"name":244,"level":60},"Vue Sonner",{"name":246,"level":38},"Tiptap",{"name":248,"level":60},"TinyMCE",{"title":250,"description":251,"icon":252,"skills":253},"PWA & Mobile","Progressive web apps and cross-platform mobile development.","i-lucide-smartphone",[254,256],{"name":255,"level":60},"@vite-pwa\u002Fnuxt",{"name":257,"level":60},"Capacitor",{"title":259,"description":260,"icon":261,"skills":262},"Authentication & Security","User authentication, authorization, and security practices.","i-lucide-shield",[263,265,267,269,271,273],{"name":264,"level":38},"JWT",{"name":266,"level":38},"bcryptjs",{"name":268,"level":60},"WebAuthn",{"name":270,"level":60},"nuxt-auth-utils",{"name":272,"level":60},"Firebase Cloud Messaging",{"name":274},"Webpush",{"title":276,"description":277,"icon":278,"skills":279},"Testing & Dev Tools","Code quality, testing frameworks, and developer workflow tooling.","i-lucide-flask-conical",[280,282,284,286,288,290],{"name":281,"level":38},"Vitest",{"name":283,"level":60},"Playwright",{"name":285,"level":60},"@nuxt\u002Ftest-utils",{"name":287,"level":60},"happy-dom",{"name":289,"level":38},"@nuxt\u002Feslint",{"name":291,"level":60},"PM2",{"title":293,"description":294,"icon":295,"skills":296},"Utilities","Date handling and general-purpose utility libraries.","i-lucide-package",[297,299,301,303,305,307],{"name":298,"level":38},"VueUse",{"name":300,"level":38},"Lodash",{"name":302,"level":38},"date-fns",{"name":304,"level":60},"@internationalized\u002Fdate",{"name":306,"level":60},"Vue3 Persian Datetime Picker",{"name":308,"level":60},"Jalali Moment",{"title":310,"description":294,"icon":295,"skills":311},"Development",[312,314,316],{"name":313,"level":38},"Git",{"name":315,"level":38},"Github & Gitlab",{"name":317,"level":38},"GitHub Actions and workflows","A comprehensive overview of the technologies, frameworks, and tools I work with across the full development stack.","yml",{},true,"\u002Fskills",{"title":28,"description":318},"skills","rSj9xPVzJbnu48UvT1F-QaZxa-NMQj_LJWHxN3Ns9-o",{"id":27,"title":28,"body":29,"categories":327,"description":318,"extension":319,"meta":464,"navigation":321,"path":322,"seo":465,"stem":324,"__hash__":325},[328,337,341,352,365,380,387,395,403,410,417,431,435,443,451,459],{"title":32,"description":33,"icon":34,"skills":329},[330,331,332,333,334,335,336],{"name":37,"level":38},{"name":40,"level":38},{"name":42,"level":38},{"name":44,"level":38},{"name":46,"level":38},{"name":48,"level":38},{"name":50,"level":38},{"title":52,"description":53,"icon":54,"skills":338},[339,340],{"name":57,"level":38},{"name":59,"level":60},{"title":62,"description":63,"icon":64,"skills":342},[343,344,345,346,347,348,349,350,351],{"name":67,"level":38},{"name":69,"level":38},{"name":71,"level":38},{"name":73,"level":60},{"name":75,"level":60},{"name":77,"level":60},{"name":79,"level":80},{"name":82,"level":60},{"name":84,"level":38},{"title":86,"description":87,"icon":88,"skills":353},[354,355,356,357,358,359,360,361,362,363,364],{"name":91,"level":38},{"name":93,"level":38},{"name":95,"level":60},{"name":97,"level":60},{"name":99,"level":60},{"name":101,"level":60},{"name":103,"level":38},{"name":105,"level":38},{"name":107,"level":38},{"name":109,"level":60},{"name":111},{"title":113,"description":114,"icon":115,"skills":366},[367,368,369,370,371,372,373,374,375,376,377,378,379],{"name":118,"level":38},{"name":120,"level":60},{"name":122,"level":38},{"name":124,"level":38},{"name":126,"level":60},{"name":128,"level":60},{"name":130,"level":60},{"name":132,"level":60},{"name":134,"level":60},{"name":136,"level":60},{"name":138,"level":60},{"name":140,"level":60},{"name":142},{"title":144,"description":145,"icon":146,"skills":381},[382,383,384,385,386],{"name":142,"level":60},{"name":150,"level":60},{"name":52,"level":60},{"name":153,"level":60},{"name":155,"level":60},{"title":157,"description":158,"icon":159,"skills":388},[389,390,391,392,393,394],{"name":162,"level":38},{"name":164,"level":38},{"name":166,"level":60},{"name":168,"level":60},{"name":170,"level":38},{"name":172,"level":38},{"title":174,"description":175,"icon":176,"skills":396},[397,398,399,400,401,402],{"name":179,"level":60},{"name":181,"level":60},{"name":183,"level":60},{"name":185,"level":60},{"name":187,"level":60},{"name":189},{"title":191,"description":192,"icon":193,"skills":404},[405,406,407,408,409],{"name":196,"level":38},{"name":198,"level":38},{"name":200,"level":38},{"name":202,"level":60},{"name":204,"level":60},{"title":206,"description":207,"icon":208,"skills":411},[412,413,414,415,416],{"name":211,"level":60},{"name":213,"level":60},{"name":215,"level":60},{"name":217},{"name":219,"level":60},{"title":221,"description":222,"icon":223,"skills":418},[419,420,421,422,423,424,425,426,427,428,429,430],{"name":226,"level":38},{"name":228,"level":38},{"name":230,"level":38},{"name":232,"level":60},{"name":234,"level":38},{"name":236,"level":60},{"name":238,"level":38},{"name":240,"level":60},{"name":242,"level":38},{"name":244,"level":60},{"name":246,"level":38},{"name":248,"level":60},{"title":250,"description":251,"icon":252,"skills":432},[433,434],{"name":255,"level":60},{"name":257,"level":60},{"title":259,"description":260,"icon":261,"skills":436},[437,438,439,440,441,442],{"name":264,"level":38},{"name":266,"level":38},{"name":268,"level":60},{"name":270,"level":60},{"name":272,"level":60},{"name":274},{"title":276,"description":277,"icon":278,"skills":444},[445,446,447,448,449,450],{"name":281,"level":38},{"name":283,"level":60},{"name":285,"level":60},{"name":287,"level":60},{"name":289,"level":38},{"name":291,"level":60},{"title":293,"description":294,"icon":295,"skills":452},[453,454,455,456,457,458],{"name":298,"level":38},{"name":300,"level":38},{"name":302,"level":38},{"name":304,"level":60},{"name":306,"level":60},{"name":308,"level":60},{"title":310,"description":294,"icon":295,"skills":460},[461,462,463],{"name":313,"level":38},{"name":315,"level":38},{"name":317,"level":38},{},{"title":28,"description":318},1786900461726]