New
Apps 1,895Makers 1,890This week 1,690
Promote your app−30%
Kisa screenshot 1
0views in
the last 30 days

Kisa

A fast, local-first email client built for the desktop.

Built with Claude Code

by davutac · Unclaimed · from DEGermany · added Oct 29, 2026
no ratings0 comments

A fast, local-first Gmail client built for the desktop.

Kisa caches and indexes mail locally for fast search, handles multiple Google accounts, and isolates untrusted content behind a narrow Electron security boundary.

Kisa is under active development.

Download

Download the latest release:

Platform Download
macOS (Apple silicon) DMG
Windows Installer
Linux AppImage

See the latest release for release notes and checksums.

Why Kisa

I started Kisa when Notion announced that Notion Mail will shut down on September 22, 2026. Rather than return to Gmail in a browser, I began building the fast, keyboard-first client I wanted.

  • Mailbox-scale performance. Local caching, full-text search, virtualized lists, and resumable indexing keep large mailboxes responsive.
  • Recoverable spam. A dedicated Spam mailbox surfaces newly classified mail without adding notifications or Inbox noise, and Not spam returns false positives to Inbox.
  • Keyboard-first workflow. Switch accounts, search, compose, and navigate without the mouse.
  • Privacy by default. OAuth credentials stay in the main process, and the local database is encrypted. Message HTML is isolated, and remote images are blocked until allowed.
  • Built for multiple accounts. Caches, indexes, sync state, and mutations stay account-scoped, with an All Accounts view across them.

Tech stack

Area Technology
Desktop Electron
Interface React, TypeScript, Tailwind CSS, shadcn
Application runtime Effect
Routing and state TanStack Router, Zustand
Local data better-sqlite3-multiple-ciphers, Drizzle ORM, FTS5
Gmail integration Gmail API client, OAuth 2.0 with PKCE
Tooling pnpm, Turborepo, Vite, Vitest, Ultracite

Architecture

Privileged capabilities stay in Electron's main process. The sandboxed renderer accesses them only through the typed window.desktopBridge; Effect Schema validates every IPC request, result, and event.

Synchronous database work runs in a utility process, keeping Electron's main thread unblocked. Gmail sync and indexing are bounded, resumable, and yield to foreground actions.

React feature or hook
  -> renderer platform adapter
  -> typed preload bridge
  -> schema-validated Electron IPC
  -> main-process service
     -> Gmail API, or
     -> database utility process -> SQLite

See the desktop architecture and Gmail API capabilities for details.

Repository

  • apps/desktop — Electron main, preload, database process, and React renderer.
  • packages/database — database client, runtime, schemas, and migrations.
  • packages/gmail — Gmail domain models, services, and boundaries.
  • docs/architecture — current architecture and feature contracts.

Run from source

pnpm 12.4.2 is pinned through packageManager.

Dependency versions live in pnpm-workspace.yaml. Effect and @effect/vitest use the same stable v4 release (currently 4.0.6) with Vitest 5. Astro's checker uses the separate TypeScript 6 catalog because it requires the JavaScript compiler API. Upgrade @effect/tsgo, TypeScript, Oxlint, and oxlint-tsgolint together after checking the matching patch artifacts.

The verified lint toolchain is @effect/tsgo 0.36.5, Oxlint 1.78.0, and Ultracite 7.10.5. Newer releases require a separate React Compiler lint migration and currently flag valid TypeScript schema/type name pairs as redeclarations. Keep these versions together until they can pass the existing checks without additional suppressions.

OpenCode uses the 2.1.4 client. Scoped overrides keep its Effect peer and schema/protocol dependencies on the workspace Effect catalog. See AI writing for provider lifecycle and isolation details.

pnpm install
pnpm dev

To run only the desktop:

pnpm --dir apps/desktop dev

Development uses <userData>/database/app.dev.sqlite and its own sealed key, separate from the installed app's app.sqlite database and key.

Google authorization uses the user's own Desktop OAuth client, the system browser, PKCE, and a temporary loopback callback. Kisa does not ship shared Google credentials. Follow Connect Kisa to Google to create a personal Google Cloud project and import its credentials JSON.

Verification

Run all checks with:

pnpm check
pnpm typecheck
pnpm test
pnpm build

Packaging and releases

Build packages with pnpm build:mac, pnpm build:win, or pnpm build:linux. pnpm build:unpack creates an unpacked app.

Release by exact version or bump type:

pnpm release patch
pnpm release 0.1.0

The helper requires a clean tree, runs checks, updates apps/desktop/package.json, commits, tags, and pushes unless --no-push is supplied.

Inspiration

Kisa borrows T3 Code's narrow, typed Electron boundaries, adapted to a local-first mail client without its server and RPC layer. See the detailed comparison.

License

Kisa is MIT licensed.

Description taken from the repository README.

Ratings

–
0 ratings
5 0
4 0
3 0
2 0
1 0

Rate this app

Sign in to rate

Comments 0

Sign in to comment

No comments yet.

Related apps

#email · #desktop · #local-first