A completely decentralized way of sharing temporary messages.

Overview

Debin logo

Debin

A completely decentralized way of sharing temporary and permanent messages. Debin uses Waku and IPFS decentralized networks to temporarily or permanently store messages, respectively.

  • πŸ”— Easily share any text message with someone else (e.g. temporary secrets or one-time-passwords). Just send the link.
  • πŸ”’ All messages are encrypted on the browser and only transferred and stored encrypted.
  • 🌎 Messages are relayed using decentralized, trustless and censorship-resistant networks.
  • πŸ•‘ Messages on Waku are kept for ~30 days. Messages on IPFS are kept permanently. We hope to implement a way to delete messages when Web3.storage adds support for this in the future.

⚠️ This is a beta project. Please be mindful of the information you share.

🌐 Hosted version

Debin can be found at https://debin.io, which is hosted on IPFS through Fleek.

πŸ”¨ Developing locally

It's easy to run this project locally to modify it or contribute.

  • Git clone this repository.
    git clone https://github.com/paolodamico/debin
    
  • Install Node (v16 recommended) via your favorite method and install dependencies (as shown below).
    yarn install
    
  • Start the server & automatic kea typegen generation (we use Kea for easier logic and state management).
    yarn start
    
  • Messages to IPFS are uploaded using a Cloudflare worker that connects to Web3.storage. To test IPFS upload too, you'll need to create your own ipfs-message-upload/wranger.toml file from wrangler.template.toml, be sure to set your own WEB3_STORAGE_TOKEN (which you can obtain from Web3.storage; this service is used to upload and pin files on IPFS). Do this in a separate console.
    cd ipfs-message-upload/
    cp wranger.template.toml wrangler.toml
    # edit wranger.toml now with your `WEB3_STORAGE_TOKEN`
    code wrangler.toml # or vi wrangler.toml ; or nano wrangler.toml
    wrangler dev
    l # to run the Cloudflare worker locally
    
  • Finally, update logics/ipfsLogic.ts and set IPFS_UPLOAD_RELAY to the localhost address where the worker is listening (e.g. http://localhost:8787).
  • You can find more information on the technologies used and conventions in the Technical docs.

πŸš€ Deploying your own version

Deploying your own version is very easy. Using a serverless environment (e.g. Fleek, Netlify, Vercel) might be easiest.

IPFS relay service

  1. First of all, you'll need to sign up for a free Web3.storage account if you still haven't.
  2. Follow the instructions on developing locally to generate your own wranger.toml file. You can choose to use your own domain instead of Cloudflare's default (like we did, https://ipfs.debin.io) to host the IPFS relay service.
  3. Once you have your wrangler.toml file, you can deploy your worker using wrangler publish (remember to be in the /ipfs-message-upload folder). You can run this command any time you update your IPFS service or its configuration.

Frontend

  1. Update logics/ipfsLogic.ts and set IPFS_UPLOAD_RELAY to the location of your deployed IPFS relay service.
  2. Run the yarn build command to generate the production-ready files.
  3. Make only the files on the /build directory available in your installation, with index.html as the default.
You might also like...

A list of helpful front-end related questions you can use to interview potential candidates, test yourself or completely ignore.

A list of helpful front-end related questions you can use to interview potential candidates, test yourself or completely ignore.

Front-end Developer Interview Questions This repository contains a number of front-end interview questions that can be used when vetting potential can

Jan 4, 2023

A one-of-a-kind resume builder that keeps your privacy in mind. Completely secure, customizable, portable, open-source and free forever. Try it out today!

A one-of-a-kind resume builder that keeps your privacy in mind. Completely secure, customizable, portable, open-source and free forever. Try it out today!

A free and open source resume builder. Go to App What is this app all about? Reactive Resume is a free and open source resume builder that’s built to

Jan 3, 2023

A collection of Discord hacks & exploits that is completely made using NodeJS.

ZeroDiscord A collection of Discord hacks & exploits that is completely made using NodeJS Before using any of these tools First off, all of the tools

Jan 5, 2023

Completely free TS/JS one-file source code snippets with tests, which can be copied to avoid extra dependencies (contributions welcome).

TinySource Completely free TS/JS one-file source code snippets with tests, which can be copied to avoid extra dependencies (contributions welcome). Sn

Jan 3, 2023

A collection of Revolt hacks, exploits & tools that is completely made using NodeJS.

ZeroRevolt A collection of Revolt hacks, exploits & tools that is completely made using NodeJS Tools Name Description userInformation Grab's the speci

Aug 4, 2022

Incredible resources (with links) to help up-skill yourselves on various fields. Resources like programming, designing, engineering and much more and completely Open Source.

Incredible resources (with links) to help up-skill yourselves on various fields. Resources like programming, designing, engineering and much more and completely Open Source.

Shiryoku Incredible resources (with links) to help up-skill yourselves on various fields. Resources like programming, designing, engineering and much

Dec 15, 2022

Run a completely functional backend in just a few minutes.

Genezio Genezio is a platform for developers that want to write a backend in a very simple way. Just write a simple class using your preferred program

Dec 12, 2022

Catalogist is the easy way to catalog and make your software and (micro)services visible to your organization in a lightweight and developer-friendly way.

Catalogist is the easy way to catalog and make your software and (micro)services visible to your organization in a lightweight and developer-friendly way.

catalogist πŸ“š πŸ““ πŸ“’ πŸ“– πŸ”– The easy way to catalog and make your software and (micro)services visible to your organization through an API You were a pe

Dec 13, 2022

🎨 Beautify your github profile with this amazing tool, creating the readme your way in a simple and fast way πŸš€ The best profile readme generator you will find ⚑

🎨 Beautify your github profile with this amazing tool, creating the readme your way in a simple and fast way πŸš€ The best profile readme generator you will find ⚑

Demo Profile Readme Generator The best profile readme generator you will find! About | Technologies | Requirements | Starting | Contributing 🎯 About

Jan 1, 2023
Comments
  • Add social tags & special message on share links

    Add social tags & special message on share links

    It stands to reason that Debin messages will be shared in social platforms, particularly things like Slack or Discord. We should add a nice og:image to display there. Further, when sharing a specific message (i.e. https://debin.io/#/m[...]), we should change the description to something along the lines of "Someone is sharing a message with you through a web3 decentralized network".

    enhancement good first issue design 
    opened by paolodamico 0
  • Consider moving to simple hash router

    Consider moving to simple hash router

    Currently we're using kea router (https://keajs.org/docs/plugins/router) which works great most of the time, but with IPFS we can't properly handle top level routing (see https://docs.fleek.co/hosting/troubleshooting/#my-single-page-application-spa-breaks-when-changing-routes-via-an-ipfs-gatway), this meant we had to introduce some ugly hack to support hash routing for the message retrieval. Instead, might be cleaner to move to a simple hash router instead and stop supporting normal routing.

    enhancement tech debt 
    opened by paolodamico 0
Owner
Paolo D'Amico
Paolo D'Amico
A file sharing service, where you can upload files and provide a download link for anyone on the internet by sharing the link πŸ”— or via mail βœ‰οΈ which remains active for 24hours πŸ•™.

eShare | File Sharing App A file sharing service, where you can upload files and provide a download link for anyone on the internet by sharing the lin

Akhil Bhalerao 7 Nov 20, 2022
Decentralized video-sharing social media platform, built using Lens protocol. 🌿

Lenstube Decentralized video-sharing social media platform. lenstube.xyz About Lenstube is a decentralized video-sharing social media platform, built

Lenstube 2.4k Jan 1, 2023
Send encrypted messages and decrypt them without sharing keys. Built using the Handshake blockchain.

zmsg Encrypt and decrypt messages using AEAD with an ephemeral key Learn more by joining the Handshake Discord Community I noticed that there wasn't a

Publius Federalist 31 Jul 27, 2022
Easily create test fixtures at a temporary file-system path

fs-fixture Easily create test fixtures at a temporary file-system path. Support this project by ⭐️ starring and sharing it. Follow me to see what othe

hiroki osame 13 Dec 15, 2022
Web client with support for secret chats. Made as a temporary solution

Arcanugram – Unofficial Telegram Web App with support for secret chats ⚠️ Made as a temporary solution for use on devices that do not have any clients

null 12 Sep 19, 2022
πŸ–ŠοΈOpen a VSCode temporary file instantly

vscode-tempfile This extension immediately creates a temporary file and opens it in a new tab. Configuration You can specify the new file path and ini

Tetsu 1 Oct 5, 2022
a temporary solution to revert to the old ui. the new ui was put into effect since april

Revert-YouTube-UI a temporary solution to revert to the old ui. the new ui was put into effect since april and is slowly rolling out to users. Feature

a person 8 May 10, 2023
A chat logs online saver for discord bots to save messages history & cleared messages online

Chat Logs NPM package that saves messages online to view it later Useful for bots where users can save messages history & cleared messages online Supp

TARIQ 8 Dec 28, 2022
Digital Identifier is a secure, decentralized, anonymous and tampered proof way of maintaining and verifying all essential identity-based documents to create a unique digital identity of a person.

Digital Identifier ?? To design and develop a secure, decentralized, anonymous and tampered proof way of maintaining and verifying all essential ident

Mukul Kolpe 4 Dec 17, 2022
Colorconsole provides an interesting way to display colored info, success, warning and error messages on the developer console in your browser

ColorConsole NPM Package Colorconsole provides an interesting way to display colored info, success, warning and error messages on the developer consol

Hasin Hayder 17 Sep 19, 2022