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
- Host: GitHub
- URL: https://github.com/damus-io/notedeck
- Owner: damus-io
- License: other
- Created: 2023-07-06T15:39:47.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2025-04-29T23:42:42.000Z (5 months ago)
- Last Synced: 2025-04-30T00:28:32.045Z (5 months ago)
- Topics: freedom, nostr, nwc, rust
- Language: Rust
- Homepage:
- Size: 23.2 MB
- Stars: 216
- Watchers: 12
- Forks: 35
- Open Issues: 273
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README
# Notedeck
[](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.
![]()
## โจ 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:
![]()
## ๐๏ธ 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)