🚀 ویژگیهای پیشرفته Storefront (Next.js 16)
پروژه فرانتاند فروشگاه علاوه بر رندرینگ سریع، شامل فیچرهای بسیار پیشرفته برای نصب در موبایل، سئوی حرفهای و امنیت سایبری است که آن را برای سطح Enterprise آماده میکند.
📱 پشتیبانی از PWA و حالت آفلاین
فروشگاه به عنوان یک وباپلیکیشن پیشرونده (Progressive Web App) کانفیگ شده است. این یعنی کاربران موبایل (اندروید و iOS) میتوانند سایت را مستقیماً مانند یک اپلیکیشن بومی روی گوشی خود نصب کنند.
- تنظیمات: با استفاده از پلاگین @ducanh2912/next-pwa در store/next.config.js مدیریت میشود.
- مانیفست پویا: فایل store/src/app/manifest.ts اطلاعات آیکونها، رنگهای تم و نام اپلیکیشن را تولید میکند.
- حالت آفلاین (Fallback): اگر اینترنت کاربر قطع شود، سرویسورکر (Service Worker) به صورت خودکار کاربر را به صفحه سفارشی ~offline/page.tsx هدایت میکند.
نکته توسعهدهندگان
ثبت Service Worker در محیط توسعه (Development) غیرفعال است تا کش شدن فایلها مزاحم برنامهنویسی شما نشود.
🔒 هدرهای امنیتی سختگیرانه (Security Headers)
برای محافظت در برابر حملات متداول وب نظیر تزریق کد (XSS) و Clickjacking، هدرهای امنیتی به صورت گلوبال از طریق Next.js تزریق میشوند:
store/next.config.js (بخش headers)
javascriptasync headers() { return [ { source: '/(.*)', headers: [ { key: 'Strict-Transport-Security', value: 'max-age=63072000; includeSubDomains; preload' }, { key: 'X-XSS-Protection', value: '1; mode=block' }, { key: 'X-Frame-Options', value: 'SAMEORIGIN' }, { key: 'X-Content-Type-Options', value: 'nosniff' }, { key: 'Content-Security-Policy', value: "default-src 'self'; ..." } ], }, ];}🕷️ سئوی داینامیک و Sitemap چندملیتی
به جای آپدیت دستی سایتمپ، فایل sitemap.ts به صورت همزمان (Concurrent) با میکرو سرویسهای بکاند ارتباط برقرار میکند تا کاملترین نقشه سایت را برای گوگل بسازد.
مراحل تولید نقشه سایت:
- صفحات استاتیک: لوپ زدن روی مسیرهایی مثل درباره ما و تماس با ما برای تمامی کشورها (Regions)ی فعال.
- دریافت محصولات (Medusa): اتصال به دیتابیس مدوسا و استخراج لیست تمام محصولات به همراه تاریخ آخرین بروزرسانی.
- دریافت مقالات (Strapi): ارتباط با CMS و اضافهکردن لینک تمامی مقالات منتشر شده.
اهمیت برای گوگل
با این روش به محض اینکه سردبیر یک مقاله در Strapi منتشر کند یا مدیر فروشگاه یک محصول در Medusa بسازد، لینک آن به صورت لحظهای در /sitemap.xml قرار میگیرد.