Privacy Policy

Last updated: August 2026

Children's Privacy (COPPA)

Storyori is operated by Storyori LLC ("Storyori", "we", "us", or "our"). Parents and guardians create and manage accounts, and children use the service through profiles their parent or guardian sets up and supervises. We comply with the Children's Online Privacy Protection Act (COPPA) and require verifiable parental consent before collecting any information related to a child under 13.

  • We collect only the minimum information needed to provide the service.
  • Character names chosen by your family appear in story text and are sent to our story generation provider to write the story. Character names are removed from image generation requests and replaced with anonymous labels.
  • We do not use children's personal information to train, develop, or improve artificial intelligence or machine learning models.
  • If a parent does not provide consent, we will not collect any personal information from the child and the child will not be able to use the service.
  • Parents can review, modify, or delete their child's data at any time from the Settings page.
  • Parents may refuse to permit any further collection or use of their child's information by withdrawing consent at any time. Because the service cannot function without this information, withdrawing consent ends the child's use of the service and triggers deletion of all associated child data.
  • Sharing a child's stories outside the account is off by default, requires a separate parental consent, and can be withdrawn at any time. See "Story Sharing" below.

What We Collect

  • Account information: Parent's email address for authentication (collected via Clerk, our authentication provider, using Google sign-in).
  • Parent verification records: An auditable confirmation that an adult parent or guardian verified themselves before any child information was collected, including the verification timestamp and the email address used. For accounts that enable sharing, a record of the card transaction used as the stronger verification (a reference to the Stripe transaction; we never see or store card numbers).
  • Consent records: Each consent a parent gives or withdraws, with a timestamp and the exact text that was shown.
  • Child profiles: First name, birthday (optional), reading level, and content preferences, entered by the parent.
  • Stories and characters: Story content, character profiles, and associated images created within the app.
  • Photos (optional): If the parent enables photo uploads, a photo the parent uploads to create a character. The photo is used to generate the character image and is not saved; only the generated character image is stored.
  • Reading activity: Reading progress, streaks, and badges, used to power those features for the child.
  • Usage events: Basic first-party usage events (such as which screens are used) for operating and debugging the service. We use no third-party analytics.
  • Sharing data: If the parent uses sharing, the account's family code, links to other accounts, the household names parents choose, and a record of each sharing action.
  • Payment information: Subscription and billing details are collected and processed by Stripe. We do not store credit card numbers.

How We Collect Information

  • Directly from parents: Account registration, child profile creation, story preferences, content settings, and optional photo uploads are entered by the parent.
  • Through app usage: Stories, characters, images, and reading activity are generated as the child uses the app.
  • From authentication providers: Email address and basic profile information via Clerk using Google OAuth.
  • Through parent verification: Confirmation that an adult parent or guardian responded to the verification email sent to their address, and, for sharing, completion of a card transaction (see "Parent Verification" below).
  • Automatically: Session identifiers and cookies necessary for authentication and app functionality. We do not use tracking cookies or third-party analytics cookies.

How We Use Information

We use collected information solely to provide the Storyori service as described below:

  • To generate personalized stories and characters based on the child's age, reading level, and preferences.
  • To generate illustrations for stories and character portraits.
  • To power reading features such as progress, streaks, and badges.
  • To share stories with the audiences the parent chooses (see "Story Sharing").
  • To manage the parent's account and subscription.
  • To enforce content safety settings configured by the parent.

Story Sharing and Public Availability

Storyori lets parents share a child's stories. All sharing is off by default, every sharing decision requires the parent's PIN, and sharing outside the account additionally requires a paid subscription (which provides the card-based parental verification) and a separate, explicit parental consent.

  • Family sharing: Stories can be shared between the child profiles within your own account. Nothing leaves your account.
  • Linked families: Parents can link their account with another family's account using a family code. Stories a parent shares with linked families can be read by everyone in those households, who also see the sharing child's profile name and the characters in the story.
  • Featured stories: Parents can submit a story to be featured publicly for all Storyori readers. Submissions are reviewed by us before appearing. Featured stories are anonymous: readers are never shown the child's name or profile.
  • Photo-based characters never leave your account. Stories containing characters created from an uploaded photo cannot be shared with linked families or featured.
  • Withdrawal: The parent can withdraw sharing consent at any time in Settings. Withdrawing immediately stops all sharing outside the account, including stories already shared. Individual stories can also be unshared at any time from their share menu.

Third-Party Services

Storyori relies on third-party services to function. Below is a complete list of third-party providers, what data is shared with each, and why.

AI and Content Generation

  • Amazon Web Services (AWS) Bedrock, running Anthropic Claude models: Story text generation and character creation. Receives story prompts containing the child's age range, reading level, content preferences, and the character names and descriptions your family creates. If a parent uploads a photo for character creation, a reduced-size copy is analyzed here to write the character's appearance description. AWS commits that Bedrock data is not used for model training and is never shared with model providers.
  • Replicate: Primary image generation for story illustrations and character portraits (running a Google image model). Receives image prompts with character names replaced by anonymous labels, character appearance descriptions, scene descriptions, and reference images. If a parent uploads a photo for character creation, the photo is sent to this service to generate the character image.
  • Google Cloud Vertex AI: Backup image generation used when our primary image provider is at capacity. Receives the same image data as Replicate. Google commits that Vertex data is not used to train its models.

