A simple, lightweight, and fast note-taking application built with Rust and Freya.
Notepad App is a minimalist desktop application designed for quick and efficient note-taking. Built entirely in Rust, it offers exceptional performance and a clean, distraction-free interface. Your notes are automatically saved in JSON format, ensuring your data is always secure and easily accessible.
Note: This application is compatible with Linux, macOS, and Windows.
| Feature | Description |
|---|---|
| Create Notes | Add new notes with custom title and content through an intuitive popup dialog |
| Delete Notes | Remove unwanted notes with a single click |
| Auto-Save | All changes are automatically persisted to a local JSON file |
| Welcome Screen | Friendly welcome message displayed when no notes exist |
| Lightweight | Minimal resource usage thanks to Rust's efficiency |
| Fast Startup | Launch instantly with no loading delays |
| Clean UI | Distraction-free interface focused on productivity |
| Portable Data | Notes stored in human-readable JSON format |
| Platform | Status |
|---|---|
| Linux | ✅ Fully Supported |
| macOS | ✅ Fully Supported |
| Windows | ✅ Fully Supported |
-
For running the binary:
- Linux, macOS, or Windows operating system
- GUI environment (X11/Wayland on Linux, native on macOS/Windows)
-
For building from source:
- Rust toolchain (Edition 2024)
- Cargo (included with Rust)
- Go to the Releases page
- Download the latest
notepad_appbinary - Make it executable and run:
chmod +x notepad_app
./notepad_appClone the repository and build with Cargo:
# Clone the repository
git clone https://github.com/Erikgavs/notepad.git
cd notepad
# Build in release mode (optimized)
cargo build --release
# The binary will be at: target/release/notepad_app# If built from source
./target/release/notepad_app
# Or if downloaded binary
./notepad_app| Action | How to |
|---|---|
| Create a note | Click the "New note" button, fill in the title and content, then confirm |
| View notes | All notes are displayed in the main window as a list |
| Delete a note | Click the "Remove" button on any note |
Your notes are automatically saved to a file called notas.json in the same directory where the application runs. This file:
- Is created automatically on first use
- Updates instantly when you add or delete notes
- Uses human-readable JSON format
- Can be backed up or transferred to another machine
Example notas.json structure:
[
{
"title": "My First Note",
"content": "This is the content of my note."
},
{
"title": "Shopping List",
"content": "Milk, eggs, bread, butter"
}
]notepad/
├── Cargo.toml # Project manifest and dependencies
├── README.md # This file
├── .gitignore # Git exclusions
├── notas.md # Development notes
└── src/
└── main.rs # Application source code
cargo runcargo build --releaseThe application follows a simple and clean architecture:
Notestruct: Represents a single note withtitleandcontentfieldsload_notes(): Reads and deserializes notes from the JSON filesave_notes(): Serializes and writes notes to the JSON fileapp(): Main UI component using Freya's reactive signal system
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Note search functionality
- Categories/Tags for notes
- Dark/Light theme toggle
- Export to different formats (TXT, Markdown)
- Note encryption
- Cloud sync support
- Notes are stored locally (no cloud sync yet)
This project is licensed under the MIT License - see the LICENSE file for details.
Developed with ❤️ by Erikgavs
If you find this project useful, please consider giving it a star on GitHub! It helps others discover the project.