Skip to content

damus-io/notedeck

Repository files navigation

Notedeck

CI

A modern, multiplatform Nostr client built with Rust. Notedeck provides a feature-rich experience for interacting with the Nostr protocol on both desktop and Android platforms.

Notedeck Desktop Screenshot

✨ Features

  • Multi-column Layout: TweetDeck-style interface for viewing different Nostr content
  • Dave AI Assistant: AI-powered assistant that can search and analyze Nostr content
  • Profile Management: View and edit Nostr profiles
  • Media Support: View and upload images with GIF support
  • Lightning Integration: Zap (tip) content creators with Bitcoin Lightning
  • Cross-platform: Works on desktop (Linux, macOS, Windows) and Android

πŸ“± Mobile Support

Notedeck runs smoothly on Android devices with a responsive interface:

Notedeck Android Screenshot

πŸ—οΈ Project Structure

notedeck
β”œβ”€β”€ crates
β”‚   β”œβ”€β”€ notedeck           - Core library with shared functionality
β”‚   β”œβ”€β”€ notedeck_chrome    - UI container and navigation framework
β”‚   β”œβ”€β”€ notedeck_columns   - TweetDeck-style column interface
β”‚   β”œβ”€β”€ notedeck_dave      - AI assistant for Nostr
β”‚   β”œβ”€β”€ notedeck_ui        - Shared UI components
β”‚   └── tokenator          - String token parsing library

πŸš€ Getting Started

Desktop

To run on desktop platforms:

# Development build
cargo run -- --debug

# Release build
cargo run --release

Android

For Android devices:

# Install required target
rustup target add aarch64-linux-android

# Build and install on connected device
cargo apk run --release -p notedeck_chrome

Android Emulator

  1. Install Android Studio
  2. Open 'Device Manager' and create a device with API level 34 and ABI arm64-v8a
  3. Start the emulator
  4. Run: cargo apk run --release -p notedeck_chrome

πŸ§ͺ Development

Android Configuration

Customize Android views for testing:

  1. Copy example-android-config.json to android-config.json
  2. Run make push-android-config to deploy to your device

Setting Up Developer Environment

./scripts/dev_setup.sh

This adds pre-commit hooks for proper code formatting.

πŸ“š Documentation

Detailed developer documentation is available in each crate:

πŸ”„ Release Status

Notedeck is currently in ALPHA status. For the latest changes, see the CHANGELOG.

🀝 Contributing

Contributions are welcome! Please check the developer documentation and follow these 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

πŸ”’ Security

For security issues, please refer to our Security Policy.

πŸ“„ License

This project is licensed under the GPL - see license information in individual crates.

πŸ‘₯ Authors