← Back to home

Privacy & Terms

Last updated 8 August 2026

This page covers both the privacy policy and the terms of use for Notion Ultimate Brain, the glasses app and its accompanying phone settings screen. It's written against what the code actually does — the whole thing is public on GitHub, so every claim below is checkable.

Jump to Privacy Policy or Terms of Use.

Privacy Policy

The short version

  • There is no account and no sign-up. No user database exists, so there is nothing to sign up to.
  • Your Notion token lives on your device. The server uses it to make one call to Notion and then forgets it.
  • Voice input runs entirely offline on the glasses. Audio is never transmitted and never stored.
  • There is no analytics, telemetry, crash reporting, advertising, or cookies — not in the app, not on this website.
  • No personal data is logged. A successful request is not logged at all; a failed one records only a status code, the route pattern, and an error category — no titles, no page IDs, no content.

Who runs this

An individual developer, as an unpaid side project. There is no company and no team.

What runs where

Three pieces are involved: the app on your glasses and phone, a small stateless proxy server, and your own Notion workspace.

The proxy exists for one boring technical reason: Notion's API rejects requests coming from app webviews, which is how the phone interface is hosted. So requests take a detour through a server that attaches your token, calls Notion, and hands the response straight back. It does not interpret, enrich, or retain what passes through. Everything else — parsing, formatting, pagination, caching — happens on your device.

Your Notion workspace is the actual home of your data. Tasks, notes, projects and tags are read from and written to your Notion databases. This app is a viewer and editor, not a store. Notion's own privacy policy governs what happens to the content itself.

Your Notion credentials

You supply a Notion integration token and four database IDs in the settings screen. These are saved in your device's local app storage, as plain text. They are not encrypted by the app, and they are not backed up or synced anywhere by it.

On every API call, that configuration is base64-encoded into a request header. Base64 is encoding, not encryption — it is trivially reversible, and the actual confidentiality comes from the connection being HTTPS. The server decodes the header, builds a Notion client for that one request, and discards it when the request ends. Nothing is written to disk, no database exists, and there is no cache of tokens.

The token is never logged. Request headers are structurally excluded from the logging code, so there is no path by which it can end up in a log file.

Two practical recommendations. Share your Notion integration with only the four databases the app needs, not your whole workspace — the token can reach exactly what you've shared with it and nothing more. And if you ever want to cut access off, revoke the integration in Notion; that invalidates the token immediately, wherever copies of it exist.

What the server sees and what it logs

While handling a request, the server necessarily sees your token and whatever Notion sends back — task titles, note titles, page content. That data lives in memory for the duration of the request and is not persisted.

No personal data is logged. Not your token, not your task or note titles, not page content, not Notion page IDs, not your IP address. A request that succeeds produces no log line at all.

When a request fails, one line is written, and it holds four things:

  • The HTTP method — GET, POST and so on.
  • The route pattern, such as /api/pages/:id/markdown. Note the :id: the pattern is recorded, never the real address, so which page you opened isn't in the log.
  • The status code, such as 500.
  • An error category from Notion, such as object_not_found or rate_limited — the code only. Notion's error messages quote page IDs and titles, so they are not logged either.

That is the entire log record. It's enough to see that something broke and roughly where, and not enough to learn anything about you. Request headers never reach the logging code at all, which is why the token can't end up there by accident, and response bodies are never written — not even on an error.

This is not a setting. There is no environment variable, deploy option, or verbose mode that makes the server log more than the four fields above — the deployed function is configured with no such switch, and the logging code reads none. The behaviour is covered by tests that fail if a field is added, so widening it means changing the tests on purpose rather than flipping something by accident.

Logs are written to AWS CloudWatch in the us-east-1 region and are readable only by the maintainer. They are not shared with anyone, sold, or used for advertising, training, or any purpose beyond fixing bugs.

If you would rather no third-party server saw your data even in passing, run your own.

One more thing travels in the configuration header: your device's time zone, which the app needs so that “today” and “this week” mean the right thing for you. A time zone is a coarse location signal — it narrows you to a broad region, not a place. It is the only device attribute sent automatically.

