An open API service indexing awesome lists of open source software.

https://github.com/damus-io/notedeck

The nostr browser
https://github.com/damus-io/notedeck

freedom nostr nwc rust

Last synced: 5 months ago
JSON representation

The nostr browser

Awesome Lists containing this project

README

          

# Notedeck

[![CI](https://github.com/damus-io/notedeck/actions/workflows/rust.yml/badge.svg)](https://github.com/damus-io/notedeck/actions/workflows/rust.yml)

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:

```bash
# Development build
cargo run -- --debug

# Release build
cargo run --release
```

### Android

For Android devices:

```bash
# 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](https://developer.android.com/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

```bash
./scripts/dev_setup.sh
```

This adds pre-commit hooks for proper code formatting.

## ๐Ÿ“š Documentation

Detailed developer documentation is available in each crate:

- [Notedeck Core](./crates/notedeck/DEVELOPER.md)
- [Notedeck Chrome](./crates/notedeck_chrome/DEVELOPER.md)
- [Notedeck Columns](./crates/notedeck_columns/DEVELOPER.md)
- [Dave AI Assistant](./crates/notedeck_dave/docs/README.md)
- [UI Components](./crates/notedeck_ui/docs/components.md)

## ๐Ÿ”„ Release Status

Notedeck is currently in **ALPHA** status. For the latest changes, see the [CHANGELOG](./CHANGELOG.md).

## ๐Ÿค 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](./SECURITY.md).

## ๐Ÿ“„ License

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

## ๐Ÿ‘ฅ Authors

- William Casarin
- kernelkind
- And [contributors](https://github.com/damus-io/notedeck/graphs/contributors)