Skip to content

ipfs-shipyard/ipfs-share-files

Repository files navigation

IPFS Share

Sender view Recipient view
Screenshot of IPFS Share sender view Screenshot of IPFS Share recipient view

IPFS Project Discourse Forum IPFS Community Code Style

Share files directly from your device's browser using IPFS — no cloud needed. Fast, free, easy file sharing for IPFS novices and veterans alike, available at https://share.ipfs.io.

Maintainers

Maintainers welcome! This repo is not currently under active development, but issues are monitored as part of overall IPFS project issue monitoring.

Table of Contents

About IPFS Share

IPFS Share is a simple, easy-to-use tool for sharing files directly from your device without having to rely on third-party intermediaries like big corporate cloud providers. It's simple enough for anyone to use, but it's also a great under-the-hood demonstration of a common IPFS use case.

Features

  • Share and receive files using IPFS without needing to install a local node
  • Upload or drag-and-drop individual files or entire directories
  • For multiple-file uploads, generate share/download links for individual files or a single all-in-one link (downloads as a .tar file)
  • Preview files in-browser (browser-supported formats only) before sharing or downloading
  • Generates a QR code for share links for easy distribution
  • Supports browser-specified language or manual choice of language via menu
  • 100% mobile-friendly
  • Supports installation as a mobile shortcut or desktop standalone app
  • Includes brief explainers on how IPFS Share works, with links to more details for the curious

How it works

IPFS Share runs a Helia node directly in your browser. Files are shared peer-to-peer over WebRTC and WebTransport connections.

The app is built with React and Vite. Visual styling uses Tachyons with additional IPFS flavor via ipfs-css.

For developers

It's easy to get a local copy of IPFS Share up and running, even if you don't have a local IPFS node installed.

Installation

With Node.js LTS installed, run:

> npm ci

Usage

To run IPFS Share in development mode:

> npm start
# You can now view ipfs-share-files in the browser.
# Local: http://localhost:3000

Linting

To validate the code using StandardJS, run:

> npm run lint

This is highly recommended to avoid automated CI failures when submitting a pull request to this repo.

Building

To build IPFS Share for production to the build folder:

> npm run build

Deployment

Changes merged to main are automatically deployed to share.ipfs.io.

Translations

Contributing translations in your language is particularly valuable! We use Transifex to manage internationalization, which means you don't need to change a single line of code to add your translations:

Note for developers: English is the source of truth. Add new text to public/locales/en/translation.json and it will automatically propagate to Transifex for other languages. Translations are synced back via CI workflow.

Manual sync (if CI is unavailable)

  1. Install the Transifex CLI
  2. Download translations with tx pull -a
  3. Regenerate languages list: npx -q @olizilla/lol@2 public/locales > src/lib/languages.json

Contribute

Contributions are more than welcome! Check out the currently open issues and start hacking on anything that sounds interesting. Issues are labeled with a variety of tags to help you find a good fit — you may wish to start with the help-wanted tag.

To contribute to IPFS in general, check out the wide variety of opportunities here.

The IPFS community believes that our mission is best served in an environment that is friendly, safe, and accepting, and free from intimidation or harassment. To that end, we ask that everyone involved in IPFS read and respect our code of conduct.

License

MIT

About

Share files directly from the browser using IPFS.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 14