codeOpen Source

Built in the Open

Keeplas is open source. Inspect the code that protects your legacy, contribute to its evolution, or build on top of it.

folder_open

Source Code

The full Keeplas platform lives in a single monorepo. Every line of code that handles your data is auditable, reviewable, and open to community scrutiny.

AGPL-3.0

Life Continuity Platform -- Zero-knowledge digital legacy vault

TypeScriptConvex
star--fork_right--group--
menu_book

Developer Guides

Deep dives into running, contributing to, and understanding Keeplas.

balance

License & Contribution Terms

Keeplas uses a strong copyleft license for the public codebase together with a contributor agreement for inbound changes.

Repo License

AGPL v3

gavel

The public repository is released under the GNU Affero General Public License v3.

LICENSE
  • checkIf you modify and deploy the software as a network service, you must make the corresponding source available under the same license.
  • checkThe AGPL applies to repository materials that are explicitly released under that license.
  • checkKeeplas trademarks, branding, and hosted service operations are not granted beyond the scope of the applicable license.
Inbound Contributions

Contributor License Agreement

contract

External contributions are accepted subject to a Contributor License Agreement.

CLA.md
  • checkContributors confirm that they are authorized to submit their work.
  • checkAccepted contributions may be used, sublicensed, relicensed, or transferred by Keeplas in accordance with the CLA.
  • checkThe CLA is intended to preserve long-term commercial flexibility while keeping the public repository open.

For use of the hosted product, review the Terms of Service in addition to the repository license files.

arrow_forwardRead the Terms of Service
architecture

Architecture Overview

A zero-knowledge architecture where the server only ever holds ciphertext. Built on a modern, type-safe stack engineered for security, performance, and developer experience.

web

Next.js 16 + React 19

App Router, Turbopack, PWA-ready

components

TypeScript 5

Full type safety end-to-end

code

Tailwind CSS v4

shadcn/ui + Radix design system

palette

Convex

Realtime backend & DB, cloud or self-hosted

database

Convex Auth + Passkeys

WebAuthn, phishing-resistant, no OAuth

sync

Turborepo + pnpm

Monorepo, Docker-pinned CI

Simplified Encryption Flow

key

24-Word Phrase

Root secret, on-device

arrow_downward
transform

Argon2id

Derives your keys

arrow_downward
lock

AES-256-GCM

Vault encryption

arrow_downward
vault

ML-KEM-768

Post-quantum wrap

arrow_downward
send

Conditional Delivery

Life Check + Shamir

handshake

Contributing

We welcome contributions from developers of all experience levels. Here is how to get started.

01fork_right

Fork & Clone

Get the code and set up your local development environment. We use pnpm for package management.

02edit_note

Make Changes

Follow our coding standards, write tests for new functionality, and keep commits focused and atomic.

03merge

Submit PR

Open a pull request. Our team will review the code, CI checks will run automatically, and we will merge once approved.

gavel

Code of Conduct

We are committed to providing a welcoming and inclusive experience for everyone. All contributors are expected to uphold our code of conduct, fostering respectful and constructive collaboration.

bug_report

Good First Issues

New to the project? Look for issues labeled good first issue in our GitHub repository. These are curated tasks perfect for getting familiar with the codebase.

api

API & SDK

Coming Soon

Programmatic access to Keeplas functionality. Integrate legacy planning directly into your applications.

cloud

REST API

Programmatic access to vault operations, life check management, and delivery-rule configuration.

GET /api/v1/vault/items
Authorization: Bearer <token>

{
  "items": [...],
  "total": 42
}
javascript

JavaScript SDK

An npm package for seamless web integrations. Type-safe, tree-shakable, and built for modern bundlers.

import { Keeplas } from '@keeplas/sdk'

const client = new Keeplas({
  apiKey: process.env.KEEPLAS_KEY
})

await client.vault.list()
webhook

Webhooks

Real-time notifications for Life Check events, delivery triggers, and vault activity.

POST /your-endpoint
Content-Type: application/json

{
  "event": "life_check.missed",
  "user_id": "usr_...",
  "timestamp": "2026-03-31T..."
}
dns

Self-Hosting

Run Keeplas on your own infrastructure. Full control over your data, your way.

Requirements

  • deployed_codeNode.js 20+ & pnpm 10+
  • databaseA Convex deployment (cloud or self-hosted)
  • terminalDocker (optional dev environment)
terminal
$ pnpm bootstrap
$ pnpm dev

Join the Community

Whether you are a contributor, auditor, or builder -- there is a place for you in the Keeplas ecosystem.