All Projects → earthstar-project → React Earthstar

earthstar-project / React Earthstar

Licence: agpl-3.0
A UI toolkit for making collaborative, offline-first applets for small groups.

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to React Earthstar

Lbry Sdk
The LBRY SDK for building decentralized, censorship resistant, monetized, digital content apps.
Stars: ✭ 7,169 (+15484.78%)
Mutual labels:  decentralized
Enigma P2p
The Enigma Worker Peer-to-Peer (P2P) package written in Node.js based on libp2p-js
Stars: ✭ 31 (-32.61%)
Mutual labels:  decentralized
Coaty Js
Collaborative IoT framework in JavaScript/TypeScript for Node.js and browsers.
Stars: ✭ 39 (-15.22%)
Mutual labels:  decentralized
Microservices Connector
Inter-Service communication framework, support for microservice architecture and distributed system
Stars: ✭ 17 (-63.04%)
Mutual labels:  decentralized
Subnode.org
SubNode: Social Media App
Stars: ✭ 25 (-45.65%)
Mutual labels:  decentralized
Notes
[DEPRECATED] Textile Notes App
Stars: ✭ 35 (-23.91%)
Mutual labels:  decentralized
Rust Ipfs
The InterPlanetary File System (IPFS), implemented in Rust.
Stars: ✭ 739 (+1506.52%)
Mutual labels:  decentralized
Minion Ci
minimalist, decentralized, flexible Continuous Integration Server for hackers.
Stars: ✭ 44 (-4.35%)
Mutual labels:  decentralized
Decentralized Energy Fabric On Ibp20
Set up a network on the IBM Blockchain Platform and deploy a decentralized energy smart contract on the network.
Stars: ✭ 29 (-36.96%)
Mutual labels:  decentralized
Crypto Dht
Blockchain over DHT in GO
Stars: ✭ 38 (-17.39%)
Mutual labels:  decentralized
Peergos
A p2p, secure file storage, social network and application protocol
Stars: ✭ 895 (+1845.65%)
Mutual labels:  decentralized
Vmesh
VMesh is a decentralized Layer 3 mesh router and protocol designed for open network interconnection.
Stars: ✭ 25 (-45.65%)
Mutual labels:  decentralized
Disperse
React/Redux dApp (decentralized app) boilerplate using Ethereum's blockchain
Stars: ✭ 36 (-21.74%)
Mutual labels:  decentralized
Awesome Decentralized Finance
A curated list of awesome decentralized finance projects
Stars: ✭ 793 (+1623.91%)
Mutual labels:  decentralized
Dawn
global hosting, financial automation, server-less web components
Stars: ✭ 40 (-13.04%)
Mutual labels:  decentralized
Beaker
An experimental peer-to-peer Web browser
Stars: ✭ 6,411 (+13836.96%)
Mutual labels:  decentralized
Pulsarcast
A pub-sub system for the distributed web - my master thesis @ IST
Stars: ✭ 33 (-28.26%)
Mutual labels:  decentralized
Engine And Editor
Streamr Core backend
Stars: ✭ 44 (-4.35%)
Mutual labels:  decentralized
Yggdrasil Go
An experiment in scalable routing as an encrypted IPv6 overlay network
Stars: ✭ 1,007 (+2089.13%)
Mutual labels:  decentralized
Radvpn
Decentralized VPN
Stars: ✭ 993 (+2058.7%)
Mutual labels:  decentralized

react-earthstar

What is this?

react-earthstar is a UI toolkit for making collaborative, offline-first applets for small groups. Your applet's data is stored with the peers who use it, and on infrastructure you own or trust.

  • Don't-have-to-think-about-it realtime collaborative data
  • No-servers-involved authentication
  • No-distinction-between-the-two offline and online support

This is all made possible by the Earthstar protocol.

What's Earthstar?

We all want apps where we can look at and change data together: stuff like documents, events, or messages.

But where is all that kept? And who do we trust it with?

Earthstar is on offline-first, distributed, syncable, embedded document database for use in p2p software — in browsers and outside of browsers.

Earthstar's model is: Workspaces store Documents, which are written and edited by Authors. Workspaces' data are propagated by Pub Servers.

Workspaces

It's like a shared folder for a small group of people. You could have separate workspaces for your family, your D&D party, or book club. A workspace stores many documents.

Documents

Documents are stored at paths like /wiki/gardening/cabbage.txt They can store any data which can be represented as a UTF-8 string, and their contents can be edited and deleted. They can have editing permissions. They can even be set to automatically delete themselves after a period of time.

Authors

Authors are identities used for writing and editing documents. They have a public address and a secret, which are used together to cryptographically prove an author is who they say they are. You can have one or many.

Pubs

While peers could sync data directly to one another, with small groups there's a decent chance no-one else is online when you are. Pubs are little mini-servers used to sync workspace data with peers. They have no special authority over data. They are designed to be very easy to run.

So what's react-earthstar again?

This package offers several layers of convenience around Earthstar: React hooks for writing and reading data from workspaces, pre-made components for common tasks, and even a full-blown control centre that does all the table-stakes stuff for you.

Getting started

First, install react-earthstar and earthstar as dependencies to your project:

yarn add earthstar react-earthstar
npm install earthstar react-earthstar

Start by placing the EarthstarPeer component somewhere near the root of your app:

import { EarthstarPeer } from 'react-earthstar';

function App() {
  return (
    <EarthstarPeer>
      <h1>{'The beginnings of my app!'}</h1>
      <SomeCoolFeature />
    </EarthstarPeer>
  );
}

Under the hood, EarthstarPeer coordinates the state of your Earthstar app: things like the current user, known workspaces, or whether syncing is active or not.

With EarthstarPeer wrapped around your app, you're ready to go.

Build your app

Click below for learning about these with their own docs

  • EarthstarPeer - Learn more about configuring
  • Hooks - Learn how to access and write data and app state with hooks
  • Earthbar - Pre-made, customisable control center for common earthstar tasks — learn how to customise and style it here
  • Components - Pre-made UIs to make your life easy! - learn what's available and how to style here
  • Styling How to style components from this package with pre-made themes, or do it yourself!
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].