Decentralized clone of Twitter.

Overview

Decentralized feed app built with GunJS and Svelte

Decentralized technologies are the future, but we can already start implementing them today. This application is a proof of concept that a fully decentralized clone of "your favorite feed app" can be build already. It does not use a blockchain, there are no fees for posting things.

Graph database

The database that's in the core of this app is decentralized. The data is saved in a graph database in every browser that uses this app and syncs between them. Some browsers may have only partial representations of the graph (the part that they need for using the app). For the sake of constant availability there are relay servers set up. They don't have any extra control over the data - they simply keep it so you can access the app even when nobody else is running it or if that particular portion of the graph is unavailable. The relay server keeps the data backed up and ready to go.

Authentication

You can log in securely - the application will generate a public/private key pair for you, encrypt it with your passphrase, and save it in the graph database accross the network. You will be the only one able to decrypt your key pair using your passphrase. As the db is decentralized, there is no way to request a passphrase change - so please do not forget it.

Posting

Even though there are no centralized entities, basic verifications mechanisms are still in place. When writing a post, reply, or simply leaving a like - those objects are signed with your private key. Nobody else will be able to tamper with your post - because the signature will be verifiably wrong if they try.

P2P E2E chat

Alice wants to talk to Bob. Alice wants the messages to be encrypted. On top of that, Alice doesn't want the network to know that she is talking to Bob. Ignoring the networking steps (anyone running a relay can know who is sending the message), we want to figure out how to hide this information in an ideal instant db-synced world. Alice can generate a Secret using her private key and Bob's public key. Bob can also generate the same Secret using his private key and Alice's public key. They can then encrypt messages using this key and be the only ones who can read them.

However, this does not solve the problem of metadata encryption. We can't store the messages list under /chat/alice-bob, because then everyone on the network will know that Alice and Bob are talking, how much they are talking, and how big the messages are. Instead, we can use the hash of the Secret as the key to the chat. If we have the messages under /chat/[Hash], the whole world can still know that messages are going back and forth, but can't know from who or to whom.

This system will work if Alice and Bob know in advance that they want to chat. However, it can't let Alice know if Bob sends her a message that she does not expect, (as she will not have a listener on the hash of the secret).

Experimental

This application is experimental - use it at your own risk. Both GunJS (the decentralized database) and Svelte (the frontend framework) were new to me before starting the project, so any feedback is greatly appreciated.

You might also like...

(Developing) Twitter Clone made with Remix, EdgeDB & UnoCSS.

Twitter Clone Twitter clone made with Remix, EdgeDB & UnoCSS. Demo: twitter-clone.poke.dev Features Signup/Login (With GitHub OAuth) Create tweets Fol

Jan 3, 2023

Twitter Clone using next.js and tailwin CSS

This is a Next.js project bootstrapped with create-next-app. Getting Started First, run the development server: npm run dev # or yarn dev Open http://

Dec 26, 2022

Fullstack twitter clone developed with GraphQL and Relay

Fullstack twitter clone developed with GraphQL and Relay

Fullstack twitter clone developed with GraphQL and Relay

Dec 1, 2022

LinkedIn-Clone - a LinkedIn clone with firebase, redux and styled components

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: ya

Jan 3, 2022

Decentralized Social Network Money Frauds/Scams including BitClout, Twetch, Steemit, PeakD

Decentralized Social Network Money Frauds/Scams including BitClout, Twetch, Steemit, PeakD

Decentralized Social Network Money Frauds and DAOs: BitClout, Twetch, PeakD, Steemit ... Updates 4/29/2021 https://www.coindesk.com/wyoming-dao-llc-la

Nov 27, 2022

Uncensorable, immutable microblogging platform that is completely decentralized and does not rely on any centralized systems.

Uncensorable, immutable microblogging platform that is completely decentralized and does not rely on any centralized systems.

Zooko Truly decentralized, immutable and uncensorable microblogging Zooko is a working-example, proof-of-concept proving that you can have a decentral

Apr 20, 2022

Using decentralized identities with Web 2 to create a no login required website. Built using the Handshake blockchain.

Blending Web 2/3, is this Web .666? ( •̀ᴗ•́ )و ̑̑ Learn more by joining the Handshake Discord Community applause is a platform I built using centraliz

Mar 3, 2022

Decentralized Decisions software.

Decentralized Decisions DApp The Decentralized Decisions software allows for votes to be held on issues for the Choice Coin DAO, enabling a new form o

Oct 21, 2022

A easy-to-use framework for building immersive decentralized applications

A easy-to-use framework for building immersive decentralized applications

Dec 27, 2022
Owner
Erik Davtyan
Software engineer passionate about solving non-trivial problems.
Erik Davtyan
Decentralized Twitter prototype built with Polygon, GraphQL, Next.js, Ceramic, Arweave, and Bundlr

Titter - Web3 Social chat beta as fuck ?? Built with Next.js, Arweave, Bundlr, Ceramic, GraphQL, & Polygon How it works This is a working prototype of

Nader Dabit 154 Dec 14, 2022
This is a decentralized Amazon clone, built on the blockchain

The project is a Decentralized version of Amazon, built on the blockchain. Which gives users the ability to purchase and sell items without the involv

Nnam Darlington 3 Jun 27, 2022
Twitter Text Libraries. This code is used at Twitter to tokenize and parse text to meet the expectations for what can be used on the platform.

twitter-text This repository is a collection of libraries and conformance tests to standardize parsing of Tweet text. It synchronizes development, tes

Twitter 2.9k Jan 8, 2023
Fuck Twitter NFTs - Userscript to delete or block all occurances of NFT Users on Twitter

FuckTwitterNFTs Fuck Twitter NFTs - Userscript to delete or block all occurances of NFT Users on Twitter Userscript will by default, attempt to delete

Blumlaut 1 Jan 20, 2022
Twitter bot to find what song is playing in a given uploaded twitter video.

what-song-is-this Twitter bot to find what song is playing in a given uploaded twitter video. How to setup. yarn install How to run. via npm script ya

Akinwande Akinboluwarin 17 Dec 11, 2022
A Twitter filtered search to only get the live broadcasts hosted on Twitter itself, Built using Vanilla JS and Node.js

Twitter Broadcasts Search A Twitter filtered search to only get the live broadcasts hosted on Twitter itself, Built using Vanilla JS and Node.js. Live

Mohammad Mousad 2 Oct 6, 2022
🐦 A Twitter clone with Remix and Kontenbase

Writter A Twitter clone with Remix and Kontenbase. Styled with Chakra UI. Features What's implemented Landing page Authentication/Authorization Sign u

Kontenbase Team 11 Jun 26, 2022
Twitter-Clone (For Learning Purpose) made with Next.js,Firebase,TailwindCss

Project Name : Twitter-Clone This is a clone of Twitter . This build is for learning purpose only. Technology Used To Build This How it look's Some im

Ankit Singh 8 Oct 4, 2022
Twitter clone using Nextjs, Tailwind CSS and Firebase

This is a Next.js project bootstrapped with create-next-app. Getting Started First, run the development server: npm run dev # or yarn dev Open http://

Sahand Ghavidel 5 Aug 16, 2022
A social network that simulates a personal blog, where people post "What's on your mind?". Tweteroo is a Twitter clone.

Tweteroo About A social network that simulates a personal blog, where people post "What's on your mind?". Tweteroo is a Twitter clone. ?? Features ☑️

Luiza Santiago 5 Apr 13, 2022