প্রিভিউ পরিবেশ বনাম প্রডাকশন: প্রতিটি ফিচারের জন্য প্রিভিউ URL তৈরি করা, নিরাপদে প্রডাকশনে প্রোমোট করা, এবং সমস্যা হলে দ্রুত রোলব্যাক করার একটি সহজ ওয়ার্কফ্লো।

প্রিভিউ পরিবেশ হলো আপনার অ্যাপের একটি অস্থায়ী কপি যা ব্রাউজারে খুলে অন্যদের সাথে শেয়ার করা যায়। এটি আলাদা থাকে, তাই সেখানে করা পরিবর্তনগুলো লাইভ অ্যাপে প্রভাব ফেলে না। এটাকে ভাবুন একটি নিরাপদ অনুশীলনী পর্ব হিসেবে, যেখানে নতুন ফিচার সবাই দেখতে এবং পরীক্ষায় ক্লিক করা যায় প্রোডাকশনে দেওয়ার আগে।
সাধারণত এক ফিচারের জন্য আলাদা একটি প্রিভিউ URL রাখা হয়। এতে ফিডব্যাক সহজ হয়: আপনি এক লিঙ্ক পাঠাবেন একটি টিমমেট, ক্লায়েন্ট বা পরেরদিন নিজের কাছে — এবং সবাই একেবারেই একই সংস্করণ দেখছে।
প্রডাকশন হলো বাস্তব অ্যাপ। এটি ব্যবহারকারীরা দেখেন — বাস্তব অ্যাকাউন্ট, বাস্তব পেমেন্ট, বাস্তব ডেটা এবং বাস্তব প্রত্যাশা। প্রডাকশনে কিছু ভাঙলে সেটা কেবল বিরক্তিকর নয় — বিক্রি হারানো, সাপোর্ট টিকিট বা ডেটা সমস্যা ঘটতে পারে।
নামগুলো শুনতে টেকনিক্যাল লাগতে পারে, কিন্তু ধারণাটা সহজ: প্রিভিউ শেখার জন্য, প্রডাকশন ব্যবহারকারীদের সেবা দেওয়ার জন্য।
চ্যাটে তৈরি অ্যাপগুলোও একই সুরক্ষার ধাপ চাই, কারণ ঝুঁকি কমে না। যদি আপনি Koder.ai-এর মতো প্ল্যাটফর্মে চ্যাট করে অ্যাপ বানান, তবুও আপনি কোড শিপ করছেন যা ব্রাউজারে চলে এবং ডেটাবেসের সাথে কথা বলে। ছোট একটি পরিবর্তন (যেমন একটি ফর্ম ফিল্ড বা ডাটাবেস কুয়েরি) বাস্তব ট্রাফিক পাওয়ার পর বড় প্রভাব ফেলতে পারে।
প্রিভিউ ভালোভাবে ব্যবহার করলে আপনি লাইভ অ্যাপ ভেঙে ছাড়াই দ্রুত ফিডব্যাক পান। কনটেক্সটে একটি ফিচার রিভিউ করতে পারবেন, সাধারণ সমস্যা ধরতে পারবেন এবং তারপরই পরিবর্তনকে প্রডাকশনে প্রোমোট করবেন যখন সব ঠিক মনে হবে।
চ্যাট টুলে ফিচার বানানো প্রায় তৎক্ষণাত মনে হতে পারে। কিন্তু ঝুঁকি পরে দেখা দেয়, যখন সেই পরিবর্তন বাস্তব ইনফ্রাস্ট্রাকচারে চলতে হবে, অন্যান্য সেবার সঙ্গে কথা বলবে এবং বাস্তব ব্যবহারকারীদের সার্ভ করবে। তাই প্রিভিউ বনাম প্রডাকশন কেবল হোস্টিং পছন্দ নয় — এটা অবাঞ্ছিত বিস্ময় কমানোর উপায়।
অধিকাংশ রিলিজ সমস্যাই “মন্দ কোড” নয়। এগুলো সেই মিস-ম্যাচ যখন আপনি যা পরীক্ষা করেছেন এবং ব্যবহারকারীরা ডেপ্লয়ের পর যা দেখেন তার মধ্যে ভিন্নতা থাকে। একটি পেজ প্রিভিউতে নিখুঁত দেখাতে পারে এবং তবুও প্রডাকশনে ভেঙ্গে যেতে পারে কারণ প্রডাকশনে সেটিংস, ডেটা এবং সিকিউরিটি আলাদা।
একই সমস্যা বারবার দেখা যায়:
প্রিভিউ হলো যেখানে আপনি ব্যবহারকারীর ঝুঁকি ছাড়াই বিহেভিয়র এবং ইউজার ফ্লো যাচাই করবেন। লেআউট, বেসিক ন্যাভিগেশন, ফর্ম ভ্যালিডেশন এবং টেস্ট ডেটা দিয়ে ফিচার এন্ড-টু-এন্ড কাজ করছে কিনা যাচাই করার জন্য এগুলো খুবই উপযোগী।
কিছু জিনিস সম্পূর্ণরূপে প্রিভিউতে প্রমাণ করা কঠিন যদি না আপনার স্টেজিং সেটআপ প্রডাকশন-অনুরূপ হয়: চূড়ান্ত ডোমেইন ও কুকি আচরণ, লাইভ পেমেন্ট প্রোভাইডার, বাস্তব ইমেল পাঠানো এবং বাস্তবসম্মত ট্রাফিকের অধীনে পারফরম্যান্স। এগুলো প্রডাকশন কনফিগারেশন ও রিয়েল ইন্টিগ্রেশনের ওপর নির্ভর করে।
লক্ষ্য হলো একটি পুনরাবৃত্তিমূলক রিলিজ ওয়ার্কফ্লো। উদাহরণস্বরূপ Koder.ai-তে আপনি প্রতিটি ফিচারের জন্য একটি প্রিভিউ URL তৈরি করতে পারেন, টিমমেটের সঙ্গে রিভিউ করবেন, তারপর ছোট কিছু চেকের পর একই বিল্ডকে প্রডাকশনে প্রোমোট করবেন। আর যদি কিছু ফাঁক দিয়ে যায়, আপনার দ্রুত রোলব্যাক পথ থাকা উচিত যাতে একটি খারাপ রিলিজ দীর্ঘ আউটেজ না হয়ে একটি ছোট ইনসিডেন্টেই শেষ হয়।
ভালো একটি প্রিভিউ সেটআপ দ্রুত চারটি প্রশ্নের উত্তর দেয়: কী পরিবর্তন হয়েছে, কোথায় আমি এটা দেখতে পারি, আমি কোন সংস্করণ দেখছি, এবং কে এটি খুলতে পারবে।
URL (বা সাবডোমেইন লেবেল) এমন রাখুন যাতে আপনার টিম কাজের কথা অনুসরণ করে: একটি ফিচারের নাম বা টিকিট আইডি। সংক্ষিপ্ত, ধারাবাহিক এবং চ্যাটে পেস্ট করার জন্য নিরাপদ রাখুন।
prv-<ticket>-<short-feature> (উদাহরণ: prv-482-checkout-tax)prv-482-checkout-tax-alex)main এবং prod-কে সংরক্ষিত শব্দ হিসেবে বিবেচনা করুনআপনি যদি Koder.ai ব্যবহার করেন, প্রতিটি প্রিভিউ URL-কে একটি স্ন্যাপশটের সাথে জোড়া দিলে প্রিভিউ স্থির থাকে এমনকি পরে আরও কাজ হলেও।
একটি প্রিভিউ উচিত একটিমাত্র বিল্ড এবং কনফিগের দিক নির্দেশ করা, “সর্বশেষ যা আছে” নয়। সাধারণত একটি প্রিভিউ URL মানে একটি স্ন্যাপশট (অথবা কমিট-সদৃশ সংস্করণ)।
ফিডব্যাক এলে প্রিভিউটিকে দৃশ্যমানভাবে আপডেট করুন: একটি নতুন স্ন্যাপশট তৈরি করুন এবং প্রিভিউকে সেই স্ন্যাপশটে সুইচ করুন (বা একটি নতুন প্রিভিউ URL তৈরি করুন)। ভাগ করা URL কী দেখায় তা চুপচাপ পরিবর্তন করা থেকে বিরত থাকুন।
একটি ডিফল্ট পছন্দ বেছে নিন এবং তা দলকে লিখে রাখুন:
প্রিভিউ প্রায়ই স্ক্রিনশট বা ফরওয়ার্ড করা মেসেজ দিয়ে লিক করে। “টিম-অনলি যদি স্পষ্টভাবে শেয়ার না করা হয়” মত একটি স্পষ্ট নিয়ম ব্যবহার করুন, এবং বেসিক কন্ট্রোল (লগইন আবশ্যক, allowlist, বা শেয়ার পাসওয়ার্ড) দিয়ে এটি-enforce করুন।
এছাড়া ঠিক করুন প্রিভিউ কত দিন থাকবে (উদাহরণ: মার্জের পরে মুছে ফেলুন) যাতে পুরোনো URLগুলো রিভিউয়ারদের বিভ্রান্ত না করে।
ভালো একটি প্রিভিউ সেটআপ প্রতিটি পরিবর্তনকে পৃথক রাখে। এক ফিচারের জন্য এক URL, যাতে রিভিউয়াররা কখনো আন্দাজ করতে না বাধ্য হন কোন সংস্করণ তারা দেখছেন।
আপনার সবচেয়ে স্থিতিশীল পয়েন্ট থেকে শুরু করুন: যদি main পরিষ্কার থাকে তবে main, অন্যথায় শেষ প্রডাকশন রিলিজ। এতে প্রিভিউ ফিচারের উপর ফোকাস রাখে, অনান্য পরিবর্তনের উপর নয়।
ফিচারের জন্য একটি আলাদা ওয়ার্কস্পেস তৈরি করুন (উদাহরণ: “billing-copy-update” বা “new-onboarding-step”)। সেই ওয়ার্কস্পেসটি একটি প্রিভিউ পরিবেশে ডিপ্লয় করুন এবং প্রিভিউ URL-কে ওই ফিচারের হোম হিসেবে বিবেচনা করুন।
আপনি যদি Koder.ai-এর মতো চ্যাট-নির্ভর টুল ব্যবহার করেন, ওয়ার্কফ্লোটি স্বাভাবিক মনে হবে: ফিচার আলাদা স্পেসে বানান, তারপর একটি আলাদা প্রিভিউ এক্সপোর্ট বা ডিপ্লয় করুন প্রডাকশন স্পর্শ না করে।
দ্রুত এক পাস করুন যা সবচেয়ে সাধারণ ভাঙনের ধরনগুলো ধরবে। ছোট এবং পুনরাবৃত্তিযোগ্য রাখুন:
মোটকথা আপনি কী টেস্ট করেছেন এক বাক্যে লিখে রাখুন। পরে সময় বাঁচে।
প্রিভিউ URL পাঠান একটি সংক্ষিপ্ত নোটের সঙ্গে: কী পরিবর্তন, প্রথমে কোথায় ক্লিক করবেন, এবং “ডান” হলে কেমন হবে। নির্দিষ্ট ফিডব্যাক চান (কপি, লেআউট, এজ কেস) — কেবল “ভালো লিগ?” জেনারে নেবেন না।
ফিডব্যাক প্রয়োগ করুন, পুনরায় ডিপ্লয় করুন, এবং কোন রাউন্ডে কী পরিবর্তন হয়েছে তা নোট রাখুন। প্রিভিউ অনুমোদন হলে আপনার কাছে কি টেস্ট করা হয়েছে এবং কেন তা প্রস্তুত মনে হয়েছে তার একটি স্পষ্ট ট্রেইল থাকা উচিত।
প্রিভিউ পুরো QA মারাথন করার জায়গা নয়। এটি সেইসব ভুলগুলো ধরার জায়গা যেখানে সাধারণত প্রডাকশনে কেউ দেখা হয়নি।
বেসিক থেকে শুরু করুন: ডেস্কটপ এবং মোবাইল উইথে প্রধান পেজগুলি খুলুন, ন্যাভিগেশনে ক্লিক করুন এবং নিশ্চিত করুন যে ব্ল্যাঙ্ক স্ক্রিনে পড়ছেন না। তারপর একটি হ্যাপি-পাথ ফ্লো এন্ড-টু-এন্ড করুন, একই ভাবে যা কাস্টমার করবে।
একটি ন্যূনতম টেস্ট সেট যা বেশিরভাগ ওয়েব অ্যাপের জন্য কাজ করে:
যদি আপনার অ্যাপ অন্য সিস্টেমের সাথে কানেক্ট করে, প্রতিটি ফিচারের জন্য একটি ছোট ইন্টিগ্রেশন চেক করুন। একটি টেস্ট ইমেল ট্রিগার করুন, স্যান্ডবক্স মোডে একটি ছোট পেমেন্ট চালান, একটি ওয়েবহুক টেস্ট এন্ডপয়েন্টে পাঠান, বা একটি ছোট ফাইল আপলোড করে ডাউনলোড নিশ্চিত করুন। আপনি সকল এজ কেস প্রমাণ করছেন না — আপনি নিশ্চিত করছেন যে ওয়্যারিং ঠিক আছে।
প্রিভিউ এছাড়াও বনিহীন কারণে ব্যর্থ হয়: মিসিং সেটিংস। নিশ্চিত করুন এনভায়রনমেন্ট ভেরিয়েবল এবং সিক্রেট আছে এবং সেগুলো সঠিক সার্ভিসের দিকে নির্দেশ করে (প্রায়শই স্যান্ডবক্স)। একটি সাধারণ ফাঁকি হলো প্রিভিউ ভুল করে প্রডাকশন কী ব্যবহার করা।
শেষে, একটি হালকা পারফরম্যান্স চেক করুন। সবচেয়ে ধীর পেজ লোড করুন এবং চেক করুন বড় ইমেজ, দীর্ঘ লোডিং স্পিনার বা পুনরাবৃত্ত API কল আছে কি না। প্রিভিউতে যদি ধীর লাগে, প্রডাকশনে তা আরও খারাপ লাগবে।
আপনি যদি Koder.ai-তে তৈরি করেন, এই প্রিভিউ চেকগুলোকে অভ্যাস হিসেবে ধরুন: প্রিভিউ URL খুলুন, চেকলিস্ট চালান, তারপরই প্রোমোট করুন। স্ন্যাপশট এবং রোলব্যাক আছে ভাল, কিন্তু ইস্যু আগে ধরাই সস্তা।
প্রোমোট মানে একটাই হওয়া উচিত: আপনি যেই প্রিভিউতে রিভিউ করেছিলেন ঠিক সেটাই প্রডাকশনে যায়। না কোনো শেষ মুহূর্তের এডিট, না অনুমোদনের পর “কুইক ফিক্স”। প্রিভিউতে আপনি কনফিডেন্স পান; প্রডাকশনে আপনি ব্যবহারকারীদের রক্ষা করেন।
একটি ছোট রিলিজ গেট এটাকে বোঝা যাবে (ভালোভাবে)। এটাতে কমিটি লাগবে না। এটা লাগে এমন কিছু সংক্ষিপ্ত চেক যা আপনি প্রতিবারই অনুসরণ করবেন, এমনকি তাড়াতাড়িতেও:
ডাটাবেস পরিবর্তনগুলো আলাদা যত্ন দাবি করে। একটি নিরাপদ প্যাটার্ন হলো “প্রসারিত করুন, পরে সংকুচিত করুন।” প্রথমে ব্যাকওয়ার্ড-কম্প্যাটিবল পরিবর্তন আনুন (কলাম যোগ করুন, টেবিল যোগ করুন, দুটি জায়গায় লিখুন)। নতুন সংস্করণ স্থিতিশীল হলে পুরোনো কলাম বা কোড পাথ সরান। এতে rollback ব্যর্থ হওয়ার ঝুঁকি কমে যায় কারণ ডাটাবেস পুরোনো অ্যাপের সঙ্গে মিল রয়েছে।
টাইমিংও নিরাপত্তার অংশ। একটি সহজ নিয়ম রাখুন এবং সেটাই ফলো করুন:
Koder.ai-তে এটি প্রিভিউ থেকে প্রোমোট করার সাথে ভালোভাবে মানায়: রিভিউ করা প্রিভিউ প্রোমোট করুন, তারপর প্রডাকশনে স্মোক টেস্টে কোনো মিসিং এজ কেস পেলে স্ন্যাপশট এবং রোলব্যাক ব্যবহার করুন।
অধিকাংশ রিলিজ সমস্যা নতুন বাগ নয়। এগুলো প্রিভিউ এবং প্রডাকশনের মধ্যে মিস-ম্যাচ বা কোনো সেফটি নেট না থাকার ফল।
কিছু সাধারণ ভুল:
আপনি যদি চ্যাট-ভিত্তিক টুল Koder.ai ব্যবহার করেন, প্রিভিউগুলোকে ডিসপোজেবল হিসেবে এবং প্রডাকশনকে নিয়ন্ত্রিত হিসেবে বিবেচনা করুন। লক্ষ্য সহজ: প্রতিটি প্রোমোশন পুনরাবৃত্তিযোগ্য এবং প্রতিটি রোলব্যাক বিরক্তিকর হওয়া উচিত না।
রোলব্যাক কেবল "পুরনো কোড ফিরিয়ে আনা" নয়। একটি ভালো রোলব্যাক সেই অবস্থা পুনরুদ্ধার করে যা ব্যবহারকারীরা নির্ভর করত: অ্যাপের সংস্করণ, চালনার কনফিগ এবং ডাটাবেস অবস্থা যা সেই সংস্করণের সাথে মেলে।
আপনি যদি কোড রোলব্যাক করুন কিন্তু নতুন কনফিগ রাখেন (যেমন একটি API কী, ফিচার ফ্ল্যাগ বা ব্যাকগ্রাউন্ড জব শিডিউল), তাহলে একই আউটেজ আরেক নামে ফিরে আসতে পারে। আপনি যদি কোড রোলব্যাক করেন কিন্তু ডাটাবেস ইতোমধ্যেই ঢাঁচা বদলে ফেলেছে, পুরোনো অ্যাপ ক্র্যাশ করবে বা ভুল ডেটা দেখাবে।
একটি সহজ অভ্যাস সাহায্য করে: প্রতিটি প্রডাকশন রিলিজের ঠিক আগে একটি পরিচিত-ভাল স্ন্যাপশট নিন। সেই স্ন্যাপশটই আপনার সেফটি লাইন। যদি আপনার প্ল্যাটফর্ম স্ন্যাপশট এবং এক-ক্লিক রোলব্যাক সাপোর্ট করে (Koder.ai করে), সেই ধাপটি অমোঘ বিবেচনা করুন, এমনকি ছোট পরিবর্তনেও।
কিছু ভাঙলে দ্রুত সিদ্ধান্ত নিন: রোলব্যাক না কি হটফিক্স ফরোয়ার্ড।
উদ্দেশ্য এমন একটি অবস্থায় ফিরিয়ে আনা যেখানে সিস্টেম স্বাভাবিকভাবে আচরণ করেছিল:
একটাকে ইনসিডেন্ট হিসেবে চিহ্নিত করুন, সকল নতুন পরিবর্তন বন্ধ করুন এবং একজনকে নাম দিন রিকভারি কনফার্ম করার জন্য। তারপর বেসিক যাচাই করুন: কি পেজ লোড হচ্ছে, সাইন-ইন কাজ করছে, এবং গুরুত্বপূর্ণ অ্যাকশন সফল হচ্ছে। স্থিতিশীল হলে ঘটনার কারণ ও ভবিষ্যতে কী পরিবর্তন করবেন তা লিখে রাখুন।
প্রতি রিলিজে একই ছোট চেকলিস্ট থাকলে রিলিজ নিরাপদ মনে হয়। এটাকে ছোট রাখুন যাতে আপনি বাস্তবে এটি করেন, কিন্তু যথেষ্ট সুনির্দিষ্ট রাখুন যাতে সাধারণ সমস্যা ধরা পড়ে।
রিলিজ প্রস্তুত এবং আপনার কাছে একটি প্রিভিউ URL থাকলে এটি ব্যবহার করুন:
প্রডাকশন লাইভ হওয়ার প্রথম কয়েক মিনিটে এগুলো করুন, যখন পরিবর্তনটা সহজে বোঝা যায়:
আপনি যদি এটি প্রিন্ট করে রিলিজ বাটনের পাশে রাখেন, তাহলে সেরা চেকলিস্টই হলো আপনি যা প্রতিবার করবেন।
একটি ছোট টিম নতুন একটি চেকআউট ধাপ যোগ করে (যেমন “company name and VAT”) যা চ্যাটের মাধ্যমে বানানো। সেলস এটি বাস্তব কাস্টমার কলেই পরীক্ষা করতে চায় আগে লাইভ করার। লক্ষ্য হলো প্রিভিউ ও প্রডাকশন স্পষ্টভাবে আলাদা রেখে তবু দ্রুত এগোয়া।
তারা একটি ফিচার ব্রাঞ্চ তৈরি করে এবং আলাদা URL সহ একটি প্রিভিউ বিল্ড জেনারেট করে, উদাহরণস্বরূপ checkout-vat.preview। প্রিভিউ একই ডাটাবেসের ঢাঁচার মতো কিন্তু টেস্ট ডেটা ব্যবহার করে। সেলসকে প্রিভিউ URL এবং একটা ছোট স্ক্রিপ্ট দেয়া হয়: “Add an item, enter VAT, complete a test payment.”
দুই দিনের মধ্যে ফিডব্যাক আসে: VAT ফিল্ডটা অস্পষ্ট, এবং এরর মেসেজ ভয় দেখায়। টিম UI সামান্য বদলে, কপি আপডেট করে এবং প্রিভিউ পুনরায় ডিপ্লয় করে।
তারা অনুসরণ করে একটি সরল প্রবাহ:
রিলিজ প্রথম ২০ মিনিট ভালো দেখায়, তারপর পেমেন্ট ফেইল করা শুরু করে। বাগ কোডে নয়—একটি লুকানো কনফিগ ভ্যালু (পেমেন্ট প্রোভাইডারের জন্য ব্যবহার হওয়া এনভ্যায়রনমেন্ট ভেরিয়েবল) প্রডাকশনে অনুপস্থিত ছিল।
চাপের মধ্যে হটফিক্স করার চেষ্টা করার বদলে তারা পূর্বের স্ন্যাপশটে রোলব্যাক করে। পেমেন্ট দ্রুত পুনরায় কাজ করে। পরে তারা নতুন রিলিজটি প্রিভিউতে রিস্টোর করে, সেখানে অনুপস্থিত কনফিগ যোগ করে এবং আবার রিলিজ গেট চালায়।
পরে তারা প্রক্রিয়াটি বদলে যাতে পুনরায় না ঘটে:
রিলিজগুলোকে একটি পুনরাবৃত্ত রুটিন মনে করুন, বিশেষ ঘটনা না। লক্ষ্য হলো প্রিভিউ বনাম প্রডাকশন যেন বিরক্তিকর হয়: প্রতিবার একই ধাপ, একই চেক।
আপনার পরিবেশ নিয়মগুলো সাধারণ ভাষায় লিখে রাখুন। সংক্ষিপ্ত এবং সুনির্দিষ্ট রাখুন: কীভাবে প্রিভিউ URL নামাবেন, কে অ্যাক্সেস পাবে, কী ডেটা অনুমোদিত, এবং প্রিভিউতে পাওয়া ইস্যুগুলোর মালিক কে। ডেটার জন্য একটি সহজ নিয়ম সহায়ক: প্রিভিউতে টেস্ট ডেটা বা মাস্ক করা কপি ব্যবহার করুন, এবং বাস্তব কাস্টমার রেকর্ড স্পর্শ করবেন না যদি না স্পষ্ট কারণ ও অনুমোদন থাকে।
একটি অমোঘ অভ্যাস তৈরি করুন: প্রতিটি প্রডাকশন রিলিজ স্ন্যাপশট নিয়ে শুরু হয় এবং স্মোক টেস্ট দিয়ে শেষ হয়। স্ন্যাপশট আপনাকে সেফ এক্সিট দেবে যদি রিলিজ কোনো অপ্রত্যাশিত সমস্যা নিয়ে আসে। স্মোক টেস্ট সেই কয়েকটি গুরুত্বপূর্ণ অ্যাকশন এখনও কাজ করছে কিনা প্রমাণ করে।
একটি হালকা ডিফল্ট যা পুনরায় ব্যবহারযোগ্য:
পরিবর্তন ছোট রাখা হলে ঝুঁকি দ্রুত কমে। একবারে এক ফিচার বা ফিক্স নিয়ে ফ্রিকোয়েন্ট রিলিজ পছন্দ করুন। যদি পরিবর্তন বড় হয়, সেটাকে অংশে ভাগ করুন যাতে নিরাপদে শিপ করা যায়, এমনকি UI প্রথমে এসে পরে ব্যাকএন্ড লজিক সম্পূর্ণ করা না থাকলেও।
আপনি যদি Koder.ai দিয়ে বানান, প্রতিটি ফিচারের জন্য প্রিভিউ ডিপ্লয়মেন্টে নির্ভর করুন যাতে রিভিউয়াররা স্ক্রিনশট দেখে আন্দাজ না করে, প্রকৃত URL ক্লিক করে দেখতে পারে। যখন ঠিক লাগে, প্রোমোট করুন এবং স্ন্যাপশট ও রোলব্যাক প্রস্তুত রাখুন যাতে খারাপ ডিপ্লয় কেবল এক छोटো বাঁক হয়ে যায়, দীর্ঘ আউটেজ না।
A preview environment is a temporary, isolated copy of your app you can open and share for feedback. Production is the live app real users rely on, with real data and real consequences if something breaks.
Default rule: preview is for learning and checking, production is for serving customers.
Create a preview for any change that affects what users see or do: UI updates, forms, auth, billing, database queries, or third‑party integrations.
If the change could create support tickets if it’s wrong, it deserves a preview link first.
Use a simple, consistent pattern that tells reviewers what they’re looking at:
prv-<ticket>-<feature> (উদাহরণ: prv-482-checkout-tax)prod বা main মত নাম এড়িয়ে চলুনলক্ষ্য: কেউ URL চ্যাটে পেস্ট করলে বুঝবে এটি কী।
A preview should point to one specific build (not “whatever is latest”).
Practical approach:
This makes feedback reliable because everyone tests the same version.
Pick one default and write it down for your team:
Default recommendation: use sample data unless you have a clear reason to simulate production edge cases.
Treat previews as easy to share and easy to leak.
Common safe options:
Default: team-only access unless explicitly shared.
Keep it short enough that you’ll actually do it:
Write one sentence with what you tested so reviewers know what’s covered.
Environment variables are a top cause of “works in preview, fails in production.”
Before promoting:
Never reuse production secrets in previews.
Use a backwards-compatible pattern:
This reduces the chance that a rollback fails because the database no longer matches the older app version.
Default action when users are blocked or the cause isn’t clear: roll back fast to the last known-good snapshot/version.
Use a hotfix only when:
After rollback, run a quick production smoke test (login + core action) to confirm recovery.