https://github.com/prnz-net/pnotes
pNotes is a minimal, vault-style desktop application for private notes.
https://github.com/prnz-net/pnotes
go golang note notes vault wails
Last synced: 4 days ago
JSON representation
pNotes is a minimal, vault-style desktop application for private notes.
- Host: GitHub
- URL: https://github.com/prnz-net/pnotes
- Owner: PRNZ-NET
- License: gpl-3.0
- Created: 2025-12-16T10:21:04.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2025-12-16T10:42:19.000Z (about 1 month ago)
- Last Synced: 2026-01-13T19:42:31.059Z (4 days ago)
- Topics: go, golang, note, notes, vault, wails
- Language: TypeScript
- Homepage:
- Size: 1.05 MB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# pNotes
A minimal desktop application for private notes with local encryption.
[](https://www.gnu.org/licenses/gpl-3.0)
[](https://golang.org/)
[](https://wails.io/)
[](https://github.com/PRNZ-NET/pNotes)
[](https://www.sqlite.org/)
[Features](#features) • [Installation](#installation) • [Usage](#usage) • [Development](#development) • [License](#license)
## Screenshot
pNotes running on desktop
## Features
### Security
- Local AES-256-GCM encryption
- Password-protected notes
- Data is encrypted on your machine only
### Notes
- Markdown support (GitHub-flavored)
- Editor, preview or split view
- Live rendering while typing
### Organization
- Tags for grouping notes
- Filter by tags or encryption state
- Simple text search
### Performance
- SQLite database
- Indexed queries
- WAL mode enabled
- Handles large note collections without noticeable lag
### Languages
- English
- Russian
- Easy to extend with new translations
### Interface
- Dark theme
- Minimal layout
- Focus on content, not UI noise
## Installation
### Requirements
- Go 1.23+
- Node.js 18+
- Wails CLI v2
### Build from source
Clone the repository:
```bash
git clone https://github.com/PRNZ-NET/pNotes.git
cd pNotes
```
Install Wails (if needed):
```bash
go install github.com/wailsapp/wails/v2/cmd/wails@latest
```
Install frontend dependencies:
```bash
cd frontend
npm install
cd ..
```
Build the app:
```bash
wails build
```
The binary will be available in `build/bin`.
### Development mode
```bash
wails dev
```
## Usage
### Creating notes
1. Click New Note
2. Enter title and content
3. Use Markdown if needed
4. Add tags
5. Save
### Encrypting notes
1. Enable Encrypt note
2. Enter a password
3. Confirm it
4. The note is stored encrypted locally
### Opening encrypted notes
1. Click a locked note
2. Enter the password
3. The note is decrypted in memory
### Filtering
- By tags
- By encryption state
- By text search
### Editor modes
- Edit
- Preview
- Split view
## Development
### Project structure
```
pNotes/
├── internal/
│ ├── errors/
│ ├── interfaces/
│ ├── models/
│ ├── repository/
│ ├── services/
│ └── utils/
├── frontend/
│ ├── src/
│ │ ├── components/
│ │ ├── hooks/
│ │ ├── i18n/
│ │ └── types/
│ └── package.json
├── app.go
├── main.go
└── wails.json
```
### Stack
Backend:
- Go
- Wails v2
- SQLite
- AES-256-GCM
Frontend:
- React
- TypeScript
- Vite
- react-markdown
### Architecture
- Clean separation of layers
- Repository pattern
- Service-based logic
- No external services required
## Security
- Encryption: AES-256-GCM
- Key derivation: PBKDF2 (100k iterations)
- Per-note salt and nonce
Keys are derived from the password and never stored.
All data stays local.
## License
Licensed under GNU GPL v3.0.
See the LICENSE file for details.
## Contributing
Pull requests are welcome.
1. Fork the repo
2. Create a branch
3. Commit changes
4. Open a PR
## Author
Gray
- Email: postmaster@prnz.net
- GitHub: https://github.com/PRNZ-NET
PRNZ