Whising express is a email client based on Outlook Express from Windows 98
- Multi‑account support – Add and multiple accounts.
- Unified inbox – View all accounts in one place.
- Full email handling – Read, reply, forward, delete, mark read/unread.
- Rich compose – Formatting bar, signatures, and attachments!
- Dark mode – Follows system preference or manual toggle.
- Search – Find emails by subject or sender.
- Keyboard shortcuts – Ctrl+N new mail, Ctrl+M send/receive, Del delete, etc.
- Cross Platform – The application is cross platform with EXE, web and APK builds available.
- Security – AES‑256‑GCM encrypted passwords, hashed session tokens, rate limiting, CSP headers, sandboxed email preview and DOMPurify.
You can either go to email.whising.space, or go to release -> download file for your system for native build.
I would really appreciate it!
A little bit of AI was used for helping me create the SVG's throughout the project, help me get Electron setup and create the APK Build which I used a android studio template for. AI was also used for helping me get texts like a accurate cross and stuff.
# Install Node.js 18+
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs
# Clone and copy backend files
git clone https://github.com/Whisingdilli71/WhisingExpress
mkdir -p /opt/whising-backend
cp -r WhisingExpress/mailapi/src WhisingExpress/mailapi/package*.json /opt/whising-backend/
cd /opt/whising-backend
npm install
# Create .env (generates random key)
echo "PORT=3000" > .env
echo "MASTER_KEY=$(node -e "console.log(require('crypto').randomBytes(32).toString('hex'))")" >> .env
echo "DB_PATH=/var/data/mail.db" >> .env
mkdir -p /var/data
# Install PM2 and start
sudo npm install -g pm2
pm2 start src/server.js --name mailapi
pm2 save
pm2 startup
Upload frontend files (index.html, scripts/) to Netlify manually
Update netlify.toml redirects to your backend api
# Edit allowedOrigins in src/server.js (Manually ofc)
nano src/server.js # add your frontend domain and backend domain
pm2 restart mailapi