ফুল-স্ট্যাক ওয়েব অ্যাপ ডেপ্লয় করার কথা ভাবলেই আগে মাথায় আসতো VPS কেনা বা জটিল Container Management-এর কথা। কিন্তু Cloudflare Workers পুরো গেমটাই বদলে দিয়েছে। এখন তুমি SvelteKit Cloudflare Workers ব্যবহার করে Server-side Rendering, API Routes আর Edge Caching—সবকিছুই পাবে একদম ফ্রিতে। এই সাইটটা আমি যেভাবে সেটআপ করেছি, সেই এক্সাক্ট কনফিগারেশন নিয়েই আজ কথা বলব।

ফ্রিতে তুমি কী কী পাচ্ছো?

Cloudflare-এর ফ্রি Tier ব্যক্তিগত প্রজেক্টের জন্য যথেষ্ট পাওয়ারফুল:

  • দৈনিক ১,০০,০০০ Request — ছোট সাইটের জন্য এটা বিশাল।
  • প্রতি Request-এ 10ms CPU Time — SvelteKit এর মধ্যে অনায়াসেই Run করে।
  • 1GB KV Storage — Simple Config বা Session Data-র জন্য ভালো।
  • Custom Domain — কোনো বাড়তি খরচ ছাড়াই নিজের Domain Connect করা যায়।

Vercel বা Netlify-এর তুলনায় Workers-এর V8 Isolate Model অনেক বেশি ফাস্ট Cold Start দেয় এবং Pricing-ও বেশ Predictable।

প্রিকুইজিট

  • Node.js 18 বা তার বেশি Install করা থাকতে হবে।
  • Cloudflare Account।
  • একটি SvelteKit প্রজেক্ট।
pnpx sv create my-app
cd my-app
pnpm installpnpx sv create my-app
cd my-app
pnpm install

স্টেপ ১: Adapter Install করা

Cloudflare Workers সরাসরি Node.js Run করে না, এটি V8 Isolate ব্যবহার করে। তাই SvelteKit-এর জন্য একটি Bridge দরকার:

pnpm add -D @sveltejs/adapter-cloudflarepnpm add -D @sveltejs/adapter-cloudflare

অনেকে ভুল করে পুরনো adapter-cloudflare-workers Install করে ফেলে, যা এখন আর Recommended নয়। নতুন adapter-cloudflare ই এখন Standard।

স্টেপ ২: svelte.config.js কনফিগারেশন

ফাইলে Default Adapter Replace করে নিচের মতো করে দাও:

import adapter from '@sveltejs/adapter-cloudflare';
// ... (rest of the config)import adapter from '@sveltejs/adapter-cloudflare';
// ... (rest of the config)

এখানে routes.exclude অপশনটি বেশ জরুরি। এটি Cloudflare-কে বলে দেয় কোন Requestগুলো সরাসরি Static Asset থেকে Serve করবে, যা তোমার Invocation Cost বাঁচায়।

স্টেপ ৩: wrangler.jsonc তৈরি করা

প্রজেক্টের Root-এ wrangler.jsonc ফাইল তৈরি করো। আমি শুরুতে এর Syntax নিয়ে একটু ঝামেলায় পড়েছিলাম, কিন্তু এটি বেশ Straightforward:

{
	"name": "my-sveltekit-app",
	"main": ".svelte-kit/cloudflare/_worker.js",
	"compatibility_flags": ["nodejs_als", "nodejs_compat"],
	"compatibility_date": "2024-09-23",
	"assets": {
		"binding": "ASSETS",
		"directory": ".svelte-kit/cloudflare"
	}
}{
	"name": "my-sveltekit-app",
	"main": ".svelte-kit/cloudflare/_worker.js",
	"compatibility_flags": ["nodejs_als", "nodejs_compat"],
	"compatibility_date": "2024-09-23",
	"assets": {
		"binding": "ASSETS",
		"directory": ".svelte-kit/cloudflare"
	}
}

স্টেপ ৪: Build আর Deploy

Build করার পর Cloudflare-এ Push করে দাও:

pnpm build
wrangler deploypnpm build
wrangler deploy

প্রথমবার Deploy করার পর Cloudflare তোমাকে একটি *.workers.dev Subdomain দেবে।

কেন SvelteKit Cloudflare Workers ব্যবহার করবে?

আমার অভিজ্ঞতায়, Cloudflare Workers-এর সবচেয়ে বড় Limitation হলো এর 1MB-এর Gzipped File Size Limit। যদি তোমার অ্যাপ অনেক বেশি Heavy Dependency ব্যবহার করে, তবে Build Time-এ Error খেতে পারো। এছাড়া Node.js-এর সব Library এখানে কাজ করে না, বিশেষ করে যেগুলো fs বা Native Binding-এর ওপর নির্ভরশীল।

তবে এই Limitations বাদ দিলে, Performance-এর দিক থেকে এটি অতুলনীয়। Cold Start-এর ঝামেলা নেই বললেই চলে। আমার মনে হয় যারা জিরো কস্টে High-performance অ্যাপ বানাতে চান, তাদের জন্য SvelteKit Cloudflare Workers সেরা Choice।

Cloudflare Workers ব্যবহার করে SvelteKit অ্যাপ একদম ফ্রিতে Deploy করার নিয়ম, কনফিগারেশন এবং Limitation নিয়ে বিস্তারিত জানো!