A minimalist, privacy-focused personal journal with AI assistance
- Modern Editor: Built on TipTap with markdown support, code blocks, and more
- Auto-Save: Never lose your thoughts with automatic saving
- Calendar View: Navigate entries easily with an intuitive calendar interface
- Mood Tracking: Record your daily mood with emoji indicators
- Daily Quotes: AI-generated inspirational quotes to spark creativity
- Text Polish: Enhance your writing with AI-powered refinement
- Translation: Translate content to multiple languages
- Grammar Fix: Automatically correct grammar mistakes
- Word Dictionary: Select a word to get phonetic, definitions, and etymology
- History: Track all AI operations for each entry
- Save Words: Save translated words to your personal vocabulary
- Dictionary View: View words with phonetic transcription and definitions
- Date Organization: Browse vocabulary by day or month
- Anki Export: Export vocabulary to Anki-compatible TSV format for flashcard learning
- Sidebar Access: Quick access to today's vocabulary from the editor
- Multiple Providers: Support for Qwen (阿里云) and Murf.ai
- Voice Selection: Choose from various voice options
- Speed Control: Adjust playback speed (Murf provider)
- Audio Playback: Built-in audio player powered by Howler.js
- Writing Statistics: Track total entries, current streak, and longest streak
- Mood Analytics: Visualize your emotional patterns over time
- Full-Text Search: Quickly find entries with powerful search capabilities
- Cloud Sync: Synchronize your entries across devices via Supabase
- Import/Export: Backup and restore your data as JSON
- Privacy First: All data stored locally on your device by default
- Cross-Platform: Available on Windows, macOS, and Linux
- Node.js 18+ and pnpm
- Rust and Cargo
- System dependencies for Tauri (see Tauri Prerequisites)
# Clone the repository
git clone https://github.com/fan-tastic-z/echo-daily.git
cd echo-daily
# Install dependencies
pnpm install
# Run in development mode
pnpm tauri devComing soon! Releases will be available on GitHub Releases.
echo-daily/
├── src/ # Frontend source (React + TypeScript)
│ ├── components/ # React components
│ ├── lib/ # API layer
│ ├── store/ # State management (Zustand)
│ └── types/ # TypeScript types
├── src-tauri/ # Backend source (Rust)
│ ├── src/
│ │ ├── ai/ # AI provider implementations
│ │ ├── db/ # Database queries and migrations
│ │ ├── tts/ # Text-to-speech providers
│ │ └── keychain/ # Secure storage for API keys
│ └── capabilities/ # Tauri capability configurations
└── Cargo.toml # Rust dependencies
# Development
pnpm tauri dev # Start dev server with hot reload
# Building
pnpm tauri build # Build production binaries
pnpm build # Build frontend only
# Linting & Formatting
pnpm exec eslint . # Lint frontend code
pnpm exec prettier --write . # Format code
# Type checking
pnpm exec tsc --noEmit # Check TypeScript types
# Rust
cargo check # Check Rust code
cargo test # Run Rust tests
cargo clippy # Lint Rust codeLinux (Arch/Manjaro):
- AppImage bundling may fail due to
linuxdeploycompatibility with newer system libraries - The build produces working DEB and RPM packages successfully
- If you encounter AppImage build errors, the packages are still available in
src-tauri/target/release/bundle/
Output Artifacts:
- Linux:
.deb,.rpm,.AppImagebundles - Windows:
.exeinstaller - macOS:
.dmginstaller,.appbundle
Frontend:
- Framework: React 19.1 with TypeScript
- Editor: TipTap (ProseMirror-based)
- Styling: Tailwind CSS
- State: Zustand
- Audio: Howler.js
- Icons: Lucide React
- Code Quality: ESLint 9, Prettier
Backend:
- Framework: Tauri 2.0
- Database: SQLite with SQLx
- AI: 智谱 AI (Zhipu AI)
- TTS: Qwen, Murf.ai
- Sync: Supabase (optional, self-hosted)
- Security: Platform keychain for API keys
TODO: Add screenshots here
- Click the wand icon (🪄) in the header
- Enter your Zhipu AI API key
- Configure model settings
- Click the speaker icon (🔊) in the header
- Choose your provider (Qwen or Murf.ai)
- Enter your API key
- Select voice and adjust speed
- Click the cloud icon (☁️) in the header
- Configure your Supabase project:
- Enter your Supabase URL and anon key
- Set up the required database tables
- Enable sync to keep your entries synchronized across devices
- Manual sync or automatic sync on save
- Click the book icon (📖) in the header to open the vocabulary panel
- Browse saved words by date or view all words
- Click "Export to Anki" to download vocabulary as TSV file
- Import the TSV file into Anki for flashcard learning
- Click the database icon (💾) in the header
- Export: Save all your data as a JSON file
- Import: Restore from a previous backup
- Mobile apps (iOS/Android)
- Plugin system
- Custom themes
- End-to-end encryption
- More AI providers
- Attachment support (images, files)
This project is licensed under the MIT License - see the LICENSE file for details.
- Tauri - Cross-platform desktop framework
- TipTap - Rich text editor framework
- Zhipu AI - AI services provider
- Supabase - Backend as a service for sync
- Howler.js - Audio library for reliable playback
- Lucide - Beautiful icons
Made with ❤️ by fan-tastic-z
⭐ Star us on GitHub — it helps!