Privacy Policy for Better Intra
Last updated: June 2026
Data Collection
Better Intra does not collect, sell, or share any user data. The extension operates primarily on your local device.
Local-Only Data
All extension settings (logtime goals, colours, shortcuts, cluster preferences, profile visuals, friend list, feature toggles) are stored locally on your device using chrome.storage.local. This data never leaves your browser unless you explicitly enable cloud sync.
Logtime data is read directly from the 42 Intra page — it is never transmitted anywhere.
When viewing other users’ profiles, their public custom visual URLs (avatar, banner, background) are cached locally under hashed logins for faster repeat loading. Cached URLs are cleared when the extension is uninstalled.
Cloud Sync (Optional)
If you enable cloud sync, the following data is transmitted to the extension’s Cloudflare Worker at better-intra-worker.nicopasla.workers.dev:
- Your 42 login (hashed) — used to identify your stored settings
- Your extension settings — so they can be synced across devices
- Your friend logins — to fetch their online status and location
- Your custom profile visuals (avatar, banner, background URLs) — so other Better Intra users can see them when viewing your profile
- Your Discord User ID (if enabled) — for sending evaluation notifications via DM
- Your outstanding project flags — so the extension can show a star on projects that were marked “Outstanding” during evaluation
All your cloud data is keyed under a hash of your login and is only accessible to you. The worker retains invocation logs for debugging purposes (request timestamps, endpoints, HTTP status codes, item counts, and state transitions). When relevant, identifiers are truncated to their first 6 characters to prevent full exposure. Discord API error status codes may also appear in logs. These logs are not used for tracking or analytics.
The worker also caches friend user IDs in KV and online status in D1 to reduce calls to the 42 API. This cache is temporary and only contains 42 user IDs and online location data.
OAuth Authentication
When you authenticate via 42 OAuth, a temporary session token is stored locally in chrome.storage.local. This token is used to authenticate requests to the Cloudflare Worker. It is never shared with third parties.
Evaluations Background Service
The Cloudflare Worker runs a cron job every 10 minutes to check for evaluation state changes (slot bookings, reveals, 15‑minute reminders) on behalf of enabled users. The worker fetches evaluation data from the 42 API and detects state changes. Discord DMs are sent directly by the worker — the browser extension does not poll for evaluations. Evaluation states and pending notifications are stored in Cloudflare D1.
Third-Party Access
- 42 API (
api.intra.42.fr): The Cloudflare Worker calls the 42 API on your behalf to fetch friend data, evaluation states, and verify your identity. This is done with your OAuth token and is limited to what’s needed for the extension’s features. - Discord (optional): If you enable Discord notifications, the worker sends evaluation alerts to your Discord DMs via the Discord Bot API. The bot token is securely stored as a Cloudflare Worker secret.
- No analytics, tracking, or advertising services are used.
- No data is sold or transferred to any third party.
Data Retention & Deletion
- Local data: Cleared when you uninstall the extension or click “Reset” in the Settings Hub.
- Cloud data: You can delete all cloud-stored data at any time via the “Wipe All Data” button in the Account section of the popup.
- Invocation logs: Retained for up to 30 days for debugging purposes, then automatically deleted.
Permissions
storage— to save and load settings locallyactiveTab— to interact with the 42 Intra pagehttps://worker.betterintra.com/— to communicate with the extension’s Cloudflare Worker for optional cloud features
Changes to This Policy
If this policy changes, the extension version will be updated and the “Last updated” date at the top of this page will reflect the change.
Contact
For questions about this privacy policy, open an issue at: https://github.com/nicopasla/better-intra/issues