LEAVE THE CLOUD. JOIN THE SWARM.

Decentralized frontend
deployment

Deploy your website to the Swarm decentralized network in minutes.
No servers, no subscriptions, no downtime. ·

Swarm is a decentralized open source, peer-to-peer network. Uploaded files are split into small chunks and stored redundantly across nodes in the network — no single server, no single point of failure. You pay for storage by buying a postage stamp, which funds the nodes that keep your data available. → Learn more at ethswarm.org
~3 min to deploy
No account needed
Pay for storage, not traffic
pick your path
Browser  →  Desktop App  →  CLI
Easy
Browser
I just want to upload my website.
Intermediate
Desktop App
I prefer a GUI over the command line.
Advanced
CLI
Give me the CLI. I run scripts for fun.

Deploy via Beeport

No install needed
Total time: ~5 minutes
01
Connect your wallet
Open Beeport — no install required.
  • Go to beeport.ethswarm.org and click Connect Wallet
  • Supports MetaMask, Brave, Phantom, Rainbow, Coinbase Wallet, and WalletConnect
→ Open Beeport
02
Buy storage
Open the Buy tab and configure your storage.
  • Choose your chain — Gnosis, Ethereum, or any EVM-compatible chain
  • Choose your payment token — ETH, BZZ, USDC, or any ERC-20 token
  • Select a storage size and duration
  • Click Buy Storage and confirm the transaction in your wallet
⚠ Storage expires when your stamp runs out — if it hits zero, your site will be taken offline. To extend: go to the Upload tab, find your stamp under Your Stamps, and click + Top Up.
03
Upload your site folder
Switch to the Upload tab.
  • Check Multiple files in a folder (one hash)
  • Click Select Folder and pick your build output folder
  • Make sure the folder contains an index.html at its root — that's the entry point Swarm serves
  • Click Upload
04
Access your site (optional, via hash)
After upload, Beeport shows an Upload Successful! modal with an Open link button. Here's what to expect depending on how you open it:
  • Swarm Gateway — the default link opens on the official Swarm Gateway, which blocks unreviewed sites to prevent phishing. You'll see a Forbidden message — this is normal. Sites can be submitted for approval to get unblocked.
  • Alternative gateway — use https://bzz.limo/bzz/<hash>/ to view your site immediately without approval
  • ENS domain — link your site to an ENS name (next step) and it will be accessible via yourname.eth.limo and yourname.bzz.link
05
Link to your ENS domain
In the History tab, find your upload and click the ENS button.
  • Select your .eth domain, click Set Content Hash, confirm in your wallet
  • Your site will be live at yourname.eth.limo and yourname.bzz.link within minutes
  • No ENS domain yet? Click Register Domain in the same dialog to get one directly in Beeport

Deploy via Swarm Desktop

Best for repeat deploys
Total time: ~10 min first-time setup, ~2 min per deploy
01
Download & install Swarm Desktop
Swarm Desktop runs a local Bee node with a full GUI — no terminal needed.
  • Download the installer for your OS and run it
  • Open the app after installation completes
  • Wait for Node OK in the bottom-left corner before continuing — this means your node is synced and ready
→ Download Swarm Desktop
02
Fund your node
Go to Account → Wallet to find your node wallet address. You need funds to buy storage. Two options:
  • Gift code — click Redeem gift code in the bottom-left, paste your code, click Proceed
  • Multichain top-up — copy your wallet address and top up from any chain and token, no bridging required
→ Fund your node
03
Buy a storage
Go to Account → Stamps and click Buy New Postage Stamp Batch.
  • Enter a batch name (e.g. my-website)
  • Select a storage size: 4 GB, 32 GB, or 256 GB
  • Drag the Data persistence slider to set how long you need storage (1–365 days)
  • Review the estimated cost shown by the app, then click Buy New Stamp
