Installation
Install the app
Nothing to build: use app.nostrmail.org, install from ZapStore, or download an Android, Linux or macOS build from the releases page.
The rest of this page is for building from source.
Prerequisites
- Flutter with Dart SDK 3.12.2 or newer
flutter doctor
Clone
git clone https://github.com/nogringo/nostr-mail-client
cd nostr-mail-client
flutter pub get
The repository is a Flutter workspace. flutter pub get at the root resolves
packages/nmail_core and both app wrappers together.
The FOSS wrapper carries the ZapStore build as an Android flavor, so the two distributions share one app and one feature set.
Run
Run from an app wrapper, not from the root:
cd apps/nmail_foss
flutter run -d chrome # web
flutter run -d linux # Linux desktop
flutter run -d macos # macOS desktop
flutter run -d <device> # Android
Use apps/nmail_standard for the build that includes Firebase messaging.
Build
cd apps/nmail_foss
flutter build apk --release
cd apps/nmail_foss
flutter build web --release
cd apps/nmail_foss
flutter build linux --release
cd apps/nmail_foss
flutter build macos --release
Web builds
The mailbox is a SQLite database running in the browser. sqlite3.wasm and
drift_worker.js have to be present in web/, matching the resolved sqlite3
and drift versions. See Local Storage.
Troubleshooting
flutter clean && flutter pub get
If a dependency fails to resolve, check that your Dart SDK matches the
environment constraint in pubspec.yaml. The client tracks the SDK closely
and tends to need a recent Flutter.