← SHIFTLOG

Privacy

Shiftlog is a browser extension that records what you accomplished during timed work blocks. This page describes exactly what happens to that record.

What Shiftlog collects

Nothing is sent anywhere by default.

Your work blocks, entries, aims, thread names, tags, summaries and settings are stored in your browser's local extension storage on the machine you are using. They are not uploaded, synced, or transmitted. There is no account, no sign-in and no server belonging to us that holds any of it.

We receive no data from you. Not your entries, not usage statistics, not error reports, not an installation count beyond what the Chrome Web Store reports to any developer.

The one case where data leaves your machine

Shiftlog can produce a written summary of a range of your entries. This requires a language model, and Shiftlog does not include one.

If, and only if, you enter an API key in the extension's settings:

Before you enter a key, Shiftlog makes no network requests whatsoever. You can confirm this yourself: open the extension's pages, open your browser's network inspector, and use it normally.

Everything Shiftlog shows you under Figures is arithmetic over your own record and needs no key, no connection and no account.

Permissions, and why each exists

PermissionWhy
storageTo keep your blocks, entries and settings in the browser's local storage.
alarmsTo schedule the end of a work block, so the timer survives the browser suspending the extension to save power.
offscreenTo play the end-of-block tone and count the final minute. The extension's background worker cannot play audio.

Two further permissions are requested only if you turn on the feature that needs them, and never at install:

PermissionRequested when
downloadsYou switch on weekly backup. Used to write a JSON file to your downloads folder and nothing else.
Access to one websiteYou save an API key. Requested only for the exact endpoint you entered, so Shiftlog can send the summary request.

Shiftlog does not request access to the websites you visit and cannot read them.

Optional dictation

The prompt window has a microphone button, off unless you switch it on in settings.

When enabled, it uses the speech recognition built into your browser. In Chrome that service sends the audio to Google for transcription, under Google's terms rather than ours. Shiftlog neither records nor stores audio, and receives only the text your browser returns.

Dictation tools that run outside the browser type into the field like a keyboard and involve neither this setting nor any service.

Your API key

If you enter one, it is stored in the browser's local extension storage in plain text. This is standard for browser extensions and there is no more secure option available to them.

Two consequences worth knowing. Anyone with access to your computer and its developer tools can read it. And the key is excluded from every export Shiftlog produces, so sharing an export does not share your key, and restoring a file cannot overwrite the key you have set.

The passphrase lock

Shiftlog can be locked with a passphrase, off by default. It engages when you close Shiftlog, and again after an idle period you choose.

The passphrase is never stored. What is stored is a PBKDF2 hash of it with a random salt, which cannot be reversed into the passphrase.

The lock stops someone opening your record from the toolbar and reading it. It does not encrypt your entries. They remain in plain local storage, and anyone with access to the machine and developer tools can read them regardless. It is a lock on a door, not a safe.

There is no way to recover a forgotten passphrase. It cannot be read back by anyone, there is no reset, and a forgotten one leaves your record unreachable from inside the extension. Reinstalling and restoring from a backup is the only route back, so switch on the weekly backup before you set one.

Taking your record with you

Export everything as JSON, Markdown or CSV at any time, in one click. The JSON contains your full record and your preferences, with API keys excluded.

Restoring merges rather than replaces: entries already present are left untouched, so importing the same file twice changes nothing.

You can also switch on a weekly backup, which writes a JSON file to your downloads folder at most once every seven days.

Deleting your data

Removing the extension from your browser deletes everything it stored.

You can also delete individual entries inside the record, remove a project and its labels in settings, or clear the whole store from your browser's extension settings.

Nothing is retained anywhere else, because nothing was sent anywhere else.

Children

Shiftlog is a work journal for adults and is not directed at children. It collects nothing from anyone, of any age.

Changes

If a future version of Shiftlog transmits data in any circumstance not described above, this page will be updated before that version is published, and the change will be described in the store listing.

Contact

hello@figured.fyi