Skip to content

pablohpsilva/nostr-chat-client

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

Watchers

Forks

Releases

No releases published

Packages

No packages published