DueHub Privacy Policy

Effective Date: May 5, 2026 · Last Updated: August 12, 2026

Introduction

DueHub is a study-planning application for K-12 and college students, available at https://app.getduehub.com, operated by JDS Educational Services, LLC, a Virginia limited liability company (“JDS,” “DueHub,” “we,” “our,” “us”). This Privacy Policy describes how DueHub accesses, uses, stores, shares, retains, and deletes user data — including data obtained from Google through OAuth, data you create within the app, and data shared between linked student and parent accounts — when you use the application.

If you have questions about this policy or want to exercise your rights regarding your data, contact us at admin@getduehub.com.

Limited Use of Google User Data

DueHub's use of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements. Specifically:

Data Accessed

Data from your Google account (student accounts only)

When you connect your Google account, DueHub requests the following OAuth scopes:

ScopeSensitivityWhat DueHub reads
openidStandardYour Google user ID (sub) and email claim, contained in the OAuth ID token
https://www.googleapis.com/auth/userinfo.emailStandardYour email address (read from the ID token claims; DueHub does not make a separate userinfo call)
https://www.googleapis.com/auth/calendar.readonlySensitiveYour calendar list metadata and events from the calendars you choose to sync
https://www.googleapis.com/auth/calendar.eventsSensitivePermission to create, edit, and delete events that DueHub itself has created on a single "write target" calendar that you select

The specific Google API endpoints DueHub calls are:

The specific fields DueHub reads are:

DueHub does not access any other Google scopes or services. DueHub does not request or read Gmail, Drive, Contacts, People API, Photos, YouTube, or Workspace admin APIs.

Data from other services you connect (student accounts only)

If you connect Canvas or StudentVUE, DueHub reads your assignments, courses, grades, and (for StudentVUE) class schedule using credentials you provide. If you subscribe to an iCal feed, DueHub reads the calendar events from that feed URL. These credentials are stored encrypted, using the same protections described in “Data Storage & Protection” below.

Data you create in DueHub

Content you create in DueHub — study sessions, assignments (including any “planned day” you set for scheduling an assignment), courses, schools, bell schedules, feedback messages you submit through the in-app form — is stored under your account. Assignments carry two date fields, a due date and an optional planned day; both are ordinary user content.

Account and identity data

