# Get Started

IPFS is a collection of protocols, packages, and specifications that allow computers to send and receive data. Because of this, users can interact with and use IPFS in many different ways. A developer building network applications will use a different set of tools to interact with IPFS than someone who wants to store files on IPFS. Pick the one that best suits what you're here to do.

Looking for an easy and opinionated way to get started with IPFS Mainnet? Try any of the options listed below:

# Desktop Users

# IPFS Desktop

Anyone can use IPFS to store files in a decentralized way. The easiest way to get up and running is by installing the IPFS Desktop application. This app has a Kubo node built-in and lets you interact with the network through a simple user interface. Check it out →

# IPFS Companion

If your browser doesn't support IPFS yet, you can install an IPFS companion extension that will let you view decentralized web content! Learn more →

# Publish files with a pinning service

Do you want to quickly and easily publish content with IPFS without complex tools? See the Publish with IPFS quickstart, where you'll learn how to use third-party pinning services to pin and provide files to the IPFS network.

# Infrastructure Tools

# Kubo

Want to build decentralized applications and store your application data on IPFS? You'll likely want to install the command-line version of IPFS named Kubo. There's no GUI to deal with, just raw input and output through your terminal. Find out more →

# IPFS Cluster

Planning to set up several Kubo nodes within one network? You'll want to take a look at installing IPFS Cluster, which provides data orchestration across a swarm of IPFS daemons by allocating, replicating and tracking a global pinset distributed among multiple peers.

# Rainbow

If you only want to run production-grade HTTP Gateway service using the same software that is powering public gateways, you may want to choose Rainbow → (opens new window).

# Someguy

If you need to run your own delegated routing endpoint that hits both Amino DHT and IPNI, consider running Someguy → (opens new window).

# Software Development

# Helia SDK for JS

Helia (opens new window) is a new implementation of IPFS in JavaScript that is designed to be more modular and lightweight than the deprecated js-ipfs project (opens new window).

To get started with a hands-on example, see Helia 101 (opens new window) in ipfs-examples/helia-examples (opens new window).

If you are looking for simple fetch (opens new window)-like API for use on the web, see @helia/verified-fetch (opens new window).

# Boxo SDK for GO

Boxo (opens new window) is a set of reference libraries for building IPFS applications and implementations in Go.

To get started, see boxo/examples (opens new window) or inspect how Boxo is used in Kubo (opens new window), Rainbow (opens new window), Someguy (opens new window), IPFS Cluster (opens new window), or non-Mainnet implementations like Lotus (opens new window).