Skip to content

Cookie Policy

Last updated: August 23, 2026

The short version

ROJI Inc. ("ROJI," "we," "us," or "our") sets five cookies across roji.ai and the ROJI console. Three keep you signed in and remember which account you are working in, one records your cookie choice, and one remembers whether the console sidebar is open.

We run no analytics, no advertising, no pixels, no tag manager, and no session replay. There is no Google Analytics, no PostHog, no Meta or LinkedIn pixel, and no cross-site tracking of any kind on this site. That is not a promise about the future — it is a description of the code that is deployed today, and this page is rewritten when that changes.

This policy sits alongside our Privacy Policy.

What cookies are

Cookies are small text files a site stores in your browser. A session cookie is discarded when you close the browser; a persistent cookie survives until it expires or you delete it. A first-party cookie is set by roji.ai; a third-party cookie is set by another domain whose code runs on the page.

Cookies we set

Strictly necessary

These are required for sign-in, for the console to work at all, and for us to remember your cookie choice. They carry no advertising identifier and are not shared with anyone. The three session cookies are HttpOnly (JavaScript on the page cannot read them), Secure (sent only over HTTPS), and SameSite=Lax. c15t is Secure and SameSite=Lax but not HttpOnly, because the consent banner has to be able to read your choice back.

CookieWhat it holdsSet onLifetimeFlags
sessionYour signed-in session, as a Firebase Authentication session token.roji.ai14 daysHttpOnly, Secure, SameSite=Lax
api_tokenThe access token the console uses to call the ROJI API on your behalf.roji.aiExpires with the token (14 days by default)HttpOnly, Secure, SameSite=Lax
current_accountThe URL slug of the account you are currently working in, so a page load lands in the right workspace.roji.ai1 yearHttpOnly, Secure, SameSite=Lax
c15tYour cookie choice, so the consent banner does not ask againroji.ai1 yearSecure, SameSite=Lax (readable by the banner)

session, api_token and current_account only exist once you sign in, and all three are deleted when you sign out. If you have never signed in, c15t is the only cookie on your machine from us.

Functional

CookieWhat it holdsSet onLifetimeFlags
sidebar_stateWhether the console's left sidebar is expanded or collapsedroji.ai7 daysSameSite=Lax (written by the page, so not HttpOnly)

This one is set inside the signed-in console only. It never appears on a marketing page.

Analytics cookies

None. We do not set any.

Advertising and marketing cookies

None. We do not set any, and we do not embed any third-party advertising or measurement tag.

Similar technologies

Two things we use are not cookies but do store data in your browser, so they belong here:

  • Firebase Authentication (IndexedDB). After you sign in with Google, the Firebase client library keeps your refresh token in your browser's IndexedDB store (firebaseLocalStorageDb). This is what stops you being asked to sign in on every page. Signing out clears it. It exists only for signed-in users.
  • Consent record (local storage). The consent manager mirrors the contents of the c15t cookie into local storage under the key c15t, so your choice survives a cookie-only clear.

We do not use pixel tags, web beacons, or tracking images — in the site or in email.

Third parties whose code runs on our pages

  • Consent management (c15t). The consent banner is provided by c15t. It runs in your browser and records your choice in the first-party c15t cookie described above.
  • Google / Firebase Authentication. Signing in opens a Google sign-in window. Google sets its own cookies on Google's domains during that flow, governed by the Google Privacy Policy. We do not set or read them.
  • Stripe. Stripe's JavaScript loads on one page — the billing settings page inside the signed-in console — so that you can add a payment method without card details ever reaching our servers. Stripe sets its own fraud-prevention cookies there, described in the Stripe Privacy Policy. Stripe's code does not run on any public page of this site.

Our fonts are self-hosted at build time, so loading a page on roji.ai makes no request to a font CDN.

Managing your choices

The consent banner. It appears on your first visit and records your choice in the c15t cookie. Because we set no analytics or advertising cookies, declining the optional categories does not change what is stored — there is nothing in those categories to switch off. To bring the banner back, delete the c15t cookie for roji.ai.

Our Record of Your Consent Choice

Separately from the copy stored in your browser, we keep a record on our own servers of the consent choices made on our website. We do this because we are required to be able to demonstrate that consent was obtained, and because a copy that lives only on your device — which you can clear or change at any time — cannot serve that purpose.

What the record contains:

FieldWhat it is
Your choice per categoryWhich categories (necessary, functionality, experience, analytics/measurement, marketing) you granted and which you declined — the full choice, not simply "accepted"
Policy versionThe version of this Cookie Policy that was in force when you chose, so it is always clear what you were told
TimeThe date and time the choice was recorded, taken from our server's clock
A one-way hash of your IP addressYour IP address is not stored. We store only a salted SHA-256 hash of it, from which the original address cannot be recovered. It exists so that a record can be located if you ask us about it
Browser user agentThe browser identification string your browser sends with every request, truncated
Consent identifierIf the consent tool has generated a local identifier for your browser, it is stored so that a later change can be linked to an earlier choice
Account detailsOnly if you happened to be signed in at the time. Most consent choices are made before any account exists, and this field is then empty

What the record does not contain: your IP address in readable form, the page you were on, where you came from, your location, or any identifier we created in order to recognise you again.

The record is append-only. If you change your mind, we add a new entry — we never overwrite the old one. This is deliberate: the history of your choices is the point of keeping the record at all.

Where it is kept and for how long. The record is stored on infrastructure we operate ourselves and is not shared with any third-party consent-management provider. We retain consent records for seven years from the date of the choice, because a record of consent has to outlive the consent itself in order to evidence it.

To ask what we hold, or to raise a concern about it, contact us at privacy@roji.ai.

Your browser. Every major browser lets you inspect, delete, and block cookies:

Blocking the strictly necessary cookies will stop you from signing in. Blocking sidebar_state costs you nothing but a sidebar that forgets its width.

Do Not Track. Browsers that send a DNT header are asking not to be tracked across sites. We do not track anyone across sites, with or without the header, so there is no behaviour for it to change.

Changes to this policy

We update this page when the cookies change, not on a schedule. The "Last updated" date at the top is the date of the most recent change.

Contact

ROJI Inc. Email: privacy@roji.ai Website: https://roji.ai