Flippy
Flippy
My data

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.

34

fields encrypted on your device: titles, bodies, dates, links, prompts, images.

60

fields the server can read: identifiers, positions, timestamps and the ciphertext itself. Each one says why below.

6

kinds of records that are never encrypted: your account, your wrapped keys, sharing, reading progress, preferences.

How it works

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.

Field by field

Every field, and where it stands

Encrypted on your device Readable by the server

Notes

Table tools_notes

Encrypted on your device

  • Titletitle
  • Note body (rich text)content
  • Plain-text copy of the note (for search)plain_text
  • Which image files the note usesimage_paths

Readable by the server

  • List or notebook it belongs tocollection_id

    Which list or notebook, by id; the name itself is encrypted.

  • Identifierid

    A random id; carries no content.

  • Owner (your account id)user_id

    Ties the row to your account.

  • Position in the listsort_order

    Needed to sort the list without the key.

  • Created oncreated_at

    A timestamp only.

  • Last changedupdated_at

    A timestamp only.

  • Last openedlast_accessed_at

    A timestamp only.

  • The encrypted content (ciphertext)encrypted_blob

    Where the encrypted fields live. Unreadable without your key.

Images in notes

Storage bucket notes-images

Encrypted on your device

  • The image itselfobject

Readable by the server

  • File path and namename

    Storage bookkeeping; the name is a random id.

  • File sizemetadata.size

    Storage bookkeeping; the name is a random id.

  • Upload timecreated_at

    A timestamp only.

Todos

Table tools_todolist

Encrypted on your device

  • Task texttext
  • Done or notcompleted
  • Prioritypriority
  • Due datedue_date
  • When it was completedcompleted_at
  • Task detailscontent
  • Shop (shopping lists)shop
  • Quantity (shopping lists)quantity
  • Picked while shoppingshopping_selected

Readable by the server

  • Pomodoros done on the taskpomodoro_count

    A number, not text.

  • Pomodoro length for the taskpomodoro_minutes

    A number, not text.

  • List or notebook it belongs tocollection_id

    Which list or notebook, by id; the name itself is encrypted.

  • Assigned to (shared lists)assignee_id

    Needed for shared lists to work.

  • Assigned by (shared lists)assigned_by_id

    Needed for shared lists to work.

  • Identifierid

    A random id; carries no content.

  • Owner (your account id)user_id

    Ties the row to your account.

  • Position in the listsort_order

    Needed to sort the list without the key.

  • Created oncreated_at

    A timestamp only.

  • Last changedupdated_at

    A timestamp only.

  • The encrypted content (ciphertext)encrypted_blob

    Where the encrypted fields live. Unreadable without your key.

Todo attachments

Table tools_todo_attachments

Encrypted on your device

  • File namefile_name
  • File typemime_type

Readable by the server

  • Task it belongs totodo_id

    A random id; carries no content.

  • File path and namestorage_path

    Storage bookkeeping; the name is a random id.

  • File sizesize_bytes

    A number, not text.

  • Identifierid

    A random id; carries no content.

  • Owner (your account id)user_id

    Ties the row to your account.

  • Created oncreated_at

    A timestamp only.

  • The encrypted content (ciphertext)encrypted_blob

    Where the encrypted fields live. Unreadable without your key.

Attached files

Storage bucket todo-attachments

Encrypted on your device

  • The file itselfobject

Readable by the server

  • File path and namename

    Storage bookkeeping; the name is a random id.

  • File sizemetadata.size

    Storage bookkeeping; the name is a random id.

  • Upload timecreated_at

    A timestamp only.

Lists and notebooks

Table tools_collections

Encrypted on your device

  • List or notebook namename
  • List or notebook emojiemoji
  • Colourcolor

Readable by the server

  • Kind (todo list or notebook)kind

    A setting, not content.

  • Standard or shopping listlist_type

    A setting, not content.

  • Hidden from the "All" viewhidden_from_all

    A setting, not content.

  • Identifierid

    A random id; carries no content.

  • Owner (your account id)user_id

    Ties the row to your account.

  • Position in the listsort_order

    Needed to sort the list without the key.

  • Created oncreated_at

    A timestamp only.

  • Last changedupdated_at

    A timestamp only.

  • The encrypted content (ciphertext)encrypted_blob

    Where the encrypted fields live. Unreadable without your key.

Calendar events

Table tools_calendar_events

Encrypted on your device

  • Titletitle
  • Event descriptionnotes
  • Startstart_date
  • Endend_date
  • All-day event or notis_all_day
  • Colourcolor
  • Reminder timesreminder_minutes

Readable by the server

  • Identifierid

    A random id; carries no content.

  • Owner (your account id)user_id

    Ties the row to your account.

  • Created oncreated_at

    A timestamp only.

  • Last changedupdated_at

    A timestamp only.

  • The encrypted content (ciphertext)encrypted_blob

    Where the encrypted fields live. Unreadable without your key.

Saved content (links and folders)

Table contents

Encrypted on your device

  • Titletitle
  • Link (URL)url
  • Folder emojiemoji
  • Where it was saved fromsource
  • Snippet text (legacy)content
  • Kind (page or snippet)content_type

Readable by the server

  • Parent folderparent_id

    Keeps the folder tree navigable without the key.

  • Folder or linkis_folder

    Keeps the folder tree navigable without the key.

  • Identifierid

    A random id; carries no content.

  • Owner (your account id)user_id

    Ties the row to your account.

  • Created oncreated_at

    A timestamp only.

  • Last changedupdated_at

    A timestamp only.

  • Last openedlast_accessed_at

    A timestamp only.

  • The encrypted content (ciphertext)encrypted_blob

    Where the encrypted fields live. Unreadable without your key.

AI Lab saved prompts

Table tools_ai_lab_prompts

Encrypted on your device

  • Prompt textprompt

Readable by the server

  • Last usedlast_used

    A timestamp only.

  • Identifierid

    A random id; carries no content.

  • Owner (your account id)user_id

    Ties the row to your account.

  • Created oncreated_at

    A timestamp only.

  • Last changedupdated_at

    A timestamp only.

  • The encrypted content (ciphertext)encrypted_blob

    Where 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 accountusers

    Email, plan and payment status, role, inspiration interests and languages, last tour and "seen" markers.

  • Your encryption keysuser_encryption_keys

    Your 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 listscollection_shares

    Who 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 progresstools_content_reads

    How far you read a saved page, and when. Not which page: the link lives encrypted in your saved content.

  • Background reactionsbackground_likes

    Which backgrounds you loved or disliked.

  • Inspiration followstools_inspiration_users_following

    Which 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.

Free forever, no credit card

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.