Voice input

Dictating a task uses the microphone in the glasses. Voice input is off until you turn it on, and when you do, you choose which of two recognisers to use. The choice is in the settings screen, and the app tells you there what each one does with your audio.

On-device downloads a Vosk speech model to your phone once, about 40 MB, and recognises speech locally from then on. There is no speech API, no API key, and no network request involved in recognition. Audio frames are converted, fed to the recogniser, and discarded: no recording is kept, and no audio ever leaves your phone. It understands English.

Cloud streams your audio to Soniox for transcription, using an API key from your own Soniox account. Here what you say does leave the device, and what Soniox does with it is covered by their terms, not ours. We never see the audio or the key: the key is stored on your phone and sent only to Soniox, and the connection goes straight from your phone to them without passing through our server. Nothing is streamed unless you are actively recording.

Either way the microphone closes automatically after a short silence, after fifteen seconds at most, or when you stop it. And either way, what leaves the device once you confirm is the resulting text — sent onward as the title of the task you just created, exactly as if you had typed it.

What is stored on your device

Three things, all in local app storage:

  • Your settings — the Notion token and the four database IDs.
  • A list cache — the names, IDs, due dates and statuses of the tasks, notes, projects and tags shown on each screen, so lists appear instantly instead of blanking on every open. This cache has no expiry: an entry is replaced when that screen is refetched, and otherwise stays until the app is uninstalled. In practice, task and note titles you have viewed persist on the device.
  • A debug log — the most recent thousand entries, covered below.

The body text of a note or task you open is held in memory only and is never written to storage.

The debug log

The app keeps a rolling local log to make bug reports possible. It is never uploaded automatically — it leaves your device only if you press “Copy log” in settings and paste it somewhere yourself.

Before you do, know what's in it. Notion tokens are automatically redacted and cannot appear in a copied log. But task and note titles, Notion page IDs, your browser user agent, and the server address are not redacted — that context is what makes a log useful for debugging. Give it a quick skim before pasting it into a public GitHub issue, and use the “Clear” button whenever you want it gone.

No tracking

The app contains no analytics, no telemetry, no crash-reporting service, no advertising, and no third-party SDK of any kind. Nothing measures how you use it. Errors are captured into the local debug log described above and stay there.

This website is static HTML and CSS. It runs no JavaScript at all, sets no cookies, embeds no trackers or pixels, and has no forms. Its fonts are served from this domain, not from Google Fonts. That's why there's no cookie banner — there are no cookies to consent to.

Other parties involved

  • Notion — where your content actually lives, under your own Notion account and their privacy policy.
  • Amazon Web Services — runs the proxy function and stores its request logs, in us-east-1.
  • Google Firebase Hosting — serves this website. Like any web host it keeps its own server-side request logs, which typically include IP addresses and user agents. That's Google's processing, outside this project's control and not accessible to the app.
  • Even Realities — makes the glasses and the host app the interface runs inside. Their software and its own data practices are theirs, not this project's.

No data is sold, rented, or shared with anyone for advertising or any other purpose.

Device permissions

The app requests exactly two: network access, and the glasses microphone. It does not request or use location, GPS, the camera, your photo album, motion sensors, battery status, or wear detection — none of that appears anywhere in the code.

Running your own server

If you would rather no third party sat in the path at all, you can remove this one. The project is open source, and the server address is a build-time setting.

Deploy the server yourself — the Terraform stack for AWS Lambda is in the repository, and it also runs as a plain Node process anywhere you like — then build your own app package pointed at it by setting VITE_API_BASE and running the pack command. The README has the exact commands.

Do that and your token and page data travel from your device to your server to Notion. This project's infrastructure is out of the path entirely: no request logs here, no third party but Notion and whoever hosts your server. It's the strongest privacy guarantee on offer, and it costs one deploy.

Deleting your data