⚠ Storage expires when your stamp runs out — if it hits zero, your site will be taken offline. To extend: go to Account → Stamps, expand your stamp, and click Topup.
04
Create a feed
A feed gives your site a permanent URL that always points to the latest version — even after you redeploy. Go to Account → Feeds → Create New Feed.
  • Enter an identity name (e.g. website)
  • Set a password and confirm — the app generates a Topic automatically
  • Copy the Feed Manifest URL — this is your permanent link for ENS and sharing
05
Upload your site
Go to Files → Add Website and select your build output folder.
  • Make sure the folder contains an index.html at its root — that's the entry point Swarm serves
  • Wait for the upload to complete
  • Click Update Feed, select your feed and stamp, then click Update Selected Feed
06
Link your ENS domain
Go to Account → Feeds, click your feed, and use View Feed Page to copy your permanent Feed Manifest URL. Then set it as your ENS content hash.
  • Go to app.ens.domains and open your .eth domain
  • Go to the Records tab and click Edit Records
  • In the Content Hash field, paste your Feed Manifest URL
bzz://<your-feed-manifest-hash>
  • Save and confirm the transaction in your wallet
  • Your site will be live at yourname.eth.limo and yourname.bzz.link within minutes
→ Open ENS App
07
Update your site
Re-upload whenever your site changes — the Feed Manifest URL stays the same so your ENS record never needs updating.
  • Go to Files → Add Website and select your new build folder
  • After upload completes, click Update Feed again

Deploy via Bee light node + swarm-cli

CI/CD friendly
Total time: ~10 min first-time setup, ~2 min per deploy
01
Install swarm-cli & set up a Bee light node
Install the CLI tool globally via npm:
$ npm install --global @ethersphere/swarm-cli
Then run quickstart — it downloads the Bee node and creates the config file for you:
$ swarm-cli quickstart
→ Full Quick Start Guide
02
Fund your node
quickstart prints the command to start the Bee node. Once the node is running, it will print that it requires funds and display its wallet address. Copy that address — then fund it using one of these options:
  • Multichain funding — send funds from any chain and token, no bridging required
→ Fund your node
  • Transfer from wallet — if you already have xDAI and xBZZ in MetaMask or another wallet, simply send them to the node address
  • Gift code — redeem directly via swarm-cli:
$ swarm-cli utility redeem <gift code>
03
Buy storage
Pick your postage stamp capacity and time-to-live — the command updates automatically. stamp create accepts human units like 1GB for capacity and 1d / 1w / 1month for TTL. Default is immutable (recommended for websites).
Capacity
TTL
Type
$ swarm-cli stamp create --capacity 680MB --ttl 3months
Fetching live price…
The CLI shows an estimate and asks you to confirm.
⚠ Storage expires when your stamp runs out — if it hits zero, your site will be taken offline.
To increase TTL of an existing stamp:
$ swarm-cli stamp topup
To increase capacity of an existing stamp:
$ swarm-cli stamp dilute
On repeat deploys, check existing stamps first:
$ swarm-cli stamp list
04
Create an identity
An identity is an Ethereum keypair used to sign feed updates — do this once. The default name is main if you don't specify one.
$ swarm-cli identity create --only-keypair
  • To list existing identities:
$ swarm-cli identity list
05
Upload your site to a feed
Upload your build folder — the CLI will interactively prompt for a stamp and identity.
$ swarm-cli feed upload ./dist
  • URL — the content hash, changes with every upload
  • Feed Manifest URL — permanent, always points to the latest version — copy this for the next step
06
Link your ENS domain
Set your Feed Manifest URL as the content hash on your .eth domain.
  • Go to app.ens.domains and open your .eth domain
  • Go to the Records tab and click Edit Records
  • In the Content Hash field, paste your Feed Manifest URL
bzz://<your-feed-manifest-hash>
  • Save and confirm the transaction in your wallet
  • Your site will be live at yourname.eth.limo and yourname.bzz.link within minutes
→ Open ENS App
07
Update & verify
To redeploy, run the same command — pick the same identity from the prompt and the Feed Manifest URL stays the same automatically.
  • To confirm the feed points to the latest version:
$ swarm-cli feed print --identity main