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.
- π 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
- Expo - React Native framework for cross-platform development
- React Native - Mobile app framework
- TypeScript - Type-safe JavaScript
- Expo Router - File-based routing system
- 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
- Zustand - Lightweight state management
- AsyncStorage - Persistent local storage
- React Context - Global state management for Nostr connections
- Custom Design System - Consistent theming and typography
- React Native Reanimated - Smooth animations
- Expo Symbols - Native system icons
- Custom Fonts - Inter and Poppins font families
- @noble/ciphers - Cryptographic primitives
- @noble/curves - Elliptic curve cryptography
- @noble/hashes - Hash functions
- @scure/bip32 - HD key derivation
- @scure/bip39 - Mnemonic seed phrases
- Node.js (v18 or later)
- pnpm (recommended) or npm
- Expo CLI (
npm install -g @expo/cli) - iOS Simulator (macOS) or Android Studio (for emulators)
-
Clone the repository
git clone <repository-url> cd nostr-chat-client
-
Install dependencies
pnpm install # or npm install -
Start the development server
pnpm start # or npm start
pnpm ios
# or
npm run iospnpm android
# or
npm run androidpnpm web
# or
npm run web- Install Expo Go on your mobile device
- Scan the QR code from the terminal after running
pnpm start
# 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# Prebuild Android
pnpm prebuild:android
# Build Android APK/AAB
pnpm eas:build:androidnostr-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
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 numberThis 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
- Nostr Tools Usage Guide - Comprehensive guide to the Nostr implementation
- Expo Documentation - Framework documentation
- Nostr Protocol - Learn about the Nostr protocol
Contributions are welcome! Please feel free to submit issues, feature requests, or pull requests.
This project is private and proprietary. All rights reserved.