Cookie Policy

Learn how we use cookies and similar technologies to enhance your experience.

Effective date: 1 November 2025Version: 1.0

This Cookie Policy explains how StoryBored ("we", "us", "our") uses cookies and similar technologies on storybored.ai and related apps (the "Service"). It should be read together with our Privacy Policy.

What are cookies?

Cookies are small text files placed on your device to make sites work or function better. We also use localStorage, sessionStorage, and IndexedDB ("similar technologies"). Some cookies are set by us (first-party); others are set by our service providers (third-party).

Legal basis & consent

  • Essential cookies are necessary for the Service and are set under legitimate interests (GDPR Art. 6(1)(f)).
  • All other categories (Preferences, Analytics, Marketing) are set only with your consent (GDPR Art. 6(1)(a)).

You can grant, deny, or withdraw consent at any time via the Cookie Settings link in the footer.

How we categorize cookies

  • Essential – Security, sign-in, load balancing, network protection.
  • Preferences – Remember choices such as theme, language, reader settings.
  • Analytics (opt-in) – Understand usage to improve UX; not for profiling.
  • Marketing (opt-in) – Measure campaigns; only if you consent.

What we do not do

  • We do not sell your personal data.
  • We do not use fingerprinting or cross-site tracking without consent.
  • We do not use your books, prompts, or images for advertising.

Managing your choices

Use Cookie Settings to toggle categories. You can also control cookies in your browser:

  • Firefox: Preferences → Privacy & Security → Cookies and Site Data
  • Chrome: Settings → Privacy and security → Cookies and other site data
  • Edge: Settings → Cookies and site permissions
  • Safari: Settings → Safari → Advanced → Website data

Blocking some cookies may impact functionality.

Retention

We store cookies for the durations below (see Annex). LocalStorage/IndexedDB items persist until you clear them or we delete them programmatically.

Third-country transfers

Some providers may process data outside the EEA. Where they do, we rely on SCCs and appropriate safeguards, as described in our Privacy Policy.

Updates

We may update this Policy. We'll post changes here with a new "Effective date" and update the in-product consent banner if needed.

Contact

Questions?

privacy@storybored.ai
Postal: [Company legal name], [Address]

Annex A – Detailed cookie & storage table (sample)

Replace or confirm names/retention based on your actual implementation. Leave items you use; remove the rest.

Essential (always active)

NameTypeProviderPurposeRetention
sb_sessionHTTP-only cookieStoryBoredKeeps you signed in (session integrity).Session / up to 7 days (if "remember me").
sb_csrfCookieStoryBoredCSRF protection during form/API actions.Session
sb_consent_v2CookieStoryBoredStores your category choices so we honor them.6 months
__cf_bm, cf_clearanceCookieCloudflare (3P)Bot management / DDoS protection / challenge state.30 min / up to 1 year (varies)
sb_routeCookieStoryBoredLoad balancing / edge routing stickiness.Session

Preferences (opt-in)

NameTypeProviderPurposeRetention
sb_themelocalStorageStoryBoredLight/dark/system theme.1 year
sb_reader_fontlocalStorageStoryBoredReader font & size preferences.1 year
sb_reduced_motionlocalStorageStoryBoredHonors reduced-motion setting in the reader.1 year
sb_langCookieStoryBoredUI language.1 year

Analytics (opt-in)

Choose one stack; examples shown for cookieless + cookie-based options.

Option A – Plausible (cookieless by default)

NameTypeProviderPurposeRetention
(none by default)Plausible (3P, EU)Anonymous, cookieless analytics.

Option B – PostHog (self-hosted or EU cloud)

NameTypeProviderPurposeRetention
ph_phc_<siteID>_posthogCookiePostHog (3P)Event analytics (if cookies enabled).1 year
sb_analytics_optinlocalStorageStoryBoredRecords your analytics consent state.1 year

Marketing (opt-in; only if you run ads)

NameTypeProviderPurposeRetention
_gcl_auCookieGoogle Ads (3P)Conversion tracking.3 months
_fbpCookieMeta (3P)Ad delivery/measurement.3 months
_tt_enable_cookie, _ttpCookieTikTok (3P)Conversion tracking.13 months
sb_utmlocalStorageStoryBoredStores first-touch UTM for on-site attribution only.90 days

Annex B – Consent management details

Banner & preferences panel

  • We display a banner on first visit (and after 6 months or material change).
  • Categories: Essential (locked), Preferences, Analytics, Marketing.
  • Buttons: Accept all, Reject non-essential, Save choices.
  • You can revisit choices anytime via Cookie Settings in the footer.

Granular consent logs

  • We store a consent record (sb_consent_v2) with: timestamp, country/region, categories chosen, version of this policy.
  • Retention for consent logs: 6 years (separate from the cookie itself) for compliance purposes.

Do Not Track / GPC

If your browser sends Global Privacy Control (GPC) or Do Not Track, we interpret it as a signal to reject non-essential cookies by default, which you can override in Cookie Settings.

Annex C – Similar technologies we use

  • localStorage / sessionStorage for UI preferences, consent state, and session hints.
  • IndexedDB for offline reader cache (book assets); cleared when you use Clear cache in Settings or your browser clears site data.
  • CDN caching may transiently store anonymized assets at the edge to improve performance.

Optional clauses you can toggle based on product decisions

  • Analytics choice: If you always use cookieless analytics (e.g., Plausible), remove the PostHog row.
  • Marketing: If you are pre-launch with no ads, remove the Marketing table and category toggle.
  • Data residency: Add: "We store analytics on EU-based infrastructure where feasible."
  • IAB TCF: If you adopt IAB TCF v2.2, add a note that you honor that framework in addition to your own banner.