Developer Resources
Learn
Get Started
- What is Swarm — Introduction to the decentralised storage network
- Developer introduction — Overview of building on Swarm
- Bee node quickstart — Get a node running in minutes
- Full installation guide — Step-by-step setup for all platforms
- Swarm papers ↗ — Technical whitepapers and research
- The Book of Swarm ↗ — Full technical book on Swarm's architecture and design
- Swarm Protocol Specification ↗ — Formal spec for developers building clients or integrations
Key Concepts
- DISC — How data is stored and retrieved across the network
- Incentives & BZZ — Economic model and token mechanics
- Postage stamps — Pay for storage with stamp batches
- Feeds — Mutable content pointers for updatable data
- Manifests — Directory and routing structure on Swarm
- Chunk types — Content-addressed and single-owner chunks
- Node types — Full, light, and ultra-light participation levels
Developer Guides
- Upload and download files — Basic file operations via the API
- Host a website on Swarm — Deploy static sites to decentralised storage
- Work with files and directories — Manifest operations for virtual paths
- Routing manifests for SPAs — Single-page app routing on Swarm
- Dynamic content with feeds — Build updatable content with feed primitives
- Multi-author blog — Combine per-author feeds with a shared index
- Access control (ACT) — Restrict who can read your uploaded content
- PSS messaging — Send encrypted messages over the network
- GSOC messaging — Graffiti single-owner chunk messaging
- Encrypt uploads — Client-side encryption before uploading
- Erasure coding — Redundant storage for fault tolerance
- Pinning content — Keep content locally pinned to your node
- Run a local gateway proxy — Serve Swarm content over HTTP
- Start a private test network — Local multi-node dev environment
- Dev mode — Instant stamps, no funding needed
Examples
Publishing & Websites
- Cafe137/etherjot ↗ — Static blog generator, live at etherjot.eth.limo
- ethersphere/examples ↗ — Collection of example apps and starters
- examples/simple-blog ↗ — Minimal feed-backed blog, one publisher, updatable content
- examples/multi-author-blog ↗ — Multi-author blog using per-author feeds and a shared index
- examples/website ↗ — Swarm + ENS starter, upload a site and resolve it via ENS
- examples/routing-manifest ↗ — Manifest-based routing demo for single-page apps
- examples/basic-static-website ↗ — Basic static website on Swarm
Streaming
- Solar-Punk-Ltd/swarm-stream-js ↗ — Core streaming library for Swarm
- Solar-Punk-Ltd/swarm-hls-stream ↗ — HLS streaming over Swarm
- Solar-Punk-Ltd/swarm-stream-aggregator-js ↗ — Stream aggregation layer
- Solar-Punk-Ltd/swarm-stream-react-example ↗ — React media player consuming Swarm streams
- Solar-Punk-Ltd/swarm-ingestion-stream-react-example ↗ — React app for live stream ingest to Swarm
Messaging & Chat
- Solar-Punk-Ltd/swarm-chat-js ↗ — Core chat library for Swarm
- Solar-Punk-Ltd/swarm-chat-aggregator-js ↗ — Chat message aggregation layer
- Solar-Punk-Ltd/swarm-chat-react-example ↗ — React chat application on Swarm
- Solar-Punk-Ltd/swarm-comment-js ↗ — Core comments library
- Solar-Punk-Ltd/swarm-comment-react-example ↗ — React comments component
- Solar-Punk-Ltd/comment-system ↗ — Deployable comment system on Swarm
- Solar-Punk-Ltd/comment-system-ui ↗ — UI for the Swarm comment system
- Solar-Punk-Ltd/swarm-collaborative-docs ↗ — Real-time collaborative document editing on Swarm
- Cafe137/gsoc-group-chat ↗ — Group chat using GSOC (Graffiti Single Owner Chunks)
Tools
SDKs & APIs
- bee-js ↗ — Official JavaScript / TypeScript SDK
- bee-js getting started ↗ — Quickstart for bee-js integration
- Bee HTTP API reference ↗ — Full REST API documentation
- swarm-cli — Command-line interface for uploads, feeds, and more
- swarm-mcp ↗ — MCP server for AI agents to read and write Swarm
- Swarm Actions ↗ — Deploy to Swarm from GitHub CI/CD workflows
- Swarm Skills ↗ — Claude Code integration for Swarm
Libraries & Primitives
- Solar-Punk-Ltd/file-manager-lib ↗ — High-level file management primitives for Swarm
- Cafe137/feed-helper ↗ — Utility library for working with Swarm feeds
- fairDataSociety/fdp-storage ↗ — Serverless web3 filesystem, Fair Data Protocol reference implementation
Developer Tools
- ethersphere/create-swarm-app ↗ — Boilerplate for building Swarm apps with JavaScript
- Cafe137/fdp-play ↗ — Docker-based local Bee cluster and FDP dev environment
- Cafe137/pss-gsoc-learning-material ↗ — Learning material for PSS and GSOC primitives
- examples/dynamic-content ↗ — Content addressing and feeds, introduction example
- examples/filesystem ↗ — Filesystem-style operations using bee-js
- agazso/swarm-cid-converter ↗ — Convert Swarm hashes or links to CID and vice versa
- Solar-Punk-Ltd/ipfs-to-swarm ↗ — Migrate data from IPFS to Swarm
Gateways & Deploy
- Beeport ↗ — Upload without running a node
- Public content gateway — Access any content by hash (
https://<hash>.bzz.link) - ENS gateway — Resolve ENS names to Swarm content (
https://<name>.eth.limo) - ENS name management ↗ — Register and manage ENS names
- ethersphere/gateway-proxy ↗ — Production gateway proxy server
- ethersphere/swarm-gateway ↗ — Official Swarm HTTP content gateway
- Swarmy ↗ — Swarm as a service, upload and retrieve without running a node
Network Tools
- SwarmScan ↗ — Network explorer and node statistics
- Swarm Gateway ↗ — Share files via URL
- Swarm Desktop ↗ — GUI node for non-technical users
- Bee Dashboard ↗ — Web UI for node management
Community
Community & Support
- Discord ↗ — Community chat and support
- GitHub — Ethersphere org ↗ — All official repositories
- Awesome Swarm ↗ — Curated ecosystem list
- Blog ↗ — News, updates, and deep dives
- Website ↗ — Main Swarm website
- FAQ — Frequently asked questions
- SWIPs ↗ — Swarm Improvement Proposals, follow or contribute to protocol direction