| Sender view | Recipient view |
|---|---|
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 welcome! This repo is not currently under active development, but issues are monitored as part of overall IPFS project issue monitoring.
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.
- 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
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.
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.
With Node.js LTS installed, run:
> npm ciTo run IPFS Share in development mode:
> npm start
# You can now view ipfs-share-files in the browser.
# Local: http://localhost:3000To validate the code using StandardJS, run:
> npm run lintThis is highly recommended to avoid automated CI failures when submitting a pull request to this repo.
To build IPFS Share for production to the build folder:
> npm run buildChanges merged to main are automatically deployed to share.ipfs.io.
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.
- Install the Transifex CLI
- Download translations with
tx pull -a - Regenerate languages list:
npx -q @olizilla/lol@2 public/locales > src/lib/languages.json
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.