Noctiso

Privacy Policy

Last updated: 30 May 2026 · Effective: 8 June 2026

The short version. You can use Noctiso anonymously — your vault and Tuner preferences live on your device and we never see them. An account is optional and only needed for Premium or cross-device sync; if you create one we process your email to sign you in. Noctiso Premium is a paid subscription handled by Stripe, Apple, or Google — we never see your card. The free tier shows ads via Google's ad networks; Premium removes them. We count anonymous usage events to make the algorithm work. We never sell your data for money (US residents: see your state privacy rights below).

Who we are

Noctiso is operated by Anthony Eli Rasch — sapplify, sole proprietor registered in the Slovak Republic.

Anthony Eli Rasch — sapplify
PO Box 004
91501 Nové Mesto nad Váhom
Slovakia
IČO: 56665032

We are the data controller for any personal data processed in connection with the Noctiso website at noctiso.com and the Noctiso mobile applications on iOS and Android.

What data we handle

Noctiso is designed to do most of its work without ever sending your personal data to our servers. The list below is exhaustive — if it is not in this section, we do not handle it.

Stored locally on your device, never sent to us

  • Your vault. The frames you save sit in your browser's localStorage (web) or your app's private storage (iOS, Android). Clearing your browser data or uninstalling the app deletes them.
  • Your Tuner preferences. The affinity vectors the Tuner builds from your scrolling — moods, palette, narrative tone — are stored locally for the same reason: to make the next page of frames feel right to you. They never leave your device.
  • Session-only state. Your recent-signals buffer and dwell counter are not persisted at all; they reset on every reload.

Sent to our analytics service

See the Analytics section below for the complete event list and what each one contains. Nothing in those events identifies you personally.

Sent to our image CDN

When you load a frame, your browser or app fetches the image from our content delivery network (Bunny CDN). The CDN provider receives the standard HTTP request information — your IP address and user-agent string — as part of serving the file. See Image delivery & hosting.

Accounts & sign-in

Noctiso is usable anonymously. You only create an account if you want to subscribe to Premium or sync across devices — it is optional for free users and required for paid users. When you create one, we process:

  • Your email address — to sign you in, send magic-link sign-in emails, and contact you about your subscription. You provide it directly, or Apple / Google provide it when you use their sign-in. If you use Sign in with Apple's private-relay option, we only ever see the relay address.
  • A display name — optional, only if you choose to set one.
  • Authentication metadata — the sign-in provider used (email, Apple, or Google), timestamps, and the session tokens needed to keep you signed in.

Authentication is handled by Supabase Auth (operator: Supabase Inc.; see Image delivery & hosting). Sign-in emails are sent through Resend (Resend, Inc., USA) from the mail.noctiso.com domain. Apple and Google process the OAuth handshake when you choose those providers.

Legal basis: performance of a contract (GDPR Art. 6(1)(b)) — we cannot provide an account or a subscription without it. You can delete your account at any time (see Your rights).

Subscriptions & payments

Noctiso Premium is an optional paid subscription (monthly or annual, with a 7-day free trial on the annual plan). We never see or store your card number. Payment is handled entirely by the processor for your channel:

  • Web — Stripe (Stripe Payments Europe, Ltd.). Stripe collects and processes your payment details and, where applicable, tax information. We receive from Stripe only the subscription status, plan, billing-period dates, and a processor subscription ID — never the card data.
  • iOS — Apple handles the purchase through the App Store. We receive a transaction identifier and renewal / expiry signals via App Store Server Notifications.
  • Android — Google handles the purchase through Google Play. We receive equivalent signals via Google Play Developer Notifications.

What we store: a subscription record (processor, plan, status, trial and period-end dates, a processor subscription ID) and a single entitlement row (whether your account is currently Premium and until when), both keyed to your account. We also keep an append-only log of the billing notifications we process, for accounting and dispute resolution. No card numbers, bank details, or full billing addresses are stored on our side.

Legal basis: performance of a contract (GDPR Art. 6(1)(b)) for processing your subscription; legitimate interest (Art. 6(1)(f)) for keeping the billing log for accounting and fraud prevention.

Advertising

The free tier shows ads in the feed; Premium removes them entirely and makes no ad-network calls. Ads are served by:

  • Mobile (iOS, Android) — Google AdMob (Google Ireland Ltd.). AdMob may process advertising identifiers and device data to serve and measure ads.
  • Web — Google AdSense (Google Ireland Ltd.), when enabled.

