Home | Work | Play | Photos | Contact | About



Home > Work > Interact


Interact is a project I've been working on since 2004. It's a database in which all data is encrypted on the client, and securely synchronised across devices using a distributed server network.

Interact has forms to search for, display and enter data. Data items support a variety of standard field types. Changes to items are tracked, allowing their history to be inspected, or reverted to a prior state. Interact encrypts and saves data to a local storage file, and automatically synchronises encrypted data across devices via a zero-knowledge server.


More screen shots are available here.

How it works

Interact centres around three things - templates, items and links. Templates define items, so they're analogous to database table definitions. Items are like table records. The interesting bit is that an item contains the template, as well as data. This means future changes to a template won't affecting items based on older versions of the template. Data structure therefore evolves independently of data. Finally, links define relationships between items. This is the process:

Create template
Create fields
Select template
Create item
Save item
Sync item
Select item
Create link
Save link
Sync link

If for example, you created a template describing a person, you might then create an item using that template:

Template   Item based on Person
First name String
Surname String
Birth date Date
Email Email
John Smith
First name String John
Surname String Smith
Birth date Date 25 April 1990
Email Email

Items can be tagged with labels. Also, a complete change log is held for all items. This means that an item can be reverted to any prior state. It's a bit like - no wait, it is records management for structured data.

Technical scope


Data synchronization


What Interact doesn't do

More information

< Back to Work | ^ Back to top

All content copyright © Michael Wittenburg 1995 to 2021. All rights reserved.
Merch (t-shirts designed by my twin)