Back to browse
GitHub Repository

A modern, type-safe and standards-compliant SDK for building JMAP-based applications in TypeScript

6 starsTypeScript

Jmap-kit – a TypeScript library for JMAP client applications

by LachlanHunt·Mar 9, 2026·2 points·0 comments

AI Analysis

●●SolidNiche GemCozy

Four years crafting type-safe JMAP when Fastmail and Thunderbird are betting on it.

Strengths
  • Result references chain dependent method calls in single requests without extra round trips
  • Plugin system adds validation and transformation hooks at each request processing stage
  • Automatic capability URI inclusion and server limit enforcement prevents protocol violations
Weaknesses
  • JMAP adoption remains limited despite Fastmail and Thunderbird support
  • Zero GitHub stars after 4 years suggests minimal community traction or visibility
Category
Target Audience

Email client developers, TypeScript engineers building JMAP applications

Similar To

imapflow · node-imap

Post Description

Over the past 4 years, as a casual on-and-off side project, I built jmap-kit, a client library implementing the JMAP protocol for client applications. It started as a hobby project for me to write custom automations for my email.

See the jmap-kit GitHub repo https://github.com/lachlanhunt/jmap-kit

Full documentation including development guide and API reference. https://lachlanhunt.github.io/jmap-kit/

JMAP (JSON Meta Application Protocol) is a modern protocol designed to replace IMAP and related protocols using JSON and HTTP for email, calendar, contacts, and more. It’s already used in production by providers like Fastmail, planned for Mozilla’s upcoming Thundermail service, and supported by several open-source mail servers.

The library, built entirely in TypeScript, provides a type-safe API for building JMAP-compliant requests and dispatching responses. It is fully extensible, with a plugin architecture that allows additional capabilities (both standardised and vendor extensions), and can be adapted to work with any HTTP library (fetch, axios, etc.). It is framework-agnostic and can be used on both the frontend and backend.

Similar Projects