DueHub stores your Clerk-authenticated email address and, for student accounts, your date of birth (used only to enforce the minimum age requirement — see “Children's Privacy” below). Parent accounts provide only an email address; parents do not provide a date of birth. Additional profile fields (school, grade level, preferences) are stored if you enter them.

Family access data

If you use Family access (see “Data Sharing” below):

Data Usage

DueHub is a study planner. We use the data you provide for the following narrowly scoped purposes:

Research and product improvement (opt-in)

If you affirmatively opt in from Settings → Privacy, we may use DueHub-native content in your account — including assignments and their planned days, study sessions, and how you use DueHub's features — for research aimed at understanding study habits and improving DueHub. This research may be conducted internally by DueHub or in collaboration with academic institutions.

Any such research uses only aggregated or fully de-identified data. Outputs shared with collaborators, and any results discussed publicly, will not identify you individually.

The following are always excluded from research use, regardless of your opt-in status:

Data used for research is never sold, transferred to third parties for their independent use, or used to train external AI or machine learning models.

You may withdraw your opt-in at any time from Settings → Privacy. Withdrawal stops any further use of your data for research going forward. Research participation applies only to data collected after you opt in.

Regardless of opt-in status, we do not use your data for advertising, profiling for third-party targeting, or training external AI or machine learning models.

Data Sharing

DueHub does not sell, rent, or share your data with any third party for advertising or any other independent purpose. Data leaves your DueHub account only in the two ways described below: through the infrastructure providers we use to run the service, and through Family access sharing that you, as a student, control.

Infrastructure providers (data processors under our direction)

VendorRoleData handled
NeonPostgres database hostStores all DueHub data, including encrypted third-party credentials and cached content. Neon applies encryption at rest to the database.
RenderApplication hostingRuns the DueHub server. Holds the master encryption key needed to decrypt tokens for active API calls in process memory.
ClerkAuthenticationHandles DueHub sign-in sessions. Not part of the Google OAuth flow.
SentryError monitoringReceives crash and error events with cookies, Authorization and Cookie headers, request bodies, and any OAuth-state-bearing query strings stripped by a server-side scrubber. sendDefaultPii is disabled, and Sentry session replay is not enabled.
ResendTransactional emailDelivers the message you type into the in-app “Send feedback” form to the developer's inbox. Does not receive calendar, grades, or other synced content.
AnthropicSchedule extraction (optional)If you use “Import schedule from photo,” the image or PDF you upload — which may include your name, school, and class list — is sent to Anthropic's Claude API to extract the schedule. The extracted result is shown to you for review before it is saved. DueHub does not persist the uploaded file; under Anthropic's API terms, submitted content is not used to train Anthropic's models. Nothing is sent to Anthropic unless you explicitly start a schedule import.
Apple (APNs)Push notificationsDelivers push notifications to the iOS app if you enable them. Receives your device token and the notification content — for example, an assignment title and due time, or a generic “You have a new notification” if you choose the private-content option. Grade notifications are always generic and never include the grade itself.

There are no third-party trackers, advertising networks, data brokers, or analytics vendors loaded by DueHub's frontend or backend.

Family access (student-directed sharing)

DueHub lets students share a read-only view of parts of their DueHub account with a parent. This is the only way that data crosses from one DueHub account to another, and it is always initiated and controlled by the student.

How linking works.A parent creates their own DueHub account (a “parent account”). The student generates an 8-character link code from Settings → Family access; the code is single-use, valid for 15 minutes, and is stored only as a SHA-256 hash. The student sees exactly which scopes will be shared before the code is generated. Nothing is shared until the parent redeems the code. A student may link to more than one parent, and a parent may link to more than one student.

What a parent can see, controlled by the student per-parent, in Settings → Family access:

The student can narrow scopes or revoke a link entirely at any time; changes take effect on the parent's next request. The parent can also unlink themselves.

What a parent can never see, regardless of scope:

How parent access is enforced.Parent access flows through dedicated read-only endpoints on our servers. There is no path by which a parent can create, modify, or delete anything in the student's account.

Switching account type.If an account type is switched between student and parent, all of that account's existing links are automatically revoked.

Family access and third parties. Family access is student-to-parent sharing entirely inside DueHub. No student data goes to any new third party as a result of Family access.

Data Storage & Protection

Encryption at rest (third-party credentials): access tokens, refresh tokens, and other stored credentials are encrypted using AES-256-GCM with a master key held only in environment variables on the production hosting platform. Each ciphertext has its own random 12-byte initialization vector and a 16-byte authentication tag that is verified on decryption (which fails closed on any tampering). A leaked database row alone cannot be decrypted without the separately held master key.

Encryption in transit: all network traffic uses HTTPS/TLS. DueHub sends a strict transport security header (Strict-Transport-Security: max-age=31536000; includeSubDomains; preload). Additional security headers include X-Content-Type-Options: nosniff, X-Frame-Options: DENY, Referrer-Policy: strict-origin-when-cross-origin, and a restrictive Permissions-Policy disabling geolocation, microphone, camera, payment, USB, magnetometer, accelerometer, and gyroscope APIs.

Tenant isolation: every database row that holds user data carries an explicit user_id column. Database-level composite foreign keys require that child rows reference a parent row owned by the same user, enforcing tenant isolation at the database layer. Family access links between two accounts flow through dedicated read-only endpoints that check both the existence of an active link and the specific scope granted before serving any data.

Application-level access control:every API route validates the user's authenticated session via Clerk before reading any data. Internal-only endpoints use bearer-token authentication with constant-time comparison. During DueHub's closed beta, an allowlist further restricts access at the middleware layer.

Rate limiting: sensitive endpoints are rate-limited. Examples include the allowlist gate (30 requests/minute per user), credential configuration endpoints (10 attempts per 10 minutes), the account deletion endpoint (3 attempts per hour), the Family-access link-redemption endpoint (rate-limited to prevent brute-force redemption of link codes), and the internal sync trigger (5 requests/minute).

Logging hygiene: OAuth token-exchange and refresh requests do not log request or response bodies. Application error logs extract only error message strings rather than raw error objects, to avoid accidental token or response-body leakage.

Pre-beta security review: a structured security review was conducted on 2026-05-01, covering authentication, tenant scoping, token encryption, server-side request forgery defenses, PII in logs, security headers, and rate limiting.

Hosting location and data residency: DueHub uses Neon Postgres (US-East AWS region) for its database and Render (US-East) for its application server. Both providers are US-based, and DueHub stores and processes user data exclusively in the United States. We do not currently transfer user data outside of the United States; if that ever changes, this policy will be updated and existing users will be notified through the application.

Data Retention & Deletion

You can remove your data from DueHub at any time using the self-service actions below:

  1. Disconnect Google(Settings → Connections → Disconnect): immediately deletes your Google credentials row (encrypted access and refresh tokens, calendar list metadata, and identity columns) and all of your cached event rows. Clears your write-target calendar setting. Removes the Google event ID linkage from your DueHub study sessions. Before deletion, DueHub makes a best-effort revocation of your refresh token at Google's /revoke endpoint.
  2. Disconnect Google with delete-events option: identical to (1), and additionally deletes the events DueHub created from your Google Calendar via the events.deleteAPI. You choose between “delete N events from Google” and “leave events” in a confirmation prompt; the default is to leave events.
  3. Revoke or narrow a Family access link(Settings → Family access): a student can narrow the scopes shared with a linked parent, or revoke the link entirely, at any time. Revocation takes effect on the parent's next request. A parent can also unlink themselves from a student.
  4. Account deletion (Settings → Account → Delete account, with type-DELETE confirmation): hard-deletes every database row associated with your account — including third-party credentials, cached events, study sessions, assignments (including planned days), courses, preferences, notification settings and history, push notification device tokens, schedule-import records, feedback you submitted, and rate-limit counters — atomically in a single transaction. All Family access link records involving your account (as either student or parent) are also deleted, immediately severing any active links. Your Clerk authentication account is then deleted. An optional toggle deletes DueHub-created events from your Google Calendar before the database wipe. This endpoint is rate-limited to 3 attempts per hour.
  5. Data export (Settings → Account → Export my data): downloads a JSON copy of all data DueHub has stored about you. Encrypted credential ciphertext is excluded from the export; push notification device tokens are masked to their last characters.

Automatic retention windows (enforced by a daily cleanup job):

How to request deletion: the in-app deletion controls described above are self-service and immediate. You may also email admin@getduehub.com to request deletion; email requests will be honored within a reasonable business window.

Children's Privacy

Age requirement. DueHub is intended for students aged 13 and older. When you create a student account, you provide your date of birth so we can confirm you meet this age requirement. Parent accounts do not require a date of birth because parent accounts have no access to sensitive integrations or age-gated features.

Under-13 users. DueHub does not knowingly collect personal information from children under 13 without verifiable parental consent. If we learn that we have collected personal information from a child under 13 without such consent, we will delete that information. Parents of children under 13 who believe their child has provided personal information to DueHub, or who wish to inquire about a future consent process, may contact us at admin@getduehub.com.

Parental involvement (Family access).DueHub provides a Family access feature that lets students share a read-only view of parts of their DueHub account with a parent. This feature is described in detail in “Data Sharing” above. Family access is initiated by the student, scoped by the student, and revocable by the student at any time.

FERPA note.DueHub is a consumer product used directly by students; it is not provided under contract with a school and does not act as a “school official” under FERPA. When a student imports assignments or grades from Canvas or StudentVUE, the student is authorizing DueHub — as the student — to fetch that data using the student's own credentials. Schools that wish to provide DueHub to students under a formal FERPA arrangement should contact admin@getduehub.com.

State student-data laws.A number of U.S. states have laws governing the handling of student personal information (for example, California's SOPIPA and similar laws in other states). Where applicable, DueHub:

Research use, if a student has opted in to it, is subject to the constraints described in “Research and product improvement” above, including the exclusion of Google-obtained data and grades data, and the requirement that any external sharing be aggregated or de-identified.

Parents' rights. A parent of a DueHub student may:

For under-13 users specifically, verifiable parental consent would be required before we could collect personal information from the child in the first place; that consent mechanism is not yet implemented, which is why DueHub currently requires an age of 13 or older to create a student account.

Changes to This Policy

We may update this Privacy Policy from time to time. When we make material changes, we will update the “Last Updated” date and request your re-acceptance from within the application. The currently published version at https://app.getduehub.com/privacy is authoritative.

Contact

For privacy questions, deletion requests, parental inquiries, or to exercise any of the rights described above:

admin@getduehub.com


See also: Terms of Service