[{"data":1,"prerenderedAt":215},["ShallowReactive",2],{"navigation":3,"project-\u002Fprojects\u002Fmarcopro":26,"challenges-\u002Fprojects\u002Fmarcopro":122},[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,"company":30,"date":31,"description":32,"endDate":33,"extension":34,"image":35,"images":36,"links":71,"meta":77,"navigation":78,"order":79,"path":80,"seo":81,"startDate":82,"stem":83,"tags":84,"technologies":95,"url":120,"__hash__":121},"projects\u002Fprojects\u002Fmarcopro.yml","سایت گردشگری مارکوپرو",null,"شاهان سفر پارس","2025-11-01","توسعه و پیاده‌سازی فرانت‌اند یک وب‌سایت گردشگری و رزرو آنلاین برای خرید بلیط هواپیما، رزرو هتل و تورهای گردشگری، با تمرکز بر TypeScript، Nuxt UI، بهینه‌سازی عملکرد، معماری کش چندلایه و سئوی فنی.","2026-06-21","yml","https:\u002F\u002Fqr2tnegks1uabe3e.public.blob.vercel-storage.com\u002Fmarcopro\u002Fdemo.marcopro.co_.png",[37,39,42,44,46,48,50,52,54,56,58,60,62,63,64,66,68,70],{"src":35,"alt":38},"صفحه اصلی سایت مارکوپرو",{"src":40,"alt":41},"https:\u002F\u002Fqr2tnegks1uabe3e.public.blob.vercel-storage.com\u002Fmarcopro\u002Fdemo.marcopro.co_%20%282%29.png","اسکرین‌شات‌های سایت مارکوپرو",{"src":43,"alt":41},"https:\u002F\u002Fqr2tnegks1uabe3e.public.blob.vercel-storage.com\u002Fmarcopro\u002Fdemo.marcopro.co_%20%286%29.png",{"src":45,"alt":41},"https:\u002F\u002Fqr2tnegks1uabe3e.public.blob.vercel-storage.com\u002Fmarcopro\u002Fdemo.marcopro.co_%28Samsung%20Galaxy%20S8%2B%29.png",{"src":47,"alt":41},"https:\u002F\u002Fqr2tnegks1uabe3e.public.blob.vercel-storage.com\u002Fmarcopro\u002Fdemo.marcopro.co_%28Samsung%20Galaxy%20S8%2B%29%20%281%29.png",{"src":49,"alt":41},"https:\u002F\u002Fqr2tnegks1uabe3e.public.blob.vercel-storage.com\u002Fmarcopro\u002Fdemo.marcopro.co_%28Samsung%20Galaxy%20S8%2B%29%20%283%29.png",{"src":51,"alt":41},"https:\u002F\u002Fqr2tnegks1uabe3e.public.blob.vercel-storage.com\u002Fmarcopro\u002Fdemo.marcopro.co_%20%287%29.png",{"src":53,"alt":41},"https:\u002F\u002Fqr2tnegks1uabe3e.public.blob.vercel-storage.com\u002Fmarcopro\u002Fdemo.marcopro.co_%20%281%29.png",{"src":55,"alt":41},"https:\u002F\u002Fqr2tnegks1uabe3e.public.blob.vercel-storage.com\u002Fmarcopro\u002Fdemo.marcopro.co_%20%283%29.png",{"src":57,"alt":41},"https:\u002F\u002Fqr2tnegks1uabe3e.public.blob.vercel-storage.com\u002Fmarcopro\u002Fdemo.marcopro.co_%28Samsung%20Galaxy%20S8%2B%29%20%282%29.png",{"src":59,"alt":41},"https:\u002F\u002Fqr2tnegks1uabe3e.public.blob.vercel-storage.com\u002Fmarcopro\u002Fdemo.marcopro.co_%28Samsung%20Galaxy%20S8%2B%29%20%284%29.png",{"src":61,"alt":41},"https:\u002F\u002Fqr2tnegks1uabe3e.public.blob.vercel-storage.com\u002Fmarcopro\u002Fdemo.marcopro.co_%20%284%29.png",{"src":53,"alt":41},{"src":47,"alt":41},{"src":65,"alt":41},"https:\u002F\u002Fqr2tnegks1uabe3e.public.blob.vercel-storage.com\u002Fmarcopro\u002Fdemo.marcopro.co_%20%288%29.png",{"src":67,"alt":41},"https:\u002F\u002Fqr2tnegks1uabe3e.public.blob.vercel-storage.com\u002Fmarcopro\u002Fdemo.marcopro.co_%28Samsung%20Galaxy%20S8%2B%29%20%285%29.png",{"src":69,"alt":41},"https:\u002F\u002Fqr2tnegks1uabe3e.public.blob.vercel-storage.com\u002Fmarcopro\u002Fdemo.marcopro.co_%20%285%29.png",{"src":43,"alt":41},[72],{"label":73,"to":74,"target":75,"icon":76},"مشاهده سایت","https:\u002F\u002Fdemo.marcopro.co\u002F","_blank","i-lucide-external-link",{},true,"1","\u002Fprojects\u002Fmarcopro",{"title":28,"description":32},"2025-10-27","projects\u002Fmarcopro",[85,86,87,88,89,90,91,92,93,94],"Nuxt","Vue","Tailwind","TypeScript","Performance","SEO","Nuxt UI","Caching","Lighthouse","Testing",[96,102,108,113],{"category":97,"items":98},"frontend",[99,86,88,91,100,101],"Nuxt.js 4","Pinia","Tailwind CSS",{"category":103,"items":104},"performance & seo",[105,106,107],"caching (Redis, Nitro Server)","nuxt-schema-org","Nuxt Seo Tools (og-image, robots,...)",{"category":109,"items":110},"other",[111,112],"pwa","Leaflet",{"category":114,"items":115},"architecture",[116,117,118,119],"Atomic Design","Modular Architecture","Component-Based Architecture","Nuxt Layers","https:\u002F\u002Fdemo.marcopro.co","di1MPgNGxBHu8iYsqVkAVx9K0pBHPf8Nfvm3FqJ9lYI",{"id":123,"title":124,"body":125,"description":202,"extension":209,"meta":210,"navigation":78,"path":211,"seo":212,"stem":213,"__hash__":214},"projectChallenges\u002Fprojects\u002Fmarcopro-challenges.md","Internal Developer Hub Challenges",{"type":126,"value":127,"toc":201},"minimark",[128,133,137,140,188,194,198],[129,130,132],"h2",{"id":131},"چالش-اصلی","چالش اصلی",[134,135,136],"p",{},"مارکوپرو پروژه‌ای بود که فرصت یادگیری و پیاده‌سازی عملی چند مهارت کلیدی را در یک پروژه واقعی Nuxt فراهم کرد. تمرکز اصلی پروژه روی ایجاد یک فرانت‌اند مدرن، سریع و قابل نگهداری بود.",[134,138,139],{},"از مهم‌ترین چالش‌ها و اهداف فنی پروژه می‌توان به موارد زیر اشاره کرد:",[141,142,143,151,157,168,178],"ul",{},[144,145,146,150],"li",{},[147,148,149],"strong",{},"مهاجرت به TypeScript:"," استفاده از TypeScript در یک پروژه واقعی Nuxt و حرکت از JavaScript به یک ساختار تایپ‌شده و قابل اطمینان‌تر.",[144,152,153,156],{},[147,154,155],{},"پیاده‌سازی Nuxt UI:"," استفاده از Nuxt UI به‌عنوان لایه اصلی رابط کاربری و ایجاد یک ساختار یکپارچه برای کامپوننت‌های پروژه.",[144,158,159,162,163,167],{},[147,160,161],{},"طراحی معماری کش چندلایه:"," پیاده‌سازی استراتژی کش در چند سطح، شامل مدیریت وضعیت در سمت کلاینت، هدرهای ",[164,165,166],"code",{},"Cache-Control","، کش سمت سرور با Nitro و استفاده از Redis برای کاهش درخواست‌های تکراری و بار روی سرور.",[144,169,170,173,174,177],{},[147,171,172],{},"کنترل حجم باندل:"," بررسی و پایش خروجی پروژه با ابزارهایی مانند ",[164,175,176],{},"nuxi analyze"," و بهینه‌سازی وابستگی‌ها و باندل برای جلوگیری از افزایش غیرضروری حجم اپلیکیشن.",[144,179,180,183,184,187],{},[147,181,182],{},"بهینه‌سازی سئوی فنی:"," پیکربندی ساختارهای موردنیاز برای سئوی فنی، از جمله ",[164,185,186],{},"Schema.org"," و تولید Sitemap با استفاده از ابزارهای اکوسیستم Nuxt SEO.",[189,190,191],"warning",{},[134,192,193],{},"این پروژه همچنان در حال توسعه است و هنوز به نسخه نهایی نرسیده است.",[195,196,197],"h3",{"id":197},"رویکرد",[134,199,200],{},"برای بهبود عملکرد، معماری کش پروژه به‌صورت چندلایه طراحی شد تا داده‌های موردنیاز تا حد امکان از نزدیک‌ترین لایه به کاربر تأمین شوند. در سمت کلاینت، مدیریت وضعیت و کش داده‌ها به کاهش درخواست‌های تکراری کمک کرد و در سمت سرور نیز Nitro و Redis برای مدیریت و نگهداری پاسخ‌های قابل کش مورد استفاده قرار گرفتند.",{"title":202,"searchDepth":203,"depth":203,"links":204},"",2,[205],{"id":131,"depth":203,"text":132,"children":206},[207],{"id":197,"depth":208,"text":197},3,"md",{},"\u002Fprojects\u002Fmarcopro-challenges",{"title":124,"description":202},"projects\u002Fmarcopro-challenges","Ouny6DBLpBc_neade_6jqhEjuuoV6RJcWFJtLROFdKc",1786900461727]