decentralized frontend deployment

Make your frontend
unstoppable.

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 account or 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
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 a Bee light node
swarm-cli needs a running Bee node. Install it using the script (pick curl or wget):
$ curl -s https://raw.githubusercontent.com/ethersphere/bee/master/install.sh | TAG=v2.7.0 bash
$ wget -q -O - https://raw.githubusercontent.com/ethersphere/bee/master/install.sh | TAG=v2.7.0 bash
Then start your node and verify it's running:
$ bee start --password YOUR_SECURE_PASSWORD --swap-enable --api-addr 127.0.0.1:1633 --blockchain-rpc-endpoint https://xdai.fairdatasociety.org
$ bee version
→ Full Quick Start Guide
02
Fund your node
Your node runs at localhost:1633 — fund its wallet to buy storage. Two options:
  • Multichain top-up — top up from any chain and token, no bridging required
→ Fund your node
  • Gift code — redeem directly via swarm-cli:
$ swarm-cli utility redeem <gift code>
03
Install swarm-cli
Install the CLI tool globally via npm:
$ npm install --global @ethersphere/swarm-cli
04
Buy storage
You need a mutable stamp. Pick your postage stamp size and duration — the command updates automatically.
Storage size
Duration
$ swarm-cli stamp buy --amount 40053139230 --depth 20 --immutable false
The CLI shows an estimate and asks you to confirm. Save the Stamp ID returned.
⚠ Storage expires when your stamp runs out — if it hits zero, your site will be taken offline.
Extend postage stamp before it runs out:
$ swarm-cli stamp topup --stamp <STAMP_ID> --amount <AMOUNT>
On repeat deploys, check existing stamps first:
$ swarm-cli stamp list
05
Create an identity
An identity is an Ethereum keypair used to sign feed updates — do this once.
$ swarm-cli identity create
  • You'll be prompted for a name (e.g. main) and a password
  • To list existing identities:
$ swarm-cli identity list
06
Upload your site to a feed
Upload your build folder. The --topic-string labels your feed — use the same value every time to update the same feed.
$ swarm-cli feed upload ./dist \
  --stamp <STAMP_ID> \
  --identity <NAME> \
  --password <PASSWORD> \
  --topic-string "<your-site-name>"
  • URL — the content hash, changes with every upload
  • Feed Manifest URL — permanent, always points to the latest version — copy this for the next step
07
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
08
Update & verify
To redeploy, run the same feed upload command — the Feed Manifest URL stays the same automatically.
  • Always use the same --identity, --password, and --topic-string — different values create a new feed
  • To confirm the feed points to the latest version:
$ swarm-cli feed print \
  --identity <NAME> \
  --topic-string "<your-site-name>"