Skip to content
OpenCourse
FeaturesDocsCatalogDownload
Star2Download
FeaturesDocumentationCourse catalogDownloadGitHub
Last updated November 1, 2026

Privacy

This page explains what the app, website and public catalog store and send, why, for how long, and how to make a request about your data.

Who is responsible

opencourse.dev and the public catalog, catalog.opencourse.dev, are run by Sergei Kravtsov, a private individual in France, for free and without any commercial purpose. Sergei Kravtsov is the controller of the personal data described here. Write to contact@opencourse.dev about anything on this page.

The OpenCourse app

  • Local data is stored on your Mac. Imported courses and PDFs, personal notebooks, Coach memory, local chats and settings live in your user folder. A local user needs no online account. When you enroll in server content, its progress and reading conversations synchronize with that server. Local notebooks, Coach memory and authoring conversations are excluded from that sync.
  • No analytics. The app reports nothing about how you use it to anyone.
  • AI features send relevant content to OpenAI. Local reading chat, personal notebook chat, Coach and course authoring use your app-wide API key or ChatGPT connection, protected by the macOS keychain. This can include questions, retrieved course or PDF passages, notebook pages and, for Coach, your voice, selections and unsaved open notebook edits. Reading tools exclude course quiz answers and exercise solutions; the authoring assistant works with the course you are editing. Coach can also retrieve accessible content from connected servers. OpenAI's terms and privacy policy apply.
  • Web search, when you turn it on, is run by OpenAI. To show where an answer came from, the app may fetch the small icons of the cited websites.
  • Learning servers you connect to receive sign-in and content requests, explicit course or PDF publications, and progress and reading conversations for enrolled content. Reading chat for server content runs through that server using a separate API key configured there, encrypted at rest with an operator-managed key; it never falls back to your local credentials. ChatGPT connections remain local.
  • Updates of the app, when you ask for them. The app checks for a new version only when you press Check for updates in Settings, or every few hours if you turn on automatic checks there; they are off until you do. A check asks GitHub for the latest release, and installing one downloads it from GitHub. GitHub sees your IP address and the app's version, as it does for any download. Nothing else is sent.

This website, opencourse.dev

  • No cookies, no analytics, no third-party scripts, fonts or trackers. Your browser loads files from this site only.
  • The site is served by Amazon CloudFront, which logs each request (address, time, page, browser). The logs are kept for 30 days, for security and to keep the site running, and are not used to profile anyone.
  • The download button fetches the app from GitHub Releases, so GitHub sees that request, under its own privacy policy.

The public catalog, catalog.opencourse.dev

Anyone can browse public listings. Adding content and using synchronized learning require an account; registration availability is controlled by the operator.

  • Browsing needs no account and sets no cookie.
  • An account stores your email address, your username and a salted hash of your password - never the password itself. Your email is used only to send you sign-in codes and security notices.
  • Codes sent by email are stored only as a keyed hash, work for ten minutes, and are deleted once they expire.
  • Signing in stores a session for each device you use (its browser or app name and when it was last used), which you can see and end in Settings. A session ends 90 days after its last use in the app, 30 on the web, or when you sign out. The web catalog uses a single, strictly necessary session cookie.
  • Publishing stores the courses and PDFs you explicitly publish under your username. Enrollment and learning store the content versions you add, reading position, lesson progress, quiz and flashcard activity, and reading conversations so you can continue across devices. Public learner counts do not identify individual learners. Unpublishing hides a listing while preserving enrolled access.
  • Moderation and security actions are written to an audit log. The server's request logs (address, time, page) are kept for 30 days, for security and to limit abuse.
  • Deleting your account in Settings removes it, your publications, enrollments and associated learning records, at once. It leaves the backups within a year (see below).

Self-hosted catalog servers are run by their own operators, who decide their own policies.

Writing to contact@opencourse.dev

Mail to contact@opencourse.dev is received by Amazon SES, kept for 90 days in AWS, and forwarded to the operator's own mailbox at Proton Mail (Switzerland), where it is kept as long as the conversation needs it.

Why, on what basis, and for how long

WhatWhyLegal basis (GDPR)Kept
Account: email, username, password hashTo give you an account and sign you inContract, art. 6(1)(b)Until you delete the account
Sessions: device name, last useTo keep you signed in, and let you end a sessionContract, art. 6(1)(b)Until you sign out, or 90 days unused (30 on the web)
Email codesTo confirm an address or reset a passwordContract, art. 6(1)(b)10 minutes
Published courses and PDFsTo offer learning material and preserve enrolled accessContract, art. 6(1)(b)Until deleted or the publisher account is deleted; unpublishing alone preserves enrolled access
Enrollments, progress and reading conversationsTo continue learning across desktop and webContract, art. 6(1)(b)Until the associated records or account are deleted
Request logs, website and catalogSecurity, limiting abuse, keeping the services runningLegitimate interest, art. 6(1)(f)30 days
Audit log of moderation and security actionsBeing able to account for every moderation decisionLegitimate interest, art. 6(1)(f)As long as the catalog runs
Backups of the catalogRestoring it after a failureLegitimate interest, art. 6(1)(f)Daily disk snapshots for 14 days; database copies for one year
Mail to contact@opencourse.devAnswering youLegitimate interest, art. 6(1)(f)90 days in AWS, then in the operator's mailbox

There are no ads, no data is sold or shared for marketing, and nobody is profiled or subject to automated decisions.

Who else handles it

  • Amazon Web Services hosts the website, the catalog and its backups, sends the catalog's emails and receives mail for contact@opencourse.dev. It processes the data only on the operator's behalf, under its Data Processing Addendum.
  • Proton (Switzerland) holds the operator's mailbox.
  • GitHub serves the app's downloads and answers its update checks, as a separate controller.

Where it is stored

Everything the website and the catalog store is in AWS's US East (N. Virginia) region, in the United States. That transfer outside the European Union relies on AWS's Data Processing Addendum, which includes the European Commission's standard contractual clauses, and on Amazon's certification under the EU-U.S. Data Privacy Framework. Switzerland, where Proton keeps mail, is recognised by the European Commission as protecting personal data adequately.

Your rights

You can ask for a copy of your data, have it corrected or deleted, restrict or object to its use, and receive it in a portable form. Much of this is in the catalog's Settings: change your email, end sessions, delete your account. For anything else, write to contact@opencourse.dev from the address on your account; you will have an answer within a month.

You can also complain to the CNIL, France's data protection authority, at cnil.fr (in French).

Changes

When this page changes, the date at the top changes with it. Questions about it go to contact@opencourse.dev; see also the legal notice and the terms.

OpenCourse

A free, open-source Mac app for studying and creating courses.

Star2

Product

DownloadFeaturesCourse catalogReleases

Documentation

Getting startedCourse formatTheme formatHost a catalog

Project

Source codeReport an issuePrivacyTermsLegal notice
© 2026 OpenCourse contributors · MIT LicenseFor macOS · Apple silicon