SmartScroll Privacy Policy

Last updated: July 8, 2026

SmartScroll is a learning app for students, set up and managed by a parent or legal guardian. This policy explains, in plain language, exactly what we collect, why, how long we keep it, and how to delete it. It is written to match what our software actually does, not what a template says.

SmartScroll is operated by SmartScroll LLC (34 14th St, Wheatland, WY 82201; (704) 615-0231). Questions or privacy requests: admin@smartscroll.org.

The short version

What we collect, why, and for how long

From parents

Your email address. This is the only email address in our system. We use it to sign you in (we email you a one-time sign-in link instead of using passwords) and, if you subscribe, to send billing notices such as a failed payment or an upcoming renewal. It is kept until you delete your account or until the automatic inactivity purge removes it.

A consent record. When you link your child's device, we record that you consented: the time, a one-way hash of your IP address (we deliberately do not keep the IP address itself), and the first part of your browser's identification string. We keep this so we can show that a parent, not a child, approved the collection. It is deleted with your account.

Subscription state. If you subscribe, we store your plan (Good, Better, or Best) and billing period, its status, the billing period end date, and two Stripe identifiers (a customer ID and a subscription ID). See "Payments" below for what Stripe holds and we never do.

Your timezone and email preferences. When you are signed in, your browser's timezone is captured so the weekly progress email is sent at a sensible local time. If you unsubscribe from an email, we store that preference (separately for the weekly digest and the session-reminder emails) so we honor it. Both are kept until you delete your account.

Report-card grades you enter (optional). From your dashboard you may log a student's real report-card grade (a subject, a value such as "B+", and a date) so you can see progress before and after. This is entered by you, shown only to you, and kept as an append-only history until you delete the student or account. The student's device never sends or receives it (see below).

From students

First name only, and an optional grade level. By design, we cannot store more than that: our server keeps only the first word of whatever name is entered, capped at 24 characters, and the database refuses anything longer. No surname, no birthdate, no student email address, no photo, no free-form profile. If no name is given, we use "Student".

Learning progress. One progress record per student. It holds the data that powers the feed's adaptivity, the tutoring program, and the parent dashboard, in these categories:

This is what powers the feed's adaptivity and the parent dashboard. On the parent dashboard we show a computed summary built from this record (progress by subject, skills mastered, where the student is stuck, recent session reports, and time on task); the raw progress record itself is not exposed.

A device sync credential. The student's device holds a random sync token that lets it save progress. We store only a one-way hash of it, so neither we nor anyone who obtained our database could impersonate the device.

Progress is kept until the parent deletes the student or the account, or until the automatic 24 month inactivity purge.

From everyone

IP addresses. We use the IP address on each request to enforce rate limits (so nobody can flood the tutor, guess link codes, or spam sign-in emails). These live in short-lived counters that expire on their own, the longest within about 48 hours. We never write raw IP addresses to our database or our logs; the one place an IP-derived value is stored, the parental consent record, holds only a one-way hash.

Aggregate analytics. We use Vercel Analytics (first party, cookie-free) to count product events such as "onboarding completed", "tutor message sent", or "photo solve started", with coarse labels like the subject ("math") or the plan ("monthly"). No names, no typed content, and no student identifiers are attached to these events. We also use Vercel Speed Insights, which measures page load performance. We run no advertising trackers and no cross-site tracking.

Server logs. Our servers write structured technical logs (which route failed, an HTTP status, a latency). They are built so that personal data never enters them: no emails, no names, no student text, no photos. Logs are hosted by Vercel and expire on Vercel's platform schedule.

What we never collect

No student email, password, phone number, birthdate, surname, or photo of the student. No contacts, no precise location, no microphone or camera access beyond the homework photo the student chooses to submit, no social features, no public profiles, no messaging between users, no advertising identifiers.

The AI tutor, photo solver, and teach-back (Google Gemini)

When a student uses the tutor, the photo solver, teach-back, or the study-plan matcher, the text they typed (and the homework photo, for the solver) is sent to Google's Gemini API to generate the response. What happens to that data:

Payments (Stripe)

Subscriptions are processed by Stripe. Checkout happens on Stripe's own payment page, so your card number, CVC, and billing address go directly to Stripe and never touch our servers, ever. What we store is only: your plan, its status, the current period end date, a Stripe customer ID, and a Stripe subscription ID. Stripe holds the payment details and invoice history under its own privacy policy, and you can manage or cancel your subscription in Stripe's billing portal from your family page.

Children's privacy (COPPA)

SmartScroll is designed for students roughly 11 to 14 and is built so that a parent or legal guardian controls the student's data from start to finish.

How consent actually works. A student's device works on its own with everything stored locally on that device. Nothing about the student reaches our servers until a parent links the device:

  1. On the child's device, the student taps "Save your progress", which shows a 6-character code. The code, and the device's pending progress, are held for at most 15 minutes.
  2. The parent signs in on their own device with their email (a one-time sign-in link that expires in 15 minutes and works exactly once).
  3. Before anything is linked, the parent sees a consent screen stating exactly what will be collected (first name only, optional grade, learning progress), why, for how long, and how to delete it, with a checkbox: "I am this child's parent or legal guardian, and I consent to SmartScroll collecting this information for my child."
  4. Only when the parent checks the box and confirms does our server create the student record. At that moment we record the consent: the timestamp, a one-way hash of the parent's IP address, and the browser identification string. The link cannot be completed without the explicit consent flag; the server rejects the request otherwise.

Parent rights, all self-serve on the family page:

Automatic deletion. Every week, a scheduled job on our servers deletes:

Your choices and rights

How we protect it

All traffic to SmartScroll and between SmartScroll and every provider is encrypted in transit (TLS). Our database is encrypted at rest by our database provider. Sign-in links and sessions use signed, single-use, expiring tokens instead of passwords. Device credentials and the consent IP are stored only as one-way hashes. Access to production systems is restricted and protected with two-factor authentication. Our full written security program and retention schedule exist as standing internal documents.

Service providers

We use a small number of providers, each only to run the product:

ProviderWhat it doesWhat it processes
VercelHosting, serverless functions, scheduled jobs, aggregate analytics, technical logsAll app traffic; aggregate product events; PII-free logs
SupabaseOur database (Postgres)Parent email, consent record, student first name and grade, progress, subscription state
Google (Gemini API)Generates AI tutor, solver, plan, and teach-back repliesThe text a student types and homework photos, per request only, paid no-training tier
StripePayments and subscription managementPayment card and billing details (held by Stripe, never by us)
ResendSends our emailsParent email address and the sign-in or billing message
UpstashRate-limit countersIP-derived counter keys that expire automatically

We do not sell personal information, we do not share it for advertising, and no provider may use it for anything except providing its service to us.

Changes to this policy

If we change what we collect or how we use it, we will update this page and the "Last updated" date, and for any material change affecting children's data we will notify parents by email and, where required, obtain new consent before the change applies to their student.

Contact

SmartScroll LLC

34 14th St, Wheatland, WY 82201

(704) 615-0231

admin@smartscroll.org

Terms of Service  ·  Disclaimer