Skip to main content

Skiff Features

Skiff provides a complete suite of privacy-first productivity tools. All features are built with end-to-end encryption as the foundation, ensuring your data remains private and secure.

Skiff Mail Features

Skiff Mail is a fully-featured email client with end-to-end encryption for all messages between Skiff users.

End-to-End Encryption

All messages between Skiff users are automatically end-to-end encrypted using asymmetric cryptography

External Email Support

Send and receive emails from Gmail, Outlook, and other providers while keeping local copies encrypted

Rich Text Composer

Compose emails with rich formatting, attachments, and inline images using TipTap editor

Schedule Send

Schedule emails to be sent at a specific time in the future

Email Aliases

Create multiple email aliases to organize and protect your identity

Custom Domains

Use your own domain for professional email addresses

Labels & Filters

Organize emails with custom labels and automated filtering rules

Bulk Actions

Perform actions on multiple emails simultaneously for efficient inbox management

Mail-Specific Technologies

The email application leverages several specialized libraries from the monorepo:
// From skemail-web/package.json
import { encryptSymmetric } from 'skiff-crypto';
import { generatePublicPrivateKeyPair } from 'skiff-crypto';
Key dependencies include:
  • Email parsing: eml-format for parsing email files
  • File handling: file-saver for downloading attachments
  • Drag & Drop: react-dnd for message organization
  • Rich text: TipTap extensions for email composition

Skiff Calendar Features

Private calendar application with end-to-end encryption for all event details, attendees, and metadata.

Encrypted Events

Event titles, descriptions, locations, and attendee lists are all end-to-end encrypted

Multiple Views

View your schedule in day, week, month, or agenda formats

Event Scheduling

Create events with attendees, reminders, and recurring patterns

Participant Suggestions

Smart suggestions for event participants based on your contacts

Time Zone Support

Automatic time zone handling for global scheduling

Import/Export

ICS file support for importing and exporting calendar events

Calendar Technologies

// Calendar event encryption
import { decryptSessionKey } from 'skiff-crypto';
import { ICS } from 'skiff-ics';
The calendar application includes:
  • ICS support: Custom skiff-ics library for calendar file handling (libs/skiff-ics:1)
  • Date handling: dayjs for flexible date operations
  • Time zones: timezones-list for comprehensive timezone support
  • Encrypted storage: All events encrypted before sync

Skiff Pages Features

Collaborative document editor with real-time collaboration and end-to-end encryption.

Rich Text Editing

Full-featured document editor powered by ProseMirror with collaborative editing

Mathematical Equations

LaTeX support for mathematical notation using KaTeX

Code Blocks

Syntax highlighting for 15+ programming languages via CodeMirror

Tables & Lists

Advanced table editing with merged cells and complex formatting

Images & Embeds

Insert and resize images, with support for drag-and-drop uploads

Real-time Collaboration

Multiple users can edit documents simultaneously with conflict resolution

Version History

Track changes and restore previous versions of documents

Export Options

Export documents as PDF, Markdown, or plain text

Pages Editor Technologies

The Pages editor is built on the skiff-prosemirror library (libs/skiff-prosemirror:1):
// Rich text editor with encryption
import { EditorSchema } from 'skiff-prosemirror';
import { encryptDatagramV2 } from 'skiff-crypto';
Supported languages for code blocks:
  • JavaScript, TypeScript, Python, Rust
  • C++, Java, PHP, SQL
  • HTML, CSS, Markdown, JSON
  • And more via CodeMirror extensions

Skiff Drive Features

Secure file storage with end-to-end encryption for all uploaded files and folder structures.

Encrypted Storage

All files are encrypted on your device before upload using symmetric encryption

File Sharing

Share files and folders with other Skiff users while maintaining encryption

Folder Organization

Organize files in nested folders with encrypted names and metadata

File Preview

Preview PDFs, images, and documents without downloading

Drag & Drop Upload

Upload multiple files via drag-and-drop interface

Version Control

Track file versions and restore previous versions

Drive Technologies

// File encryption and compression
import { encryptSymmetric } from 'skiff-crypto';
import { zip, unzip } from 'fflate';
Key libraries:
  • Compression: fflate for fast file compression
  • File handling: jszip for ZIP archive creation
  • PDF generation: jspdf for PDF creation
  • Preview: react-pdf for PDF viewing

Cryptography Features

The skiff-crypto library (libs/skiff-crypto:1) provides the cryptographic foundation for all Skiff applications.
ChaCha20Poly1305-based symmetric encryption for file and message content:
const symmetricKey = skiffCrypto.generateSymmetricKey();
const TestDatagram = skiffCrypto.createJSONWrapperDatagram('ddl://test');
const encrypted = skiffCrypto.encryptSymmetric(plaintext, symmetricKey, TestDatagram);
TweetNaCl-based asymmetric encryption for key exchange and user-to-user encryption:
const keypair = skiffCrypto.generatePublicPrivateKeyPair();
const encrypted = skiffCrypto.stringEncryptAsymmetric(
  keypair.privateKey, 
  { key: keypair.publicKey }, 
  plaintext
);
Version-aware data structure for managing encrypted objects with metadata:
  • Automatic versioning for backward compatibility
  • Integrity verification with checksums
  • Efficient serialization with Protocol Buffers
Secure key derivation using Argon2 for password-based encryption:
import argon2 from 'argon2-browser';
// Used for deriving encryption keys from user passwords

Search Features

Skiff implements private, client-side search across all applications using the skiff-front-search library (libs/skiff-front-search:1).

Encrypted Indexing

Search indexes are created locally and stored encrypted

Fast Search

MiniSearch engine provides instant results across thousands of items

Full-Text Search

Search email content, document text, and file names

Web Worker

Search runs in background threads to maintain UI responsiveness

Search Implementation

// From skiff-front-search
import MiniSearch from 'minisearch';
import { decryptSearchIndex } from 'skiff-crypto';

// Search runs in Web Workers for performance
import { wrap } from 'comlink';
Learn more about Skiff’s private search in the blog post.

Additional Features

Dark Mode

System-aware dark mode for comfortable viewing

Keyboard Shortcuts

Extensive keyboard shortcuts via react-hotkeys

Mobile Responsive

Fully responsive design for mobile devices

Offline Support

Service workers enable offline access to cached data

Multi-language

Support for multiple languages and locales

Accessibility

ARIA labels and keyboard navigation for accessibility

Developer Features

For developers working with Skiff:
The Skiff monorepo includes shared libraries that can be used independently:
  • skiff-crypto: Cryptographic functions
  • skiff-utils: Utility functions
  • skiff-front-utils: Frontend utilities
  • nightwatch-ui: UI component library

Key Technologies

TechnologyPurposeVersion
ReactUI Framework17.0.2
TypeScriptType Safety5.0.0+
Apollo ClientGraphQL Client3.5.10+
Redux ToolkitState Management1.8.0+
ProseMirrorRich Text Editing1.x
TweetNaClCryptography1.0.3
All dependencies and versions are managed via Yarn workspaces for consistent builds across the monorepo.

Build docs developers (and LLMs) love