Skip to content

Kolumba is a purpose-built webmail client for Stalwart Mail Server. Unlike general-purpose email clients, Kolumba speaks JMAP natively - no IMAP translation, no provider-specific APIs. Just point it at your Stalwart instance and go.

License

Notifications You must be signed in to change notification settings

Inkubator-IT/webmail

 
 

Repository files navigation

Kolumba

Modern open-source webmail client for Stalwart Mail Server, built on the JMAP protocol.

License TypeScript React

About

Kolumba is a purpose-built webmail client for Stalwart Mail Server. Unlike general-purpose email clients, Kolumba speaks JMAP natively - no IMAP translation, no provider-specific APIs. Just point it at your Stalwart instance and go.

Name origin: Columba = Latin for dove/pigeon (the classic mail carrier bird)

Features

  • Native JMAP - Full RFC 8620/8621 implementation
  • Secure by Design - Credentials never reach the browser; all JMAP communication is proxied through server functions
  • Modern UI - Clean, minimal interface inspired by modern email clients
  • Keyboard Shortcuts - Power user friendly (j/k navigate, c compose, r reply, e archive, and more)
  • Dark Mode - First-class dark mode support
  • Responsive - Works on desktop, tablet, and mobile
  • Self-Hostable - Deploy via Docker or serverless platforms

Screenshots

Coming soon

Quick Start

Prerequisites

New to Stalwart? See our Stalwart Setup Guide for step-by-step instructions on setting up Stalwart Mail Server with Docker, configuring JMAP, and creating user accounts.

Installation

# Clone the repository
git clone https://github.com/satriadhikara/kolumba.git
cd kolumba

# Install dependencies
bun install

# Start development server
bun run dev

Open http://localhost:3000 and log in with your Stalwart credentials.

Environment Variables

SESSION_SECRET=your-32-character-secret-here  # Required for production

Note: The JMAP URL is entered per-user at login, not configured globally.

Deployment

Docker

# Build the image
docker build -t kolumba .

# Run the container
docker run -p 3000:3000 -e SESSION_SECRET=your-secret kolumba

Docker Compose

version: '3.8'
services:
  kolumba:
    build: .
    ports:
      - '3000:3000'
    environment:
      - SESSION_SECRET=your-32-character-secret-here
    restart: unless-stopped

Serverless

Kolumba supports deployment to:

  • Vercel - Zero-config deployment
  • Cloudflare Workers - Via adapter
  • AWS Lambda - Via adapter

Tech Stack

Architecture

Browser (React) → TanStack Server Functions → Stalwart JMAP API

All JMAP communication happens server-side, keeping credentials secure and enabling deployment on both serverless and traditional platforms.

src/
├── routes/           # File-based routing
├── server/           # Server functions (auth, JMAP operations)
├── lib/jmap/         # JMAP protocol implementation
├── components/
│   ├── mail/         # Email-specific components
│   └── ui/           # shadcn/ui components
└── hooks/            # React hooks (keyboard shortcuts, etc.)

Keyboard Shortcuts

Key Action
j / k Navigate messages
c Compose new email
r Reply
a Reply all
f Forward
e Archive
# Delete
s Star/unstar
u Mark unread
Esc Close/back

Development

# Start dev server
bun run dev

# Run tests
bun run test

# Lint code
bun run lint

# Format and fix
bun run check

# Production build
bun run build

Roadmap

v1.0 (Current)

  • Login / authentication
  • Mailbox navigation
  • Message list with pagination
  • Message detail view
  • Compose / Reply / Forward
  • Mark read/unread, star/unstar
  • Move, delete, archive
  • Search
  • Keyboard shortcuts
  • Dark mode
  • Responsive design

Future

  • Email threading / conversation view
  • Contacts / address book (JMAP Contacts)
  • Calendar (JMAP Calendars)
  • Push notifications (JMAP EventSource)
  • Attachment preview
  • Multi-account support
  • Advanced filters / rules

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'feat: add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments


Kolumba - Modern webmail for the self-hosted era.

About

Kolumba is a purpose-built webmail client for Stalwart Mail Server. Unlike general-purpose email clients, Kolumba speaks JMAP natively - no IMAP translation, no provider-specific APIs. Just point it at your Stalwart instance and go.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 97.6%
  • CSS 2.2%
  • JavaScript 0.2%