https://github.com/jun-murakami/monaco-notepad
A cloud-synchronized notepad application built for programmers
https://github.com/jun-murakami/monaco-notepad
go golang mui mui-material react reactjs typescript wails wails-app wails2
Last synced: 3 months ago
JSON representation
A cloud-synchronized notepad application built for programmers
- Host: GitHub
- URL: https://github.com/jun-murakami/monaco-notepad
- Owner: Jun-Murakami
- License: mit
- Created: 2025-02-03T14:33:20.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2026-03-22T09:27:37.000Z (3 months ago)
- Last Synced: 2026-03-23T00:34:25.613Z (3 months ago)
- Topics: go, golang, mui, mui-material, react, reactjs, typescript, wails, wails-app, wails2
- Language: Go
- Homepage: https://jun-murakami.web.app/#monacoNotepad
- Size: 6.95 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.en.md
- License: LICENSE.txt
- Agents: AGENTS.md
Awesome Lists containing this project
README
# Monaco Notepad
**English** | [日本語](README.ja.md)
**Like OS Notepad × VS Code × Evernote divided by 10**
A programmer's notepad powered by Monaco Editor (the same engine as VS Code). Edit files directly or convert them to cloud notes and sync across devices.

[Download](https://github.com/jun-murakami/monaco-notepad/releases/latest)
## Features
### 💡 Hybrid Approach
- **Direct file editing** — Open and edit local files directly
- **Convert to cloud notes** — Transform local files into cloud notes, syncing across devices like Evernote
- **Private storage** — Cloud notes use your Google Drive (app only accesses its dedicated folder)
- **Offline ready** — Works completely without network
### 📝 Editor
- **Monaco Editor** with syntax highlighting for 50+ languages
- **Auto-save** with 3-second debounce
- **Customizable** font family, font size, and editor themes
- **Convenient features** — Word wrap and minimap toggles
- **Dark / Light mode** with smooth theme switching
- **Side-by-side view** for editing two notes simultaneously
- **Markdown preview** with GitHub Flavored Markdown (GFM) support
### 📁 Note Management
- **Basic operations** — Create, edit, archive, and delete notes
- **Folder organization** with drag-and-drop reordering
- **Full-text search** across all notes and file contents with match navigation
### 💾 Local File Editing
- **Open and edit** local files directly
- **Save / Save As** functionality
- **Unsaved changes indicator**
- **Convert to cloud notes** — Transform local files into cloud notes
- **Drag & drop** to open files
## Keyboard Shortcuts
| Shortcut | Action |
| ------------------------ | ------------------------- |
| `Ctrl/Cmd + N` | New note |
| `Ctrl/Cmd + O` | Open file |
| `Ctrl/Cmd + S` | Save file |
| `Ctrl/Cmd + Alt + S` | Save As |
| `Ctrl/Cmd + W` | Close file / Archive note |
| `Ctrl/Cmd + Tab` | Next note |
| `Ctrl/Cmd + Shift + Tab` | Previous note |
## Tech Stack
| Layer | Technology |
| -------- | ----------------------------------------------------------- |
| Backend | Go + [Wails v2](https://wails.io/) |
| Frontend | React 19 + TypeScript + Vite |
| Editor | [Monaco Editor](https://microsoft.github.io/monaco-editor/) |
| UI | Material UI (MUI) v7 |
| Sync | Google Drive API v3 |
## Building from Source
### Prerequisites (Google Drive Credentials)
To use Google Drive sync, create `backend/credentials.json`.
Create an OAuth client in Google Cloud Console, then set `client_id` and `client_secret` like this:
```json
{
"installed": {
"client_id": "XXX",
"project_id": "monaco-notepad",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_secret": "XXX",
"redirect_uris": ["http://localhost"]
}
}
```
### Development
```bash
wails dev
```
### Production
```bash
# macOS
./build_mac.sh
# Windows (PowerShell)
./build.ps1
```
## License
[MIT](LICENSE.txt)
## Author
Jun-Murakami ([official site](https://jun-murakami.web.app/))