Infrastructure and Storage

  • Neon: Our database provider. Stores application data (child profiles, stories, characters, reading activity, and account records). Data is encrypted at rest.
  • Amazon Web Services (AWS) S3: Stores generated images (story illustrations and character portraits). Data is encrypted at rest.
  • Railway: Application hosting. Receives and processes HTTP requests, which include IP addresses and request metadata, and retains request logs for up to 30 days.

Authentication, Payments, and Email

  • Clerk: Handles parent account authentication and session management. Receives the parent's email address via Google OAuth sign-in.
  • Stripe: Processes subscription payments. Receives the parent's payment details (credit/debit card information). We do not store card numbers on our servers.
  • Resend: Sends our transactional email (parent verification and account emails). Receives the parent's email address and the content of those emails.

Parent Verification

We verify each parent's email address using a confirmation link sent to them at account setup. Approximately 24 hours later, we send a follow-up email to the same address giving the parent an opportunity to dispute the original setup. Verification expires twelve months after it is completed, after which the parent is asked to verify again before continuing to use the service.

For sharing outside the account, we use a stronger verification: the parent's subscription payment through Stripe, which produces a charge the cardholder is notified of. We record a reference to that transaction as verification evidence. Storyori is the operator for these verification flows; no third-party verification service is involved.

We do not share children's personal information with any third party for advertising, marketing, or any purpose unrelated to providing the service.

Cookies and Session Identifiers

Storyori uses cookies and session identifiers strictly for authentication and core app functionality. These include:

  • Authentication cookies: Managed by Clerk to maintain your login session.
  • Session identifiers: Used to associate requests with your account while using the app, including the short-lived cookie that keeps parental settings unlocked after the parent enters their PIN.

We do not use tracking cookies, advertising cookies, or third-party analytics cookies. Persistent identifiers are used solely for the internal operation of maintaining your authenticated session. These identifiers are not used to contact a specific individual, build a profile for behavioral advertising, or track children across websites or services.

Data Retention

Below are the retention periods for each category of data, and why each is kept:

  • Child profiles, stories, characters, images, and reading activity: Retained for the duration of the active account so the child can continue reading their stories and using their characters. Deleted, including stored images, when the parent deletes the child's profile or the account.
  • AI prompts and responses: Not stored beyond the immediate request lifecycle. Prompts are sent to AI providers, a response is received, and neither is persisted on our servers. Uploaded photos are likewise not saved; only the generated character image is stored.
  • Usage events: First-party usage events are retained while the account is active and deleted with the account.
  • Authentication data (parent email): Retained for the duration of the active account. Deleted when the account is deleted.
  • Payment information: Managed and retained by Stripe in accordance with their data retention policies. We do not store payment card details.
  • Consent, verification, and parental-request records: Records proving that parental consent was obtained or withdrawn, that verification occurred, that sharing decisions were made, and that parental requests (deletion, export) were received and honored are retained after account deletion, because the law requires us to be able to demonstrate compliance. They are kept only for that purpose and contain no story content or images.
  • Billing records: Records of subscription transactions are retained after account deletion as required for tax and accounting purposes.
  • Server logs: Request logs, including IP addresses, are retained by our hosting provider for up to 30 days.

When a parent requests deletion of their child's data, we delete all associated data from our database and image storage. Only the compliance and billing records described above are retained, solely for the legal purposes stated.

Parental Rights

As a parent or guardian, you have the right to:

  • Review all personal information collected about your child, including a downloadable export of their stories, characters, and activity.
  • Delete individual child profiles and all associated data (stories, characters, and images).
  • Grant or withdraw sharing consent. Withdrawing immediately stops all sharing outside your account.
  • Enable or disable photo uploads at any time.
  • Refuse further collection of your child's information by withdrawing consent, which deletes all account data and ends use of the service.

To exercise any of these rights, visit the Settings page within the app, or contact us using the details below.

Deleting your Storyori account removes all information Storyori holds about you and your child, except the limited compliance and billing records described in "Data Retention".

Data Security

We maintain security measures designed to protect children's personal information from unauthorized access, use, or disclosure. Data is encrypted at rest in our database and image storage. All data transmitted between the app and our servers, and between our servers and third-party providers, is encrypted in transit using TLS. Parental settings and sharing controls are protected by a parent PIN verified on our servers. No method of electronic transmission or storage is 100% secure, and we cannot guarantee absolute security.

Contact Us

Storyori LLC operates this service. For privacy questions or to exercise any parental right:

  • Email: [privacy contact email]
  • Mail: [mailing address]
  • Phone: [phone number]

Changes to This Policy

We may update this privacy policy from time to time. If we make material changes to how we collect, use, or share children's personal information, we will provide direct notice to parents before implementing the changes. Where material changes affect how previously collected personal information is used, we will obtain new parental consent before using the information in the materially different manner. We will also update the "Last updated" date at the top of this page.