William Casarin 2bd636ce0a v0.5.9 - Better Media!
- Persist settings to storage
- New fullscreen media viewer with panning and zoom
- Changed note rendering to use the full screen width
- Fixed more wrapping issues
- Fixed crash on large images
- Fix nwc copy/paste
- Portugese translations
- Show locale language names instead of identifier

Fernando López Guevara (5):
      feat(settings): persist settings to storage
      fix(columns): render wide notes on narrow screen
      fix(media): edge-to-edge image display on narrow screen
      fix(media): use ScaledTexture
      fix(note_actionbar): add invisible label to stabilize section width ¯\_(ツ)_/¯

Terry Yiu (5):
      Add human-readable names to locales in settings
      Add Portuguese (Brazil) language and translations
      Export strings for translation
      Import translations
      Internationalize ShowNoteClientOptions labels

William Casarin (19):
      Fullscreen MediaViewer refactor
      images: always resize large images
      media: change is_narrow logic to is_scaled
      media/viewer: click anywhere to close
      media/viewer: fix broken culling
      media/viewer: fix flicker on escape-close
      media/viewer: fullscreen transition animations
      media/viewer: handle click-to-close interactions
      media/viewer: provide image-click provenance
      media/viewer: slower animation
      note/options: made wide the default
      threads: disable wide in threads
      ui/note: fix another reply_desc wrapping issue
      ui/note: simplify weird hack and make note of it
      ui/settings: fix small double clone nit
      ui/wallet: small refactor to use return instead of break
      wallet: fix nwc copy/paste

Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-29 12:24:17 -07:00
2025-06-17 13:15:40 -07:00
2025-06-16 16:11:51 -07:00
2025-07-23 15:33:17 -03:00
2025-07-23 15:33:17 -03:00
2025-07-29 12:24:17 -07:00
2025-07-29 12:24:17 -07:00
2025-05-05 13:54:33 -07:00
2023-07-09 12:29:39 -07:00
2024-11-25 16:42:20 -05:00
2023-07-01 11:25:55 -07:00
2025-06-17 13:15:40 -07:00
2025-03-23 11:30:18 -07:00
2024-04-09 23:05:31 -05:00
2025-03-23 11:30:18 -07:00

Notedeck

CI Ask DeepWiki

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 BETA status. For the latest changes, see the CHANGELOG.

Future

Notedeck allows for app development built on top of the performant, built specifically for nostr database nostrdb. An example app written on notedeck is Dave

Building on notedeck dev documentation is also on the roadmap.

🤝 Contributing

Developers

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

Translators

Help us bring Notedeck to non-English speakers!

Request to join the Notedeck translations team through Crowdin.

If you do not have a Crowdin account, sign up for one. If you do not see your language, please request it in Crowdin.

🔒 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

Description
A multiplatform nostr client
Readme 28 MiB
Languages
Rust 83.1%
Fluent 13.5%
Python 1.5%
Java 0.8%
Shell 0.3%
Other 0.7%