প্রকল্প সম্পর্কে
Gatsby হলো React-এর ওপর ভিত্তি করে তৈরি একটি ফ্রি এবং ওপেন-সোর্স ওয়েব ফ্রেমওয়ার্ক, যা MIT লাইসেন্সের অধীনে প্রকাশিত এবং npm-এ `gatsby` প্যাকেজ হিসেবে পরিবেশিত হয়। এর README অনুযায়ী, এর লক্ষ্য হলো ডাইনামিকভাবে রেন্ডার করা সাইটের নিয়ন্ত্রণ ও স্কেলেবিলিটির সাথে স্ট্যাটিক-সাইট জেনারেশনের গতিকে একত্রিত করা, যা ডেভেলপারদের উচ্চ-পারফরম্যান্স এবং কন্টেন্ট-সমৃদ্ধ ওয়েবসাইট ও অ্যাপ তৈরি করতে সাহায্য করে।
**ডেটা লেয়ার**
Gatsby যেকোনো ডেটা সোর্স থেকে কন্টেন্ট সংগ্রহ করতে পারে: Markdown ফাইল, Contentful বা WordPress-এর মতো হেডলেস CMS সিস্টেম, অথবা REST এবং GraphQL API। সোর্স প্লাগইনগুলো ডেটা লোড করে এবং ব্যাকএন্ড যাই হোক না কেন, ডেভেলপাররা একটি ইউনিফর্ম GraphQL ইন্টারফেসের মাধ্যমে কাজ করেন।
**রেন্ডারিং অপশন**
প্রজেক্টটিতে তিনটি রেন্ডারিং পদ্ধতি নথিভুক্ত করা হয়েছে যা প্রতি পৃষ্ঠার ভিত্তিতে নির্বাচন করা যায়: Static Site Generation (SSG), Deferred Static Generation (DSG) এবং Server-Side Rendering (SSR)। README-তে এই গ্র্যানুলারিটিকে গ্লোবালি নয়, বরং প্রতি পৃষ্ঠার জন্য পারফরম্যান্স এবং প্রোডাক্টিভিটির মধ্যে ভারসাম্য তৈরির উপায় হিসেবে উপস্থাপন করা হয়েছে।
**স্ট্যাটিক সাইটের বাইরে**
Gatsby সাইটগুলোকে সম্পূর্ণ কার্যকরী React অ্যাপ হিসেবে বর্ণনা করা হয়েছে, তাই একই ফ্রেমওয়ার্ক ব্লগ, ই-কমার্স সাইট এবং ইউজার ড্যাশবোর্ড হিসেবে ব্যবহৃত হতে পারে। যেহেতু আউটপুট স্ট্যাটিক, তাই সাইটগুলো সার্ভার ছাড়াই CDN-এ হোস্ট করা সম্ভব এবং README-তে উল্লেখ করা হয়েছে যে অনেক সাইট Netlify এবং অনুরূপ পরিষেবাগুলোতে বিনামূল্যে হোস্ট করা যায়।
**পারফরম্যান্স ফিচার**
README-তে বলা হয়েছে যে Gatsby স্বয়ংক্রিয়ভাবে কোড স্প্লিটিং, ইমেজ অপ্টিমাইজেশন, ক্রিটিক্যাল স্টাইল ইনলাইনিং, লেজি-লোডিং এবং রিসোর্স প্রিফেচিং সম্পন্ন করে, যাতে পারফরম্যান্স টিউনিং ম্যানুয়ালি করার পরিবর্তে মূলত বিল্ট-ইন থাকে।
**শুরু করা**
দুটি দ্রুত পথ নথিভুক্ত করা হয়েছে। অনলাইন: একটি "Deploy to Netlify" বাটনের মাধ্যমে একটি কার্যকরী সাইট এবং একটি লিঙ্কড রিপোজিটরি তৈরি হয় যা পুশ করার সাথে সাথে স্বয়ংক্রিয়ভাবে রিবিল্ড হয়। লোকালি: একটি প্রজেক্ট স্কাফোল্ড করতে `npm init gatsby` রান করুন, তারপর `cd my-gatsby-site/` এবং `npm run develop` কমান্ডের মাধ্যমে `http://localhost:8000`-এ একটি ডেভেলপমেন্ট সার্ভার চালু করুন, যেখানে `src/pages/index.js`-এর মতো ফাইলগুলো এডিট করলে লাইভ আপডেট পাওয়া যায়। README-র উপরের অংশে পৃথক কুইকস্টার্ট, টিউটোরিয়াল, প্লাগইন, স্টার্টার এবং শোকেস পেজগুলোর লিঙ্ক দেওয়া আছে।
**ডকুমেন্টেশন এবং কমিউনিটি**
README-তে একটি বিস্তারিত টিউটোরিয়ালের কথা বলা হয়েছে যার জন্য পূর্ব অভিজ্ঞতার প্রয়োজন নেই, সেইসাথে হাউ-টু গাইড, রেফারেন্স ম্যাটেরিয়াল এবং কনসেপচুয়াল গাইডের জন্য ডকুমেন্টেশন সেকশন রয়েছে। রিলিজ নোট এবং ভার্সন-ভিত্তিক সাপোর্ট ডকুমেন্টেশনের লিঙ্ক দেওয়া আছে, এবং মাইগ্রেশন গাইডগুলো v2 থেকে v3, v3 থেকে v4 এবং v4 থেকে v5-এ আপগ্রেড করার প্রক্রিয়া কভার করে। একটি কোড অফ কন্ডাক্ট এবং কন্ট্রিবিউটিং গাইড প্রদান করা হয়েছে এবং রিপোজিটরিটি একটি Lerna-ম্যানেজড মনোরেপো হিসেবে সংগঠিত যা একাধিক প্যাকেজ ধারণ করে এবং সেগুলো আলাদাভাবে npm-এ পাবলিশ করা হয়। ইস্যু, আলোচনা এবং পুল রিকোয়েস্টগুলো বর্ণিত কমিউনিটি ওয়ার্কফ্লোর অংশ।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.