What Flippy stores, and what it can read.
With end-to-end encryption on, your notes, todos, calendar events, saved links and AI prompts are encrypted on your device before they are stored. Flippy's servers only ever receive a locked version of those fields that nobody can read without your passphrase. Below is every field, one by one: the ones that leave your device encrypted, the ones the server can still read, and why.
This list is generated from the very code that does the encrypting, so it cannot drift from what the extension actually does. Encryption is optional and off until you enable it in the extension (Settings → Encryption). Until then, every field is stored readable.
fields encrypted on your device: titles, bodies, dates, links, prompts, images.
fields the server can read: identifiers, positions, timestamps and the ciphertext itself. Each one says why below.
kinds of records that are never encrypted: your account, your wrapped keys, sharing, reading progress, preferences.
Zero knowledge, by construction
Your passphrase never leaves your device. It is separate from your Google or email sign-in and we cannot reset it. A key is derived from it on your device and used to unwrap your data key.
One key per account, wrapped twice. The server stores your data key only in wrapped (encrypted) form: once under your passphrase, once under your recovery code. It can decrypt neither.
Content fields are sealed per row with AES-256-GCM into a single encrypted_blob column and the plaintext columns are emptied. Metadata such as identifiers, positions and timestamps stays readable so lists sort, group and share without the key.
Images in notes and files attached to tasksare encrypted as files with the same key before upload; their names in storage are random ids, and an attachment's real file name and type are encrypted in its record.
Not yet on mobile. The Flippy mobile app cannot read encrypted data today; your data appears locked there until an update ships.
Every field, and where it stands
Notes
Tabletools_notesEncrypted on your device
- Title
title - Note body (rich text)
content - Plain-text copy of the note (for search)
plain_text - Which image files the note uses
image_paths
Readable by the server
- List or notebook it belongs to
collection_idWhich list or notebook, by id; the name itself is encrypted.
- Identifier
idA random id; carries no content.
- Owner (your account id)
user_idTies the row to your account.
- Position in the list
sort_orderNeeded to sort the list without the key.
- Created on
created_atA timestamp only.
- Last changed
updated_atA timestamp only.
- Last opened
last_accessed_atA timestamp only.
- The encrypted content (ciphertext)
encrypted_blobWhere the encrypted fields live. Unreadable without your key.
Images in notes
Storage bucketnotes-imagesEncrypted on your device
- The image itself
object
Readable by the server
- File path and name
nameStorage bookkeeping; the name is a random id.
- File size
metadata.sizeStorage bookkeeping; the name is a random id.
- Upload time
created_atA timestamp only.
Todos
Tabletools_todolistEncrypted on your device
- Task text
text - Done or not
completed - Priority
priority - Due date
due_date - When it was completed
completed_at - Task details
content - Shop (shopping lists)
shop - Quantity (shopping lists)
quantity - Picked while shopping
shopping_selected
Readable by the server
- Pomodoros done on the task
pomodoro_countA number, not text.
- Pomodoro length for the task
pomodoro_minutesA number, not text.
- List or notebook it belongs to
collection_idWhich list or notebook, by id; the name itself is encrypted.
- Assigned to (shared lists)
assignee_idNeeded for shared lists to work.
- Assigned by (shared lists)
assigned_by_idNeeded for shared lists to work.
- Identifier
idA random id; carries no content.
- Owner (your account id)
user_idTies the row to your account.
- Position in the list
sort_orderNeeded to sort the list without the key.
- Created on
created_atA timestamp only.
- Last changed
updated_atA timestamp only.
- The encrypted content (ciphertext)
encrypted_blobWhere the encrypted fields live. Unreadable without your key.
Todo attachments
Tabletools_todo_attachmentsEncrypted on your device
- File name
file_name - File type
mime_type
Readable by the server
- Task it belongs to
todo_idA random id; carries no content.
- File path and name
storage_pathStorage bookkeeping; the name is a random id.
- File size
size_bytesA number, not text.
- Identifier
idA random id; carries no content.
- Owner (your account id)
user_idTies the row to your account.
- Created on
created_atA timestamp only.
- The encrypted content (ciphertext)
encrypted_blobWhere the encrypted fields live. Unreadable without your key.
Attached files
Storage buckettodo-attachmentsEncrypted on your device
- The file itself
object
Readable by the server
- File path and name
nameStorage bookkeeping; the name is a random id.
- File size
metadata.sizeStorage bookkeeping; the name is a random id.
- Upload time
created_atA timestamp only.
Lists and notebooks
Tabletools_collectionsEncrypted on your device
- List or notebook name
name - List or notebook emoji
emoji - Colour
color
Readable by the server
- Kind (todo list or notebook)
kindA setting, not content.
- Standard or shopping list
list_typeA setting, not content.
- Hidden from the "All" view
hidden_from_allA setting, not content.
- Identifier
idA random id; carries no content.
- Owner (your account id)
user_idTies the row to your account.
- Position in the list
sort_orderNeeded to sort the list without the key.
- Created on
created_atA timestamp only.
- Last changed
updated_atA timestamp only.
- The encrypted content (ciphertext)
encrypted_blobWhere the encrypted fields live. Unreadable without your key.
Calendar events
Tabletools_calendar_eventsEncrypted on your device
- Title
title - Event description
notes - Start
start_date - End
end_date - All-day event or not
is_all_day - Colour
color - Reminder times
reminder_minutes
Readable by the server
- Identifier
idA random id; carries no content.
- Owner (your account id)
user_idTies the row to your account.
- Created on
created_atA timestamp only.
- Last changed
updated_atA timestamp only.
- The encrypted content (ciphertext)
encrypted_blobWhere the encrypted fields live. Unreadable without your key.
Saved content (links and folders)
TablecontentsEncrypted on your device
- Title
title - Link (URL)
url - Folder emoji
emoji - Where it was saved from
source - Snippet text (legacy)
content - Kind (page or snippet)
content_type
Readable by the server
- Parent folder
parent_idKeeps the folder tree navigable without the key.
- Folder or link
is_folderKeeps the folder tree navigable without the key.
- Identifier
idA random id; carries no content.
- Owner (your account id)
user_idTies the row to your account.
- Created on
created_atA timestamp only.
- Last changed
updated_atA timestamp only.
- Last opened
last_accessed_atA timestamp only.
- The encrypted content (ciphertext)
encrypted_blobWhere the encrypted fields live. Unreadable without your key.
AI Lab saved prompts
Tabletools_ai_lab_promptsEncrypted on your device
- Prompt text
prompt
Readable by the server
- Last used
last_usedA timestamp only.
- Identifier
idA random id; carries no content.
- Owner (your account id)
user_idTies the row to your account.
- Created on
created_atA timestamp only.
- Last changed
updated_atA timestamp only.
- The encrypted content (ciphertext)
encrypted_blobWhere the encrypted fields live. Unreadable without your key.
Never encrypted
Account, sharing and preference records, not content. They stay readable so that sign-in, billing, shared lists and your preferences keep working.
- Your account
usersEmail, plan and payment status, role, inspiration interests and languages, last tour and "seen" markers.
- Your encryption keys
user_encryption_keysYour key, wrapped (encrypted) once by your passphrase and once by your recovery code, the key-derivation settings and a key id. Never the passphrase, the recovery code or the unwrapped key — they never leave your device.
- Shared lists
collection_sharesWho shares with whom: owner and recipient emails, the invitation status, and a copy of the list's name and emoji made when you share it (sharing a list tells the recipient, and us, its name).
- Reading progress
tools_content_readsHow far you read a saved page, and when. Not which page: the link lives encrypted in your saved content.
- Background reactions
background_likesWhich backgrounds you loved or disliked.
- Inspiration follows
tools_inspiration_users_followingWhich sources you unfollowed or clicked, and when.
Enable encryption in the extension under Settings → Encryption, or read how end-to-end encryption works in Flippy. Questions or something missing? Write to [email protected]. Signed in? Back to your account.
Make your next work session count.
Install Flippy in 30 seconds. The next time you sit down to work, your whole suite is already open.