Consent and tracking. Before any personalised ad is served on mobile we show Google's UMP consent form (the EU consent flow). On iOS we also show Apple's App Tracking Transparency prompt; if you decline, ads are served without the tracking identifier. You can change these choices in your device settings at any time. We block adult, gambling, and crypto ad categories at the network level.

We do not share your account, vault, or Tuner data with ad networks. The ad networks act as independent controllers for the advertising data they collect; see Google's advertising privacy disclosures for details.

Legal basis: consent (GDPR Art. 6(1)(a)) for personalised advertising, captured via the UMP / ATT flows.

Cross-device sync

If you are a signed-in Premium user, your vault and Tuner state sync across your devices. To do this we store, keyed to your account:

  • Saved frames — the IDs of the frames you have saved (references to public catalog frames, not image data) and when you saved them.
  • Your Tuner affinity vector — so a new device starts tuned to your taste rather than blank.
  • Named Tuner presets — any presets you save (up to 25).

This mirrors what already lives locally on your device; sync is what lets a second device see it. Free users' vault and Tuner state stay local-only and are never uploaded. Deleting your account removes these rows (see Your rights).

Legal basis: performance of a contract (GDPR Art. 6(1)(b)) — sync is a Premium feature you subscribe to.

What we do not collect

  • No account or personal identifiers for anonymous users — an account (email only) is created solely if you choose to sign in. See Accounts & sign-in.
  • No card numbers or bank details — payment is handled by Stripe, Apple, or Google and never reaches our servers. See Subscriptions & payments.
  • No phone number.
  • No location data, precise or approximate.
  • No contacts, calendar, microphone, camera, or other device sensor data.
  • No photo library access except when you explicitly save a wallpaper.
  • No selling of your personal data, ever.
  • No use of your account, vault, or Tuner data for advertising. (The free tier shows ads via Google's ad networks, which collect their own advertising data — see Advertising. Premium removes ads.)

Analytics

We use a first-party analytics service operated by sapplify (the same legal entity that operates Noctiso) to understand how the feed and the Tuner are performing. No third-party analytics provider is involved.

Identifiers

  • Device ID. A random UUID generated the first time you visit, stored in your browser's localStorage (web) or app storage (native). It contains no personal information. Clearing site data or reinstalling the app generates a new one. We have no way of linking it to you as a person.
  • Session ID. A random UUID that lasts for one browsing session and is not persisted across sessions.
  • User ID. null for anonymous users. If you are signed in, events carry your account's user ID so we can attribute your own activity to you (for example, to power cross-device features and measure subscription conversion). It is still never shared with third parties.

Events

The complete list of events Noctiso emits, with the data each one carries:

  • page_view — the page route you opened.
  • feed_scroll — a counter of how many frames you have scrolled past.
  • frame_dwell — the ID of a frame and how many milliseconds it stayed on screen.
  • vault_save / vault_remove — the ID of a frame added to or removed from your local vault.
  • story_open / story_read — the ID of a story you opened and (separately) read to the end.
  • frame_share — the ID of a frame you shared.
  • frame_download — the ID of a frame you downloaded.
  • tuner_reset — a signal that you cleared your Tuner. No payload.
  • account_signin_started / account_signin_completed / account_signup_completed / account_signout — account lifecycle, carrying only the sign-in provider used.
  • paywall_shown / paywall_cta_tapped / checkout_started / checkout_completed / subscription_cancelled — the subscription funnel, carrying the plan and processor, never payment details.
  • ad_impression / ad_click / ad_error — that an ad slot was shown, tapped, or failed, carrying the slot index and ad-network name.
  • vault_synced / affinity_synced / preset_saved / preset_switched — Premium cross-device sync activity.

Server-side, each event also carries your IP address (visible to any service serving you over HTTP) and your user-agent string, used for basic geographic aggregation and bot filtering. Raw IP addresses are retained for at most 30 days; after that, only the country-level aggregate is kept.

Purpose & legal basis

We process this data on the basis of legitimate interest (GDPR Art. 6(1)(f)) to operate, maintain, and improve the service. Because no personal data is collected and the analytics are first-party with no profile-building, no cookie consent banner is required under the ePrivacy Directive.

Image delivery & hosting

Noctiso uses two infrastructure providers to deliver the service:

  • Bunny CDN (bunny.net, operator: BunnyWay d.o.o., Slovenia, EU) — serves image files. Receives standard HTTP request data (IP, user-agent) when your browser or app fetches an image. Bunny does not run analytics on Noctiso traffic and does not share data with third parties for advertising. See Bunny's own privacy policy for their retention practices.
  • Supabase (supabase.com, operator: Supabase Inc., USA, with EU-hosted database in Frankfurt) — stores the frame, story, and series catalog (public content) and, for signed-in users, the account, subscription, entitlement, and synced vault / Tuner data described above. It also provides authentication (Supabase Auth).

The web app is hosted on Vercel (Vercel Inc., USA). The mobile apps do not require Vercel.

AI-generated content

Most of the imagery in Noctiso's catalog is generated using AI tools (currently Stable Diffusion XL, Grok Imagine, and other diffusion models) and curated by the operator. Each frame carries an ai_generated attribute in our database; the value is surfaced wherever disclosure is appropriate. Stories attached to frames are human-written in v0.1.

Generation tooling runs on the operator's own infrastructure. No user data is sent to any AI model or generation service as part of using Noctiso.

Cookies

Noctiso does not use HTTP cookies for analytics, advertising, or tracking. The only client-side storage we use is your browser's localStorage for your vault, your Tuner state, and your analytics device ID — all described above. None of it is sent on outbound requests except for the analytics events we already listed.

Children

Noctiso is not directed at children under 16. We do not knowingly collect data from anyone under 16. Because Noctiso has no accounts, age is not requested or verified; parents and guardians who wish to restrict access should use device-level parental controls. The mobile apps are rated 12+ on the App Store and equivalent on Google Play.

Your rights (GDPR)

Under the EU General Data Protection Regulation and equivalent laws in other jurisdictions, you have the following rights with respect to any personal data we hold about you. If you use Noctiso anonymously we hold no personal data tied to you as an individual, so several of these rights are satisfied by design; if you have an account, they apply to your account data.

  • Right of access. Signed-in users can email privacy@sapplify.com from their account email to request the data tied to their account. Anonymous users can supply a device ID (if they have one) to request the analytics events tied to it; without one, we have no way to identify the data.
  • Right to erasure. Signed-in users can delete their account from the account screen, or by emailing us — this removes the account, subscription record, and synced vault / Tuner data (an active subscription should be cancelled through the relevant store first). Anonymous users can clear browser data for the noctiso.com origin (web) or uninstall and reinstall the app (native), which resets the analytics device ID. We also honour explicit erasure requests by email.
  • Right to rectification, restriction, portability, and objection. Email privacy@sapplify.com.
  • Right to lodge a complaint. You may complain to your local data protection authority. For Slovakia, that is the Office for Personal Data Protection (dataprotection.gov.sk).

US state privacy rights

If you live in California or another US state with a consumer privacy law (including Virginia, Colorado, Connecticut, and others), you have specific rights over your personal information.

We do not sell your personal information for money. However, when the free tier shows ads, the advertising identifiers and device data processed by our ad networks (see Advertising) may count as a “sale” or “sharing” of personal information for targeted advertising under some state laws. You can opt out:

  • In the app — use the “Do Not Sell or Share My Personal Information” choice in the privacy prompt we present, or limit ad tracking in your device settings (iOS: Settings → Privacy & Security → Tracking; Android: Settings → Privacy → Ads).
  • Go Premium — Premium removes ads entirely, so no ad-related sharing occurs.

Subject to your state's law, you also have the right to:

  • Know what personal information we process, and request a copy.
  • Delete your personal information.
  • Correct inaccurate personal information.
  • Opt out of targeted advertising, “sale,” or “sharing” as described above.
  • Not receive discriminatory treatment for exercising any of these rights.

To exercise any of these, email privacy@sapplify.com. We do not knowingly sell or share the personal information of anyone under 16.

Changes to this policy

We update this policy when Noctiso adds features that change how data is handled. This version (effective 8 June 2026) reflects the v0.2 release: optional accounts, the Premium subscription, ads on the free tier, and cross-device sync. We will not retroactively apply weaker terms to data we have already collected under a stricter policy. The current effective date is shown at the top of this page.

Contact

Privacy and data protection inquiries: privacy@sapplify.com.

General inquiries: contact@sapplify.com.