SvelteKit Cloudflare Workers-এ ফ্রি-তে ডেপ্লয় করার গাইড

ফুল-স্ট্যাক ওয়েব অ্যাপ ডেপ্লয় করার কথা ভাবলেই আগে মাথায় আসতো 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 নিয়ে বিস্তারিত জানো!

About the Author

Asaduzzaman Pavel

Software Engineer who actually enjoys the friction of well-architected systems. 15+ years building high-performance backends and infrastructure that handles real-world chaos at scale.

Open to new opportunities

Comments

  • Sign in with GitHub to comment
  • Keep it respectful and on-topic
  • No spam or self-promotion