There's no account to close, because there's no account. To remove everything this app holds:

  • Uninstall the app. That removes the settings, the list cache and the debug log from your device.
  • Revoke the integration in Notion, under Settings → Connections. The token stops working instantly.
  • Your Notion content is yours and is unaffected — deleting the app deletes no tasks or notes.

There is nothing to delete on the server side: it holds no account, no copy of your content, and its failure logs contain no data that identifies you or your pages.

Children

This app is not directed at children under 13, and no information is knowingly collected from them.

Changes to this page

The date at the top says when this was last revised. Because the page tracks what the code does, meaningful changes arrive with code changes, and the history is visible in the repository.

Contact

Questions, corrections, or a deletion request: open an issue at github.com/hofstede-matheus/notion-ultimate-brain-even-g2. Found something on this page that doesn't match the code? That's a bug — please report it.

GitHub issues are public, so never include your Notion token, and don't paste personal task or note content into one.

Terms of Use

What this is

A free, open-source side project, made by one person. The glasses app costs nothing and the hosted server is paid for out of pocket. Using it means accepting the terms below.

No affiliation, and no trademark ownership

This is an independent, unofficial project. It is not affiliated with, endorsed by, or sponsored by Notion Labs, Inc., Even Realities, or Thomas Frank. To be explicit about who owns what:

  • “Notion” is a trademark of Notion Labs, Inc. The maintainer of this project does not own it and claims no rights in it.
  • “Ultimate Brain” is a product and trademark of Thomas Frank. The maintainer of this project does not own it and claims no rights in it. This app is an independent client for that template — it is not the template, is not sold with it, and obtaining it is a separate matter with its author.
  • “Even Realities”, “Even Hub” and “G2” are trademarks of Even Realities. Same again: not owned here, no rights claimed.

These names appear only to describe what this software works with. That is the only claim being made.

Your Notion account is your responsibility

You provide your own Notion integration token, and keeping it safe is up to you. The app can create, edit, complete and delete pages in any database the integration can reach — that's what it's for. Share the integration narrowly, and check what you're deleting.

You're also responsible for complying with Notion's own terms.

No warranty, no liability

The software and the hosted server are provided “as is”, without warranty of any kind, express or implied, including merchantability, fitness for a particular purpose, and non-infringement. To the fullest extent permitted by law, the maintainer is not liable for any damages arising from use of this software or service — including lost, altered or deleted data.

Practically: Notion is the system of record. Anything that matters should be safe in Notion, where its own version history protects it. Sections 7 and 8 of the Apache License already disclaim warranty and liability for the code; this section covers the hosted server as well, which the licence does not reach.

Availability

There is no uptime promise. This is a personal project, and the hosted server may change, break, or be shut down at any time without notice. If that would be a problem for you, run your own — see “Running your own server” above. That path stays open regardless of what happens to this one.

Fair use of the shared server

The server is small and paid for personally. Please use it as the app uses it: don't hammer it, don't build an unrelated service on top of it, and don't use it to attack Notion's API or anyone else. Heavy or abusive traffic may be blocked. If you need volume, self-host — that's what it's there for.

Licence

The source is released under the Apache License 2.0. Fork it, modify it, add features, bundle a different speech or language model, run it privately, run it commercially, redistribute it. All of that is permitted and none of it needs anyone's permission.

There is one request, and it is a request rather than a condition — the licence above governs, and it doesn't restrict this. Please don't submit a fork for public listing on the Even Hub store. Building your own copy is welcome, including private builds through your own Even Hub developer account. The trouble is only with public listings: the app package keeps the same identifier and name, so a listed fork sits alongside the original under the same identity, and users can't tell which server they're trusting. If you've built something meaningfully different, give it its own identifier and name and list it proudly.

Note also that section 6 of the licence grants no trademark rights — including to this project's own name and branding.

Notion Ultimate Brain for Even Realities G2 An independent open-source project, not affiliated with Notion Labs, Even Realities, or Thomas Frank. “Notion” and “Ultimate Brain” are trademarks of their respective owners.
Home GitHub