https://github.com/bennyboer/diary
Digital diary with state-of-the-art encryption
https://github.com/bennyboer/diary
desktop diary encryption flutter flutter-app rust
Last synced: 9 months ago
JSON representation
Digital diary with state-of-the-art encryption
- Host: GitHub
- URL: https://github.com/bennyboer/diary
- Owner: bennyboer
- Created: 2022-12-29T14:30:44.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2023-01-08T22:58:27.000Z (over 3 years ago)
- Last Synced: 2025-07-18T21:20:59.449Z (11 months ago)
- Topics: desktop, diary, encryption, flutter, flutter-app, rust
- Language: Dart
- Homepage:
- Size: 1.14 MB
- Stars: 8
- Watchers: 3
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Diary
> A digital diary with state-of-the-art encryption.


## Background
I feel like the days of traditional diaries are over.
Not only are they inconvenient to carry around, but they are also not very secure.
Thus, I decided to create a digital diary that is secure and easy to use.
## Technology
The project is a local Desktop application that stores all data on the local file system.
All files in the repository are encrypted using the ChaCha20-Poly1305 cipher which uses a 256-Bit key.
That is plenty to protect your diary for the next years.
The key is derived from a password using the **Argon2** algorithm, which is currently the recommended algorithm.
You can only decrypt the diary again using the same password.
In the future we might add support for a second factor like a FIDO2 key that offers a higher level of security.
If you want to save your data in the cloud you can bind a directory to a cloud storage service like Dropbox or Google
Drive.
Since your data is encrypted and the cloud service private your diary should be safe from prying eyes.
## Installation
### Build it yourself
```bash
cd client
flutter build windows
```
You'll find the executable in `client/build/windows/runner/Release/`.
### Build Installer
```bash
flutter pub run msix:create
```
## Usage
The app currently consists of a simple calendar that just shows whether a day has an entry or not.
When clicking on the day in the calendar you'll be able to either create a new entry or edit an existing one (if you
know the password for decryption at least).
The encrypted diary entries are stored under your home directory in a folder named `.diary`.
## Getting started
### Prerequisites
- Install Rust
- Install Flutter
- Install LLVM (https://pub.dev/packages/ffigen#installing-llvm)
### Rebuilding Flutter <> Rust bridge
Run `./tools/build_bridge.sh` or `./tools/build_bridge.bat` depending on your OS