MyVoiceRecorder is a secure, local-first desktop application for high-quality voice recording and management. Designed with a focus on simplicity and accessibility, it allows users to capture audio, manage recordings across multiple accounts, and customize their experience with adjustable typography and theme controls.
- Local-First Architecture: All data and recordings are stored on your machine. No cloud required.
- Multi-Account Support: Securely manage multiple user profiles with independent settings and recording libraries.
- High-Quality Recording: Encodes audio in OGG Vorbis format using a WASM-based engine for platform consistency.
- Accessibility First: Kindle-style font size controls and a seamless Dark/Light mode toggle.
- Custom Storage: Choose exactly where your recording files are saved on your system.
- Secure Authentication: Local password hashing using bcrypt and a secure offline password reset flow.
- Core: Electron JS
- Build System: electron-vite
- Database: PostgreSQL (Local)
- Frontend: HTML5, Vanilla CSS, Modern ES6+ JavaScript
- Audio Engine: MediaRecorder API with libvorbis.js (WASM) fallback
- Node.js (v18 or higher recommended)
- PostgreSQL (Ensure a local server is running)
-
Clone the repository:
git clone https://github.com/yourusername/my-voice-recorder.git cd my-voice-recorder -
Install dependencies:
npm install
-
Setup the Database: Ensure your PostgreSQL service is running, then run the initialization script:
npm run setup-db
Note: This creates the
my_voice_recorderdatabase and necessary tables.
Start the application in development mode with hot-reload:
npm run devTo package the application for production:
# Build the project
npm run build
# Preview the build
npm run preview├── db/ # SQL schema and migrations
├── prd & design/ # Design assets and product requirements
├── scripts/ # Database initialization scripts
├── src/
│ ├── main/ # Electron main process (IPC, DB, Protocol)
│ └── renderer/ # Frontend UI, Audio Engine, and Logic
├── electron.vite.config.mjs # Build configuration
└── package.json # Dependencies and scripts
- Data Privacy: No audio or user data ever leaves your computer.
- Passwords: Hashed locally using
bcryptjs(10 rounds). - Session Safety: Deep-linking protocol (
myvoicerecorder://) used for secure local password recovery tokens.
This project is licensed under the MIT License.