Giter Site home page Giter Site logo

earthstar-project / earthstar-foyer Goto Github PK

View Code? Open in Web Editor NEW
5.0 5.0 2.0 2.85 MB

A guestbook style web application using Earthstar

Home Page: https://earthstar-foyer.netlify.app/

License: GNU Affero General Public License v3.0

TypeScript 4.58% HTML 0.02% CSS 0.38% JavaScript 95.02%
earthstar

earthstar-foyer's People

Contributors

cinnamon-bun avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

judytuna jimpick

earthstar-foyer's Issues

Implement user control panel

Note we're switching terminology here - we call them Users even though Earthstar calls them Authors.

Users should be able to

  • sign in as existing user, using traditional username/password fields
  • create new user (generate new keypair) with info about shortname requirements
  • edit display name
  • sign out. make sure the keypair is removed from localStorage.
  • optional: sign in with keypair.json
  • optional: download keypair.json

Sync button should light up when there are things to sync

I'm not sure where to keep track of this. Options:

  1. From EarthbarStore, subscribe to store writes that are local. We need to track this for each workspace even across switching and reloading the page...
  2. Or within core earthstar IStorage, have any writes happened since the last sync? The Syncer class would keep track of this, and store it in IStorage config storage. Which would have to be implemented for StorageMemory.

Trouble with multiple tabs

When Foyer is open in two tabs at the same time, both are writing to LocalStorage but neither is reading from it. This causes Problems.

We only load from LocalStorage to memory at startup and from that point we only write from memory to LocalStorage. Instead we need to keep LocalStorage and memory in sync with each other bidirectionally. It's like LocalStorage is a mini pub.

Luckily Earthstar data is easy to sync like this, but we may need to store each document as a separate LocalStorage item. However we also have some metadata that will be trickier to sync (list of workspaces and pub configuration).

Notes:

Temporary workarounds:

  • use a regular tab and a Private Browsing tab
  • use two different browsers
  • detect when running in a second tab and warn that changes are not permanent? Only sync to pubs but don't save to LocalStorage?

Help password managers save your password when creating a new user

When creating a new user, make it work like this:

  1. Fill in shortname, click Create
  2. Instead of logging in immediately, fill the generated username & password into the Log In fields
  3. The user clicks Log In

This way password managers will detect the login event and save your password for you.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.