Matthieu MALVACHE d6614fa5f7 fix(security): Update preact to fix JSON VNode Injection vulnerability
- preact: 10.28.1 → 10.28.2 (high severity fix)
- next-intl: 4.6.1 → 4.7.0 (minor update)
2026-01-08 02:12:44 +01:00

JMAP Webmail

A modern, privacy-focused webmail client built with Next.js and the JMAP protocol.

Screenshots

Login

Login

Inbox

Inbox

Email Viewer

Email Viewer

Compose

Compose

Dark Mode

Dark Mode

Settings

Settings

Features

  • Modern UI - Clean, minimalist three-pane layout
  • Dark Mode - Full dark theme support
  • Email Threading - Gmail-style conversation view
  • Real-time Updates - Push notifications for new emails
  • Keyboard Shortcuts - Navigate efficiently with hotkeys
  • Drag & Drop - Move emails between folders
  • Color Tags - Organize emails with color labels
  • Attachments - Upload and download file attachments
  • Search - Full-text email search
  • i18n - English and French language support
  • Mobile Responsive - Adaptive layout for all screen sizes

Tech Stack

  • Framework: Next.js 16 with Turbopack
  • Styling: Tailwind CSS v4
  • State: Zustand
  • Protocol: JMAP (RFC 8620)
  • i18n: next-intl

Getting Started

# Install dependencies
npm install

# Run development server
npm run dev

Open http://localhost:3000 and connect to your JMAP server.

Configuration

Create a .env.local file:

APP_NAME=Your Webmail
JMAP_SERVER_URL=https://your-jmap-server.com

Runtime vs Build-time Configuration

Variable Type Description
APP_NAME Runtime App name displayed in the UI
JMAP_SERVER_URL Runtime JMAP server URL (required)
NEXT_PUBLIC_APP_NAME Build-time Legacy fallback for app name
NEXT_PUBLIC_JMAP_SERVER_URL Build-time Legacy fallback for server URL

Runtime variables are read at request time, enabling post-build configuration (ideal for Docker).

Build-time variables are baked into the bundle and require a rebuild to change.

License

MIT

S
Description
Modern JMAP webmail client built for Stalwart Mail Server. Privacy-focused, responsive, with real-time updates.
Readme MIT
6.8 MiB
Languages
TypeScript 99.1%
CSS 0.7%
JavaScript 0.1%