Back to selected work
PROJECT / 07

Recallry

BROWSER ENGINEERING / LOCAL-FIRST
Browser extension · release candidate

Keep what matters. Keep it yours.

Browser extensionsCybersecurityDeveloper tools
THE CONTEXT

Make a personal browser archive searchable, recoverable and locally owned.

THE KEY DECISION

Keep data in IndexedDB, protect vault collections and make backup explicit.

THE RESULT

A release candidate with capture, search, encrypted collections and validated restore.

TAKE A CLOSER LOOKSELECT A STAGE ↓
SCROLL TO TRACE. SELECT TO EXPLORE.

Follow the connections as you scroll, or select a stage to see what happens there.

HOW IT WORKS / A SYSTEM IN THREE MOVEMENTS
01

Capture & collect

Explicit browser capture adds pages to local, structured collections.

02

Find & protect

Search reconnects the useful fragments; a vault encrypts sensitive records at rest.

03

Export & restore

Validated backups provide an explicit path to another browser or device.

THE SHORT STORY

A local-first visual collection extension for Chrome and Edge, joining everyday capture with deliberate storage, encrypted-vault and recovery boundaries.

PROJECT TYPE

Browser & local-data engineering

FOCUS

Browser extensions + Cybersecurity + Developer tools

STATUS

Browser extension · release candidate

/01

The question.

A collection is useful only if it remains findable and recoverable. Local ownership also needs clear limits: installing an extension on another computer does not move its data.

/02

The approach.

Manifest V3 capture feeds a Dexie/IndexedDB repository layer. Search and nested collections organize the archive. Vault content uses AES-GCM with a wrapped data key and PBKDF2-SHA-256 derivation; browser-session locking controls access. Validated JSON backup and atomic restore provide explicit portability.

/03

What came out of it.

The release candidate includes capture, search, bulk operations, protected collections and recovery checkpoints. Public store publication and final human release checks are separate tasks. The scene ends with an export package, not a fictitious cloud sync.

A FEW DETAILS WORTH A CLOSER LOOK
01

Storage behind one boundary

Persistent operations pass through the repository layer, with explicit migrations and validated imports.

02

A key has a lifecycle

The wrapped data key is coordinated through trusted extension session storage; lock, inactivity and restart clear the unlocked session.

03

Portability is explicit

JSON export and import transfer the library. Local recovery points help with mistakes, but are not remote disaster recovery.

Under the surface.

Browser
Chrome/Edge Manifest V3 · TypeScript · React
Local data
IndexedDB · Dexie · collections · search · migrations
Protection & recovery
AES-GCM · PBKDF2-SHA-256 · wrapped data key · validated backup
SCOPE & LIMITS
  • No cloud sync or automatic cross-device transfer.
  • Vault encryption at rest does not protect an already-unlocked device from its controller.
  • Release candidate; no Chrome Web Store availability is claimed.
KEEP THE CURIOSITY GOING
NEXT PROJECT / 08

Autonomous Vulnerability Scanner

Have an idea of your own? Let’s talk