A PRIVATE MESSAGE THROUGH TIME

Your present.
Preserved for
your future.

A quiet place for words that aren't meant for now. Write a message, encrypt it on this device, and choose the moment you’ll meet it again.

Explore the process ↓
0CAPSULES SEALED
0WAITING TO OPEN
AES-256LOCAL ENCRYPTION
TC / 001 LOCAL
⌁
A MOMENT, SEALED.
WRITE—WAIT—RETURN
23° 13' N
72° 38' E
PERSONAL ARCHIVE
NO CLOUD SYNC
AES-256-GCM✳PBKDF2 / SHA-256✳LOCAL-FIRST✳NO BACKEND✳BROWSER NATIVE✳AES-256-GCM✳PBKDF2 / SHA-256✳LOCAL-FIRST✳NO BACKEND✳BROWSER NATIVE✳
01 / THE IDEA

Not everything
needs to be shared now.

Some thoughts deserve a little distance. Time Capsule gives them a place to wait — sealed on your device, until the date you choose.

No account to create. No server to trust with your words. Just a browser, a password, and a future moment.

02 / BUILT INTO THE PROCESS

Small surface.
Deliberate mechanics.

Privacy isn't a badge here. It's a set of implementation choices — and limitations worth understanding.

ENCRYPTION PIPELINEIN-BROWSER
capsule.lifecycleJS
01const salt = randomBytes(16);
02const iv = randomBytes(12);
03const key = deriveKey(password, salt);
04const sealed = AES-GCM(message, key, iv);
05localStorage.setItem(sealed);
Illustrative pipelineNO NETWORK REQUEST

Encrypted before it is saved.

The browser derives a key from your password and encrypts the message before the app writes capsule data to LocalStorage.

01 / PER-CAPSULE✳
16 B
12 B
RANDOM SALT
RANDOM IV

Fresh cryptographic material.

Every capsule gets its own random 16-byte salt and 12-byte initialization vector.

02 / STORAGEDEVICE ONLY
⌂YOUR BROWSER
▣ENCRYPTED

No cloud in the middle.

Capsules stay in the browser's LocalStorage. This build has no account system or backend sync.

03 / TIME GATEUSER-DEFINED
WRITEWAITRETURN

The date is part of the promise.

The interface keeps a capsule locked until its chosen unlock time has arrived.

03 / THE LIFECYCLE

A simple sequence.
A meaningful return.

The product is intentionally small. Its job is to preserve the message, not become another place to manage your life.

01WRITECompose your message
→
02ENCRYPTSeal in this browser
→
03WAITUnlock time approaches
→
04OPENDecrypt with password
CLIENT-SIDE FLOWNO ACCOUNT · NO CLOUD SYNC
04 / YOUR PRIVATE ARCHIVE

My Capsules.

Your encrypted timeline, stored in this browser.

0TOTAL
0LOCKED
05 / SECURITY MODEL

Understand what
protects your words.

Specific primitives. Clear boundaries. No claim of perfect security.

A / ENCRYPTION256bit

AES-GCM

Authenticated encryption using a 256-bit key, with a fresh 12-byte IV for each capsule.

B / KEY DERIVATION210k

PBKDF2 · SHA-256

210,000 iterations and a unique 16-byte salt are used to derive the capsule key from its password.

C / PERSISTENCE0 servers

LocalStorage

The app stores encrypted capsule data in this browser. It does not synchronize between devices.

D / INTEGRITYSHA256

Ciphertext fingerprint

A fingerprint is recalculated on opening for comparison. AES-GCM performs the message authentication check.

06 / BEGIN YOUR TIMELINE

Leave a note
for who you'll be.

Choose a date. Seal the words. Let time do the rest.