Skip to content

pmrcunha/bookstr

Repository files navigation

Bookstr / Orfeu

Side Project

This was my first attempt at building a Nostr client for book lovers, a decentralized Goodreads. I added lots of features very fast, without properly considering the architecture, and the app collapsed under its own weight. 😅
I believe I would need to start over and ended up moving on to other things. Maybe one day...

bookstr-screenshot

Design Decisions

  • The main reason for Goodreads to dominate is their book catalog, so I think the only way to disrupt them is to build a public one, that everyone can improve and benefit from. I created a new nostr event kind, to add a book description, modelled after the existing one for Wiki articles.
  • To obtain better performance, I setup a local nostr relay using IndexedDb, which I syncronize with the user's relays on startup using negentropy. The scheduling and state management around this local relay was... hard...
  • My design for book reviews was heavily influenced by this article shared in a PR in the nips repo (nostr implementation possibilities), about adding a Review event kind. I briefly participated in it.

Usage

You will need to have Deno installed to run this app.

# 1. Install dependencies
pnpm i

# 2. Run the dev server
pnpm dev

That's it!

In order to actually use the app, you will need a nostr extension. Nostr works with public private keys, and all your actions are signed with your private key. Pasting your private key in random apps on the internet is not a good idea, so we use a browser extension so that my app never sees your key. I recommend nos2x as a basic one to get started.

When testing buggy apps like mine, you should probably also make a throwaway key, since I could accidentally publish nostr events you don't want!

About

Decentralized social media for book readers.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages