GithubHelp home page GithubHelp logo

blowaternostr / blowater Goto Github PK

View Code? Open in Web Editor NEW
44.0 3.0 6.0 1.61 MB

Home Page: https://blowater.app

License: GNU Affero General Public License v3.0

TypeScript 38.16% HTML 0.33% Makefile 0.21% Rust 0.06% JavaScript 61.24% Shell 0.01%
chat data-ownership decentralized-applications messaging privacy resiliency web3

blowater's Introduction

Blowater

Blowater is delightful DM focusing Nostr client.

It's here to replace Telegram/Slack/Discord alike centralized chat apps and give users a strong privacy, globally available decentralized chat experience.

Authors

Software Engineers

Water Blowater

Designers

Karnage

Donation

Lightning: [email protected]

nostr features supported

  • NIP-01 - Basic protocol flow description
  • NIP-02 - Contact List and Petnames
  • NIP-03 - OpenTimestamps Attestations for Events
  • NIP-04 - Encrypted Direct Message
  • NIP-05 - Mapping Nostr keys to DNS-based internet identifiers
  • NIP-06 - Basic key derivation from mnemonic seed phrase
  • NIP-07 - window.nostr capability for web browsers
  • NIP-08 - Handling Mentions
  • NIP-09 - Event Deletion
  • NIP-10 - Conventions for clients' use of e and p tags in text events
  • NIP-11 - Relay Information Document
  • NIP-12 - Generic Tag Queries
  • NIP-13 - Proof of Work
  • NIP-14 - Subject tag in text events
  • NIP-15 - Nostr Marketplace (for resilient marketplaces)
  • NIP-16 - Event Treatment
  • NIP-18 - Reposts
  • NIP-19 - bech32-encoded entities
  • NIP-20 - Command Results
  • NIP-21 - nostr: URL scheme
  • NIP-22 - Event created_at Limits
  • NIP-23 - Long-form Content
    • Optional viewing, but not creating
  • NIP-25 - Reactions
  • NIP-26 - Delegated Event Signing
  • NIP-27 - Text Note References
  • NIP-28 - Public Chat
  • NIP-33 - Parameterized Replaceable Events
  • NIP-36 - Sensitive Content
  • NIP-39 - External Identities in Profiles
  • NIP-40 - Expiration Timestamp
  • NIP-42 - Authentication of clients to relays
  • NIP-46 - Nostr Connect
  • NIP-50 - Keywords filter
  • NIP-51 - Lists
  • NIP-56 - Reporting
  • NIP-57 - Lightning Zaps
  • NIP-58 - Badges
  • NIP-65 - Relay List Metadata
  • NIP-1078 - Application-specific data

Customer Support

Support Bot

blowater's People

Contributors

blowaternostr avatar bob2402 avatar shaibearary avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

blowater's Issues

Relay Group

The user is able to create multiple relay groups for different purposes.

Use case:

  1. use different groups in different features, such as DM group, Kind-1 DM, Blog group, Config group.
  2. use different groups in different devices, such as Mobile vs Desktop
  3. use different group per event sending bases.

Clickable Inline URLs

per nostr:npub1ejxswthae3nkljavznmv66p9ahp4wmj4adux525htmsrff4qym9sz2t3tv's request

Performance Improvement: Social Panel

Needs to speed up Social Panel's rendering.

Currently, 150K events require ~100ms to process per render call. It's too slow. Need to make it to sub 25ms again.

Remember, our goal is to handle 1 million events locally under 25ms.

July Plan

July is the first month after we Open Sourced Blowater. It’s a vital month for us to deliver a better application to our community.

To define “better”, we consider 3 areas:

  1. Zap Integration
    #7 (X)
  2. DM features
    a. #8
    b. #4
    c. #2
    d. #5
    e. #14
  3. Generally Useful Features
    a. #54
  4. #6
    a. #9
    b. #10

Nostr Discussion

August Plan

  • #1
    We only finished fewer than 30% of the July Plan, which is due to poor planning and team member departure.

In August, we will plan more conservatively and put much fewer tasks to this month.

The actual plan will come out next week.

Relay Group

The user is able to create multiple relay groups for different purposes.

Use case:

  1. use different groups in different features, such as DM group, Kind-1 DM, Blog group, Config group.
  2. use different groups in different devices, such as Mobile vs Desktop
  3. use different group per event sending bases.

App Config: Categorize/Group/Tag Contacts

Problem Disscription

image Currently, Blowater only categorize pubkeys(conversations) to 2 groups: `contacts` and `strangers`.

contacts are users who you have exchanged messages with.
strangers are users who you have send messages to but haven't received responses yet or vice versa.

In a real world DM application, users will want to have more groups such as colleagues, gamers, family and more.

A user can also belong to multiple groups. For example, your friend in a game can also be your schoolmate.

Solution

We should implement custom tags for pubkeys and allow a user to search with tags.

Nostr Conversation

Relay Group

The user is able to create multiple relay groups for different purposes.

Use case:

  1. use different groups in different features, such as DM group, Kind-1 DM, Blog group, Config group.
  2. use different groups in different devices, such as Mobile vs Desktop
  3. use different group per event sending bases.

Chat Privacy/Security: Separate/Standalone Chat

Problem

In Telegram, there is a "Start Secret Chat" feature that you can start chat with a contact in a separate conversation UI. It's almost a group chat with only 2 people.

In this new chat, the 2 participant will use different pub/pri key pairs to have conversations.

I believe this is the first step towards Encrypted Group Chat.

Solution

Implement a Standalone Chat for 2 people only that uses different pub/pri key pairs from their main one so that

  1. Fewer meta data leak for original identities.
  2. A preparation for Encrypted Group Chat.

Share other kind's notes to DM

Basic

In the "Social" page, we need a hover button to share a note to DMs.

The DM should render a preview of this kind 1 note and make it clickable to jump to the note.

Advanced

  1. Share to multiple DMs
  2. To all followers. This one is difficult because of how "follow" is designed in NIP-02

Fix NIP-7 regression

After #55 , NIP07 doesn't work anymore. Fix it. Though I still consider it a not-so-good NIP, it's useful.

Operate a standalone encrypted binary storage service

Currently, images are encoded and encrypted as kind-4 events and big images are cut into chunks to bypass most relays' 100K or 256K event size limit.

This approach is bad for many reasons and it's better to operate a separate binary storage service that

  1. accept encrypted data only
  2. define a simple set of APIs so that
    a. other clients can use it
    b. other implementations can exist
  3. figure out a payment solution
  4. open source the implementation
    a. other people can operate their own

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.