notedeck

One damus client to rule them all
git clone git://jb55.com/notedeck
Log | Files | Refs | README | LICENSE

README.md (4529B)


      1 # Notedeck
      2 
      3 [![CI](https://github.com/damus-io/notedeck/actions/workflows/rust.yml/badge.svg)](https://github.com/damus-io/notedeck/actions/workflows/rust.yml) 
      4 [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/damus-io/notedeck)
      5 
      6 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.
      7 
      8 <p align="center">
      9   <img src="https://cdn.jb55.com/s/6130555f03db55b2.png" alt="Notedeck Desktop Screenshot" width="700">
     10 </p>
     11 
     12 ## โœจ Features
     13 
     14 - **Multi-column Layout**: TweetDeck-style interface for viewing different Nostr content
     15 - **Dave AI Assistant**: AI-powered assistant that can search and analyze Nostr content
     16 - **Profile Management**: View and edit Nostr profiles
     17 - **Media Support**: View and upload images with GIF support
     18 - **Lightning Integration**: Zap (tip) content creators with Bitcoin Lightning
     19 - **Cross-platform**: Works on desktop (Linux, macOS, Windows) and Android
     20 
     21 ## ๐Ÿ“ฑ Mobile Support
     22 
     23 Notedeck runs smoothly on Android devices with a responsive interface:
     24 
     25 <p align="center">
     26   <img src="https://cdn.jb55.com/s/bebeeadf7001fae1.png" alt="Notedeck Android Screenshot" height="500px">
     27 </p>
     28 
     29 ## ๐Ÿ—๏ธ Project Structure
     30 
     31 ```
     32 notedeck
     33 โ”œโ”€โ”€ crates
     34 โ”‚   โ”œโ”€โ”€ notedeck           - Core library with shared functionality
     35 โ”‚   โ”œโ”€โ”€ notedeck_chrome    - UI container and navigation framework
     36 โ”‚   โ”œโ”€โ”€ notedeck_columns   - TweetDeck-style column interface
     37 โ”‚   โ”œโ”€โ”€ notedeck_dave      - AI assistant for Nostr
     38 โ”‚   โ”œโ”€โ”€ notedeck_ui        - Shared UI components
     39 โ”‚   โ””โ”€โ”€ tokenator          - String token parsing library
     40 ```
     41 
     42 ## ๐Ÿš€ Getting Started
     43 
     44 ### Desktop
     45 
     46 To run on desktop platforms:
     47 
     48 ```bash
     49 # Development build
     50 cargo run -- --debug
     51 
     52 # Release build
     53 cargo run --release
     54 ```
     55 
     56 ### Android
     57 
     58 For Android devices:
     59 
     60 ```bash
     61 # Install required target
     62 rustup target add aarch64-linux-android
     63 
     64 # Build and install on connected device
     65 cargo apk run --release -p notedeck_chrome
     66 ```
     67 
     68 ### Android Emulator
     69 
     70 1. Install [Android Studio](https://developer.android.com/studio)
     71 2. Open 'Device Manager' and create a device with API level `34` and ABI `arm64-v8a`
     72 3. Start the emulator
     73 4. Run: `cargo apk run --release -p notedeck_chrome`
     74 
     75 ## ๐Ÿงช Development
     76 
     77 ### Android Configuration
     78 
     79 Customize Android views for testing:
     80 
     81 1. Copy `example-android-config.json` to `android-config.json`
     82 2. Run `make push-android-config` to deploy to your device
     83 
     84 ### Setting Up Developer Environment
     85 
     86 ```bash
     87 ./scripts/dev_setup.sh
     88 ```
     89 
     90 This adds pre-commit hooks for proper code formatting.
     91 
     92 ## ๐Ÿ“š Documentation
     93 
     94 Detailed developer documentation is available in each crate:
     95 
     96 - [Notedeck Core](./crates/notedeck/DEVELOPER.md)
     97 - [Notedeck Chrome](./crates/notedeck_chrome/DEVELOPER.md)
     98 - [Notedeck Columns](./crates/notedeck_columns/DEVELOPER.md)
     99 - [Dave AI Assistant](./crates/notedeck_dave/docs/README.md)
    100 - [UI Components](./crates/notedeck_ui/docs/components.md)
    101 
    102 ## ๐Ÿ”„ Release Status
    103 
    104 Notedeck is currently in **BETA** status. For the latest changes, see the [CHANGELOG](./CHANGELOG.md).
    105 
    106 ## Future
    107 
    108 Notedeck allows for app development built on top of the performant, built specifically for nostr database [nostrdb][nostrdb]. An example app written on notedeck is [Dave](./crates/notedeck_dave)
    109 
    110 Building on notedeck dev documentation is also on the roadmap.
    111 
    112 ## ๐Ÿค Contributing
    113 
    114 ### Developers
    115 
    116 Contributions are welcome! Please check the developer documentation and follow these guidelines:
    117 
    118 1. Fork the repository
    119 2. Create a feature branch (`git checkout -b feature/amazing-feature`)
    120 3. Commit your changes (`git commit -m 'Add amazing feature'`)
    121 4. Push to the branch (`git push origin feature/amazing-feature`)
    122 5. Open a Pull Request
    123 
    124 ### Translators
    125 
    126 Help us bring Notedeck to non-English speakers!
    127 
    128 Request to join the Notedeck translations team through [Crowdin](https://crowdin.com/project/notedeck).
    129 
    130 If you do not have a Crowdin account, sign up for one.
    131 If you do not see your language, please request it in Crowdin.
    132 
    133 ## ๐Ÿ”’ Security
    134 
    135 For security issues, please refer to our [Security Policy](./SECURITY.md).
    136 
    137 ## ๐Ÿ“„ License
    138 
    139 This project is licensed under the GPL - see license information in individual crates.
    140 
    141 ## ๐Ÿ‘ฅ Authors
    142 
    143 - William Casarin <jb55@jb55.com>
    144 - kernelkind <kernelkind@gmail.com>
    145 - And [contributors](https://github.com/damus-io/notedeck/graphs/contributors)
    146 
    147 
    148 [nostrdb]: https://github.com/damus-io/nostrdb