Skip to content

pablohpsilva/nostr-chat-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

99 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

nostr Chat Client 🟣

A decentralized, privacy-focused chat application built on the Nostr protocol. Experience truly secure messaging with end-to-end encryption, no data collection, and complete user sovereignty over communications.

✨ Features

  • 🌐 Decentralized - No central servers, operates on the Nostr network
  • πŸ”’ Real End-to-End Encryption - Messages encrypted on your device using NIP-04 and NIP-17 protocols
  • πŸ‘€ Anonymous - No registration required, you control your identity
  • πŸ”“ Permissionless - Open protocol, censorship-resistant
  • 🚫 No Tracking - Zero data collection or analytics
  • ⚑️ Lightning Powered - Built-in Lightning Network support
  • πŸ§… Tor Compatible - Enhanced privacy protection
  • πŸ“± Cross-Platform - iOS, Android, and Web support

πŸ›  Technology Stack

Core Technologies

Nostr Implementation

  • nostr-tools - Core Nostr protocol implementation
  • NDK (Nostr Development Kit) - Advanced Nostr functionality
  • NIP-04 - Direct message encryption
  • NIP-17 - Private direct messages with enhanced privacy
  • NIP-44 - Versioned encryption standard

State Management & Storage

  • Zustand - Lightweight state management
  • AsyncStorage - Persistent local storage
  • React Context - Global state management for Nostr connections

UI & Styling

  • Custom Design System - Consistent theming and typography
  • React Native Reanimated - Smooth animations
  • Expo Symbols - Native system icons
  • Custom Fonts - Inter and Poppins font families

Cryptography & Security

πŸš€ Getting Started

Prerequisites

  • Node.js (v18 or later)
  • pnpm (recommended) or npm
  • Expo CLI (npm install -g @expo/cli)
  • iOS Simulator (macOS) or Android Studio (for emulators)

Installation

  1. Clone the repository

    git clone <repository-url>
    cd nostr-chat-client
  2. Install dependencies

    pnpm install
    # or
    npm install
  3. Start the development server

    pnpm start
    # or
    npm start

Running on Different Platforms

iOS Simulator (macOS only)

pnpm ios
# or
npm run ios

Android Emulator

pnpm android
# or
npm run android

Web Browser

pnpm web
# or
npm run web

Expo Go (Development)

  1. Install Expo Go on your mobile device
  2. Scan the QR code from the terminal after running pnpm start

πŸ“± Building for Production

iOS

# Build for iOS
pnpm eas:build:ios

# Submit to App Store
pnpm eas:submit:ios

# Build and submit in one command
pnpm eas:release:ios

Android

# Prebuild Android
pnpm prebuild:android

# Build Android APK/AAB
pnpm eas:build:android

πŸ— Project Structure

nostr-chat-client/
β”œβ”€β”€ app/                    # App screens (file-based routing)
β”‚   β”œβ”€β”€ chat/              # Chat screens (NIP-04 & NIP-17)
β”‚   β”œβ”€β”€ chatlist/          # Chat list and contacts
β”‚   β”œβ”€β”€ login/             # Authentication screens
β”‚   └── keys/              # Key management
β”œβ”€β”€ components/            # Reusable UI components
β”‚   β”œβ”€β”€ Chat/              # Chat-specific components
β”‚   β”œβ”€β”€ Context/           # React Context providers
β”‚   └── ui/                # Design system components
β”œβ”€β”€ hooks/                 # Custom React hooks
β”œβ”€β”€ interal-lib/           # Core Nostr implementation
β”œβ”€β”€ store/                 # Zustand state stores
β”œβ”€β”€ constants/             # App constants and configuration
└── utils/                 # Utility functions

πŸ”§ Development Scripts

# Development
pnpm start              # Start Expo dev server
pnpm ios               # Run on iOS simulator
pnpm android           # Run on Android emulator
pnpm web               # Run in web browser

# Code Quality
pnpm lint              # Run ESLint
pnpm doctor            # Run Expo doctor

# Building
pnpm prebuild:ios      # Prebuild for iOS
pnpm prebuild:android  # Prebuild for Android

# Version Management
pnpm update:version    # Update app version
pnpm update:build      # Update build number

πŸ” Privacy & Security

This application prioritizes user privacy and security:

  • Local Key Management - Private keys never leave your device
  • End-to-End Encryption - All messages encrypted before transmission
  • No Data Collection - Zero telemetry or analytics
  • Decentralized Architecture - No central servers to compromise
  • Open Source - Transparent, auditable code

πŸ“š Documentation

🀝 Contributing

Contributions are welcome! Please feel free to submit issues, feature requests, or pull requests.

πŸ“„ License

This project is private and proprietary. All rights reserved.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors