ShrimpReel কী?
ShrimpReel হলো একটি ওপেন-সোর্স SaaS টেমপ্লেট, যার মাধ্যমে এমন ওয়েবসাইট তৈরি করা যায় যা আপলোড করা একটি ছবিকে ভাইরাল ফরম্যাটের ওপর ভিত্তি করে AI-জেনারেটেড ভিডিওতে রূপান্তর করে। নির্ধারিত কর্মপ্রবাহ হলো প্রতিটি ট্রেন্ডিং কীওয়ার্ডের জন্য আলাদা রিপোজিটরি তৈরি করা, সাইটের কনফিগারেশন ও দ্বিভাষিক কনটেন্ট পরিবর্তন করা, মিডিয়া প্রতিস্থাপন করা এবং সম্পূর্ণ অ্যাপ্লিকেশনটি Cloudflare-এ ডিপ্লয় করা।
এই স্ট্যাকে ফ্রন্টএন্ড ও সার্ভার-সাইড রেন্ডারিংয়ের জন্য React 19 এবং Tailwind CSS 4-এর সঙ্গে TanStack Start ব্যবহার করা হয়েছে। একটি Hono API /api/*-এর অধীনে রুট, মিডিয়া ডেলিভারি, robots নির্দেশনা, সাইটম্যাপ এবং IndexNow যাচাইকরণ পরিচালনা করে। সার্ভারের এন্ট্রি পয়েন্ট হলো src/server.ts।
অ্যাপ্লিকেশনটি Cloudflare Workers, D1, R2, KV, Queues, Rate Limiting এবং Cron Triggers-এর ওপর ভিত্তি করে তৈরি। ইংরেজি পেজগুলো / থেকে পরিবেশিত হয়, আর চীনা পেজগুলো /zh-এর অধীনে পাওয়া যায়।
প্রকল্পের অবস্থা: README অনুযায়ী, সম্পূর্ণ কর্মপ্রবাহ স্থানীয় ইউনিট এবং Playwright end-to-end পরীক্ষায় সফল, তবে টেমপ্লেটটি এখনো প্রোডাকশন ডিপ্লয়মেন্ট হিসেবে যাচাই করা হয়নি। বাস্তব সার্ভিসের সঙ্গে পৃথক ইন্টিগ্রেশন ব্যবহারের আগে
ROADMAP.mdপর্যালোচনা করুন।
প্রধান বৈশিষ্ট্য
অ্যাকাউন্ট, বিলিং ও ক্রেডিট
- Google সাইন-ইন, যার মধ্যে Google One Tap এবং শুধু localhost-এর জন্য ডেভেলপমেন্ট লগইনও রয়েছে।
- ক্রেডিট প্যাক এবং ঐচ্ছিক মাসিক বা বার্ষিক সাবস্ক্রিপশন।
- ক্রেডিট লেজার, রিডিম কোড, রেফারেল লিংক, বিলিং ইতিহাস, প্রিন্টযোগ্য অর্ডারের বিবরণ, অ্যাকাউন্ট মুছে ফেলা এবং ডেটা এক্সপোর্ট।
- ডিফল্ট পেমেন্ট প্রদানকারী হিসেবে Waffo Pancake অথবা বিকল্প হিসেবে Dodo Payments।
- স্বয়ংক্রিয় ক্রেডিট প্রত্যাহারসহ আংশিক ও সম্পূর্ণ রিফান্ড।
ভিডিও তৈরি
- ডিফল্ট ভিডিও প্রদানকারী হিসেবে fal.ai-এর queue API।
- yir.ai-এর মাধ্যমে ঐচ্ছিক রাউটিং।
- স্থানীয় ডেভেলপমেন্ট ও পরীক্ষার সময় একটি টেমপ্লেট ভিডিও কপি করে এমন mock provider।
- জেনারেশন queue, dead-letter queue এবং জেনারেশন ব্যর্থ হলে স্বয়ংক্রিয় ক্রেডিট ফেরত।
- পাবলিক ভিডিও শেয়ারিং পেজ, যা ব্যবহারকারীরা প্রতি ভিডিওর জন্য সক্রিয় করতে পারেন।
গ্রোথ, প্রশাসন ও অপারেশন
- UTM মান এবং বিজ্ঞাপনের ক্লিক আইডেন্টিফায়ার ব্যবহার করে first-touch ও last-touch attribution।
- ভিজিট-টু-জেনারেশন ফানেল এবং সম্মতিনির্ভর GA4 ইভেন্ট।
- ব্যবহারকারী, অর্ডার, জেনারেশন, পেমেন্ট ইভেন্ট, takedown, রিপোর্ট, ইমেইল, অডিট রেকর্ড, রেফারেল, রানটাইম সেটিংস এবং সংযোগ পরীক্ষা পরিচালনার জন্য অ্যাডমিন ইন্টারফেস।
- প্রদানকারীর খরচ ও মোট মুনাফার রিপোর্ট।
- মেইনটেন্যান্স মোড, ঘোষণা, দৈনিক জেনারেশন সীমা, স্বাস্থ্য সতর্কতা, ব্রাউজার ত্রুটি রিপোর্টিং এবং পেমেন্ট বিজ্ঞপ্তি।
- R2-তে দৈনিক D1 ব্যাকআপ।
নিরাপত্তা, সংরক্ষণ ও SEO
- আপলোড moderation এবং ভিডিওতে AI-generated লেবেল।
- সাত দিন পর স্বয়ংক্রিয়ভাবে ছবি এবং 30 দিন পর ভিডিও মুছে ফেলা।
- 48 ঘণ্টার takedown queue, যা একই উৎস ছবির মাধ্যমে তৈরি ভিডিও সরিয়ে দেয় এবং সেই ছবি ব্লক করে।
- যোগাযোগ ও রিপোর্ট ফর্মে Turnstile সমর্থন।
- Canonical URL, hreflang metadata, JSON-LD, সাইটম্যাপ, আইনগত পেজ, গাইড, সম্পর্কিত নিবন্ধ এবং code-split localized copy।
npm run seo:check-এর মাধ্যমে ব্যবহারযোগ্য সাইটব্যাপী SEO লিন্টার।
পূর্বশর্ত
Node.js এবং npm 11.19 বা তার পরের সংস্করণ ইনস্টল করুন। পুরোনো npm সংস্করণগুলো package-lock.json এমনভাবে পুনর্লিখতে পারে, যার কারণে পরে continuous integration-এ npm ci ব্যর্থ হয়।
প্রোডাকশন ডিপ্লয়মেন্টের জন্য আপনার একটি Cloudflare অ্যাকাউন্ট, একটি পেমেন্ট-প্রদানকারী অ্যাকাউন্ট, একটি ভিডিও-প্রদানকারীর API key এবং Google OAuth credentials প্রয়োজন হবে। বান্ডেল করা স্ক্রিপ্ট দিয়ে placeholder মিডিয়া পুনরায় তৈরি করার সময়ই কেবল FFmpeg প্রয়োজন।
স্থানীয়ভাবে ShrimpReel ইনস্টল ও চালান
1. নির্ভরতা ইনস্টল এবং স্থানীয় ভেরিয়েবল তৈরি করুন
npm install
cp .dev.vars.example .dev.vars.dev.vars খুলে অন্তত SESSION_SECRET সেট করুন। প্রোডাকশন এবং staging-এর জন্য অন্তত 32 অক্ষরের একটি শক্তিশালী মান প্রয়োজন। README-তে এটি তৈরি করার জন্য নিচের কমান্ডটি ব্যবহারের পরামর্শ দেওয়া হয়েছে:
openssl rand -hex 322. স্থানীয় ডেটাবেস ও মিডিয়া স্টোরেজ প্রস্তুত করুন
npm run seed:localএই কমান্ডটি D1 migration প্রয়োগ করে এবং seed/templates/*.mp4 থেকে ফাইলগুলো স্থানীয়ভাবে অনুকরণ করা R2 স্টোরেজে আপলোড করে।
3. ডেভেলপমেন্ট সার্ভার চালু করুন
npm run dev -- --host 127.0.0.1http://127.0.0.1:3000 খুলুন। Windows-এ স্পষ্টভাবে 127.0.0.1 ব্যবহার করলে test tool-গুলো localhost-কে IPv6 হিসেবে resolve করার সমস্যাও এড়ানো যায়।
ডেভেলপমেন্ট সার্ভার
0.0.0.0-এ চালাবেন না বা সরাসরি ইন্টারনেটে প্রকাশ করবেন না। ডেভেলপমেন্ট লগইন, mock payment এবং/api/dev/*কেবল সরাসরি localhost request-এর জন্য নির্ধারিত।
মৌলিক কর্মপ্রবাহ চেষ্টা করুন
ডিফল্ট স্থানীয় কনফিগারেশনে PAYMENT_PROVIDER=mock, VIDEO_PROVIDER=mock এবং MODERATION_PROVIDER=mock ব্যবহার করা হয়। এর ফলে কার্ডে চার্জ না করেই বা কোনো বাহ্যিক ভিডিও সার্ভিসে job না পাঠিয়েই পণ্যটি পরীক্ষা করা যায়।
- সাইন-ইন পেজ খুলুন এবং production-এর বাইরে প্রদর্শিত ডেভেলপমেন্ট লগইন ব্যবহার করুন।
- একটি ক্রেডিট প্যাক নির্বাচন করুন। mock checkout কোনো চার্জ ছাড়াই পেমেন্টের অনুকরণ করে।
- একটি ছবি আপলোড করে জেনারেশন শুরু করুন।
- mock video provider কোনো AI model কল না করে seed করা টেমপ্লেট ভিডিও কপি করে।
- তৈরি হওয়া ভিডিও, ক্রেডিট লেজার, বিলিং রেকর্ড এবং শেয়ারিং সেটিংস পর্যালোচনা করতে ড্যাশবোর্ড খুলুন।
আপলোড প্রত্যাখ্যানের অনুকরণ করতে mockOutcome=reject দিয়ে আপলোড ফর্ম জমা দিন। স্থানীয়ভাবে Turnstile নিষ্ক্রিয় রাখতে TURNSTILE_SITE_KEY খালি রাখুন।
বর্তমানে সাইন-ইন করা ব্যবহারকারীর মিডিয়ার retention cleanup-ও পরীক্ষা করতে পারেন:
POST /api/dev/sweep
Content-Type: application/json
{"days": 8}স্থানীয় ইমেইল ডেলিভারি সিমুলেট করা হয়। আউটবক্স দেখতে ব্যবহার করুন:
GET /api/dev/emails?to=user@example.com&ref=<order-or-takedown-id>নতুন ট্রেন্ডের জন্য একটি সাইট তৈরি করুন
১. আপস্ট্রিম ইতিহাস সংরক্ষণ করে রিপোজিটরি ক্লোন করুন
git clone https://github.com/qianshuixia/shrimpreel.git moonhop
cd moonhop
git remote rename origin upstream
git remote add origin git@github.com:<owner>/moonhop.gitভবিষ্যৎ টেমপ্লেট আপডেট মার্জ করতে চাইলে GitHub-এর টেমপ্লেট বাটন ব্যবহার করবেন না। এভাবে তৈরি করা রিপোজিটরির সোর্স রিপোজিটরির সঙ্গে ইতিহাসের কোনো সংযোগ থাকে না। upstream রিমোটসহ সাধারণ ক্লোন মার্জ বেস সংরক্ষণ করে।
২. সাইট স্ক্যাফোল্ডার চালান
ড্রাই রান দিয়ে শুরু করুন, প্রস্তাবিত পরিবর্তনগুলো পর্যালোচনা করুন, তারপর --write যোগ করুন:
node scripts/new-site.mjs --keyword "Moon Hop" --domain moonhop.ai --keywords "AI dance video,Moon Hop filter"
node scripts/new-site.mjs --keyword "Moon Hop" --domain moonhop.ai --keywords "AI dance video,Moon Hop filter" --writeস্ক্যাফোল্ডার site.ts, wrangler.jsonc-এর Cloudflare রিসোর্সের নাম এবং প্যাকেজের নাম আপডেট করে। এটি ডিপ্লয়মেন্ট-নির্দিষ্ট আইডেন্টিফায়ারগুলো রিসেট করে এবং টেমপ্লেটের স্টেজিং কনফিগারেশন সরিয়ে দেয়। এরপর বাকি ম্যানুয়াল কাজের জন্য একটি চেকলিস্ট দেখায়।
৩. মূল্য নির্ধারণ ও জেনারেশন কনফিগার করুন
src/config/site.ts সম্পাদনা করুন। packages-এর ক্রেডিট প্যাক, subscriptionsEnabled সুইচ, সাবস্ক্রিপশন plans, উপলভ্য durations এবং video.falModel পর্যালোচনা করুন।
সাইটে শুধু এককালীন প্যাক বিক্রি করতে হলে subscriptionsEnabled-এর মান false করুন। কোনো প্যাক তুলনা করার জন্য কাটা দামের প্রদর্শনে anchorPriceCents ব্যবহার করতে পারে, তবে README-তে সতর্ক করা হয়েছে যে এটি এমন একটি দাম হওয়া উচিত যে দামে প্যাকটি সত্যিই বিক্রি হয়েছিল। নতুন সাইটে সাধারণত এটি সেট না রাখাই উচিত।
৪. স্থানীয়কৃত কনটেন্ট পুনর্লিখুন
src/content/en.ts এবং src/content/zh.ts-এর ট্রেন্ড-নির্দিষ্ট লেখা প্রতিস্থাপন করুন। অন্তত হিরো সেকশন, ব্যাখ্যা, আইডিয়া, FAQ এবং অন্তর্ভুক্ত উভয় নিবন্ধ পুনর্লিখুন। ঐচ্ছিক সমস্যা ও তুলনা ব্লকও পুনর্লিখুন অথবা null সেট করুন।
বিদ্যমান লেখায় শুধু সর্বত্র কীওয়ার্ড পরিবর্তন করা এড়িয়ে চলুন। টেমপ্লেটে স্পষ্টভাবে সতর্ক করা হয়েছে যে যান্ত্রিকভাবে নকল করা সাইটগুলোকে সার্চ ইঞ্জিনগুলো স্কেলড কনটেন্ট অপব্যবহার হিসেবে বিবেচনা করতে পারে।
নতুন নিবন্ধ যোগ করতে প্রথমে site.ts-এর articles সেকশনে মেটাডেটা এন্ট্রি তৈরি করুন, তারপর প্রতিটি লোকেলের জন্য সংশ্লিষ্ট কনটেন্ট কী যোগ করুন। নিবন্ধগুলো স্বয়ংক্রিয়ভাবে গাইডস হাব, সাইটম্যাপ এবং কনফিগার করা সম্পর্কিত নিবন্ধের লিংকে যুক্ত হয়। বিদ্যমান trend এবং howTo এন্ট্রি রেখে দিন, কারণ হোম পেজ এগুলোর সঙ্গে লিংক করে।
৫. সব প্লেসহোল্ডার মিডিয়া প্রতিস্থাপন করুন
- সোর্স জেনারেশন ক্লিপগুলো
seed/templates/-এ<template.id>-<seconds>s.mp4প্যাটার্ন ব্যবহার করে রাখুন। - হোম পেজের ভিডিও ও পোস্টারগুলো
public/demo/-তে প্রতিস্থাপন করুন। public/og.pngএবংpublic/favicon.svgপ্রতিস্থাপন করুন।- শুধু নিজস্ব বা লাইসেন্সপ্রাপ্ত ডেমো মিডিয়া ব্যবহার করুন এবং এর অ্যাট্রিবিউশন
site.examples.*.credit-এ নথিভুক্ত করুন।
FFmpeg উপলভ্য থাকলে, প্রকল্পের নিজস্ব প্লেসহোল্ডার অ্যাসেটগুলো পুনরায় তৈরি করুন:
node scripts/generate-placeholder-media.mjstemplate.id পরিবর্তন করার পর seed/templates/ থেকে অপ্রচলিত টেমপ্লেট ফাইল সরিয়ে দিন।
বাস্তব প্রোভাইডার কনফিগার করুন
রানটাইম ভেরিয়েবল
wrangler.jsonc-এ গোপন নয় এমন প্রোডাকশন ভেরিয়েবল সেট করুন। গুরুত্বপূর্ণ মানগুলোর মধ্যে রয়েছে SITE_URL, APP_ENV=production, PAYMENT_PROVIDER, VIDEO_PROVIDER, MODERATION_PROVIDER, TURNSTILE_SITE_KEY, ADMIN_EMAILS, EMAIL_FROM, প্রোডাক্ট ম্যাপিং এবং GOOGLE_CLIENT_ID।
পেমেন্ট প্রোভাইডারের প্রোডাক্টের দামই চূড়ান্ত কর্তৃত্বপূর্ণ। সাইটে প্রদর্শিত দাম প্রোভাইডার ড্যাশবোর্ডের সঙ্গে সামঞ্জস্যপূর্ণ রাখতে হবে। প্রোডাক্ট ম্যাপিং প্রতিটি কনফিগার করা প্যাক বা প্ল্যানকে তার প্রোভাইডার প্রোডাক্ট আইডির সঙ্গে যুক্ত করে।
সিক্রেট
নির্বাচিত ইন্টিগ্রেশনের ওপর নির্ভর করে সিক্রেটের মধ্যে থাকতে পারে SESSION_SECRET, GOOGLE_CLIENT_SECRET, Waffo ক্রেডেনশিয়াল, Dodo ক্রেডেনশিয়াল, FAL_KEY, ঐচ্ছিক YIR_API_KEY, মডারেশনের জন্য ঐচ্ছিক OPENAI_API_KEY এবং TURNSTILE_SECRET_KEY।
একটি নির্দিষ্ট সিক্রেট সেট করতে ব্যবহার করুন:
npx wrangler secret put <NAME>অন্যথায়, প্রোডাকশন ভেরিয়েবল ফাইলটি কপি ও সম্পূর্ণ করুন, প্ল্যান পর্যালোচনা করুন, তারপর অনুপস্থিত সিক্রেট প্রয়োগ করুন:
cp .dev.vars.example .dev.vars.production
node scripts/sync-secrets.mjs
node scripts/sync-secrets.mjs --applyসিঙ্ক্রোনাইজেশন স্ক্রিপ্ট সিক্রেটের মান দেখায় না। --overwrite দেওয়া না হলে বিদ্যমান রিমোট সিক্রেট সংরক্ষিত থাকে।
Cloudflare রিসোর্স তৈরি করুন
প্রতিটি কীওয়ার্ড সাইটের জন্য আলাদা রিসোর্স সেট তৈরি করুন। নামগুলো wrangler.jsonc-এর বাইন্ডিংয়ের সঙ্গে মিলতে হবে।
npx wrangler d1 create <name>
npx wrangler r2 bucket create <name>-media
npx wrangler kv namespace create <name>-kv
npx wrangler queues create <name>-jobs
npx wrangler queues create <name>-jobs-dlq
npm run db:migrate:remote
npx wrangler r2 object put <name>-media/templates/<file>.mp4 --file seed/templates/<file>.mp4 --content-type video/mp4 --remoteতৈরি হওয়া D1 ডেটাবেস আইডি এবং KV নেমস্পেস আইডি wrangler.jsonc-এ কপি করুন। প্রতিটি সাইটের রেট-লিমিট namespace_id-ও Cloudflare অ্যাকাউন্টের মধ্যে অবশ্যই অনন্য হতে হবে।
প্রজেক্টে বর্ণিত R2 লাইফসাইকেল নিয়মগুলো কনফিগার করুন, যাতে আপলোড করা ছবি এবং তৈরি করা ভিডিও সাত দিন ও ৩০ দিনের সংরক্ষণকাল অনুসরণ করে। ট্রানজ্যাকশনাল ইমেইল কাজ করার আগে প্রেরণকারী ডোমেইনটিকেও Cloudflare Email Service-এ অনবোর্ড করতে হবে।
যাচাই ও ডিপ্লয়
লোকাল মান যাচাই চালান
npm run typecheck
npm test
npm run test:e2e
npm run seo:checkডিপ্লয়ের আগে কনফিগারেশন ডাক্তার চালান:
npm run doctorডাক্তার পরিবেশ, ডোমেইন, নির্বাচিত প্রোভাইডার, প্রোডাক্ট ম্যাপিং, Cloudflare রিসোর্স বাইন্ডিং, কিউ, Cron কনফিগারেশন, প্রয়োজনীয় সিক্রেটের নাম, প্রয়োগ না করা মাইগ্রেশন এবং সমাধান না হওয়া TODO(site) মার্কার পরীক্ষা করে। দূরবর্তী যাচাই ইচ্ছাকৃতভাবে অনুপলব্ধ থাকলে --offline ব্যবহার করুন।
ডিপ্লয় করে স্মোক টেস্ট চালান
npm run deploy
SMOKE_BASE_URL=https://<domain> npm run test:smokenpm run deploy প্রথমে ডিপ্লয়ের পূর্বের যাচাইগুলো চালায়। ডিপ্লয়ের পর Cloudflare-এ কাস্টম ডোমেইন সংযুক্ত করুন এবং নিশ্চিত করুন যে SITE_URL ঠিক site.domain-এর সঙ্গে মিলে। ক্যানোনিক্যাল URL, সাইটম্যাপ এবং একই-অরিজিন CSRF যাচাই এই মিলের ওপর নির্ভর করে।
কাস্টম ডোমেইন কাজ করলে workers_dev এবং preview_urls-এর মান false করুন। অন্যথায়, একই D1 এবং R2 রিসোর্স ব্যবহার করে প্রোডাকশন Worker সর্বসাধারণের Cloudflare ডেভেলপমেন্ট ও ভার্সন URL-এর মাধ্যমে অ্যাক্সেসযোগ্য থাকবে।
SEO লঞ্চের কাজগুলো সম্পন্ন করুন
npm run seo:check -- --base https://<domain> --production
npm run seo:indexnow -- --submitsite.seo.indexNowKey কনফিগার করার পরেই শুধু IndexNow কমান্ড চালান। Google Search Console এবং Bing Webmaster Tools-এ ডোমেইন যাচাই করুন, তারপর https://<domain>/sitemap.xml সাবমিট করুন।
উন্নত টিপস
প্রোডাকশনকে মক-মুক্ত রাখুন
নির্বাচিত প্রোভাইডারগুলো mock অবস্থায় থাকলে প্রোডাকশন ও স্টেজিং 503 রেসপন্স দিয়ে চেকআউট, জেনারেশন এবং আপলোড প্রত্যাখ্যান করে। এসব পরিবেশে ডেভেলপমেন্ট লগইন, মক চেকআউট রুট এবং ডেভেলপমেন্ট API এন্ডপয়েন্ট 404 রিটার্ন করে। এটিকে নিরাপত্তা ব্যবস্থা হিসেবে বিবেচনা করুন, npm run doctor চালানোর বিকল্প হিসেবে নয়।
প্যাচ কপি না করে টেমপ্লেট আপডেট মার্জ করুন
সাইট-নির্দিষ্ট কাজ src/config/site.ts, src/content/*, public/*, seed/, wrangler.jsonc এবং প্যাকেজের নামে রাখুন। শেয়ার করা সংশোধন টেমপ্লেটে করুন এবং প্রতিটি সাইটে মার্জ করুন।
git fetch upstream
git show upstream/main:scripts/sync-plan.mjs > .tmp/sync-plan.mjs
node .tmp/sync-plan.mjs
git merge --no-ff upstream/main
npm install
npm run typecheck
npm test
npm run test:e2e
npm run db:migrate:remoteস্কোয়াশ মার্জ, রিবেস বা চেরি-পিকের বদলে মার্জ কমিট ব্যবহার করুন। সিঙ্ক প্ল্যান git merge-base HEAD upstream/main-এর ওপর নির্ভর করে। মার্জ রেকর্ড করার সময় কমিট মেসেজের শেষে Template-sync: <template commit sha> রাখুন।
ডিপ্লয়ের সময় পশ্চাৎ-সামঞ্জস্য বজায় রাখুন
মাইগ্রেশন চালানোর পর কোনো ডিপ্লয় ব্যর্থ হলে নতুন Worker সংস্করণ রোলব্যাক করা যেতে পারে, কিন্তু D1 মাইগ্রেশন স্বয়ংক্রিয়ভাবে বিপরীত করা হয় না। মাইগ্রেশনগুলোকে আগের অ্যাপ্লিকেশন সংস্করণের সঙ্গে সামঞ্জস্যপূর্ণ রাখুন, যাতে রোলব্যাক সম্ভব থাকে।
প্রয়োজনে সংযুক্ত Claude Code ওয়ার্কফ্লো ব্যবহার করুন
রিপোজিটরিতে ট্রেন্ড-নির্দিষ্ট সাইট স্ক্যাফোল্ড করার জন্য new-hot-site স্কিল, টেমপ্লেট পরিবর্তন মার্জ করার জন্য sync-upstream স্কিল এবং লঞ্চের আগে ও লাইভ যাচাইয়ের জন্য শুধু-পঠনযোগ্য launch-audit স্কিল রয়েছে। এসব টুল ম্যানুয়াল পর্যালোচনার বিকল্প নয়: তৈরি করা কপি, লাইসেন্সযুক্ত মিডিয়া, ডোমেইন, প্রোভাইডার প্রোডাক্ট, OAuth সেটিংস, ইমেইল অনবোর্ডিং এবং লাইফসাইকেল নীতিগুলো এখনও যাচাই করতে হবে।
কোর লজিক পরিবর্তনের আগে প্রজেক্টের ডকুমেন্টেশন পর্যালোচনা করুন
ক্রেডিট, পেমেন্ট ফুলফিলমেন্ট, দ্বিভাষিক কনটেন্ট, মাইগ্রেশন বা এন্ড-টু-এন্ড টেস্ট পরিবর্তনের আগে AGENTS.md দেখুন। অতিরিক্ত বিবরণ docs/env.md, docs/payments.md, docs/subscriptions.md, docs/SEO_AUDIT.md এবং docs/SAAS_VIDEO_FEATURES.md-এ রয়েছে। README-তে উল্লেখ আছে যে এই নথিগুলো বর্তমানে চীনা ভাষায় লেখা।
উপসংহার
ShrimpReel কীওয়ার্ড-কেন্দ্রিক AI ভিডিও SaaS-এর জন্য একটি বিস্তৃত সূচনাভিত্তি প্রদান করে, যার মধ্যে জেনারেশন কিউ, বিলিং, ক্রেডিট, প্রশাসন, সংরক্ষণ, কমপ্লায়েন্স ওয়ার্কফ্লো, অ্যানালিটিক্স, SEO এবং Cloudflare অপারেশন অন্তর্ভুক্ত। নিরাপদ মক ওয়ার্কফ্লো দিয়ে শুরু করুন, সাইট-নির্দিষ্ট প্রতিটি স্তর কাস্টমাইজ করুন, প্লেসহোল্ডার কনটেন্টের বদলে লাইসেন্সযুক্ত অ্যাসেট ব্যবহার করুন, সব প্রোভাইডার ও Cloudflare সেটিংস যাচাই করুন এবং সম্পূর্ণ টেস্ট, ডাক্তার, SEO ও স্মোক-টেস্ট ধাপ সফল হওয়ার পরেই ডিপ্লয় করুন।
