GitHub - octavi42/mesh

2 min read Original article ↗

Mesh

A decentralized team communication platform built on the Nostr protocol. Features real-time group chat with NIP-29 compliant relay support.

🏗️ Project Structure

Directory Description Tech Stack
nostr/nostr-team-chat/ Mesh web application Next.js, TypeScript, Nostr
nostr/groups_relay/ NIP-29 compliant groups relay server Rust

✨ Features

  • Decentralized: Built on Nostr protocol - no central server required
  • NIP-29 Groups: Full support for relay-based group chats
  • Real-time: Instant message delivery via WebSocket
  • Self-hosted: Run your own relay for complete data ownership
  • Privacy-focused: Cryptographic identity with Nostr keys

🚀 Quick Start

Prerequisites

  • Node.js 18+
  • (Optional) Rust toolchain for running your own relay
  • (Optional) Docker for containerized relay deployment

Running the Chat App

cd nostr/nostr-team-chat
cp .env.example .env.local
# Edit .env.local with your relay URL
npm install
npm run dev

Open http://localhost:3000

Running Your Own Relay

cd nostr/groups_relay

# With Cargo
cargo run

# Or with Docker
docker compose up --build

Relay UI available at http://localhost:8080

🔧 Configuration

Chat App (nostr/nostr-team-chat/.env.example)

# Nostr Relay URL
NEXT_PUBLIC_NIP29_RELAY_URL=wss://groups.yourdomain.com

# App Configuration
NEXT_PUBLIC_APP_NAME=Mesh
NEXT_PUBLIC_APP_URL=https://your-domain.com

Relay (nostr/groups_relay/)

See groups_relay/README.md for detailed relay configuration.

� Documentation

🤝 Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 License

🔗 Links