happy patterns. ← Back

Terms & Privacy

Last updated: 9 September 2026

These Terms of Use and this Privacy Policy cover the Happy Patterns app for iPhone and iPad ("the App"), published by Shashank Shekhar Tomar ("we", "us").

Terms of Use

By downloading or using the App, you agree to these Terms. If you do not agree, please do not use the App.

1The app

Happy Patterns is a collection of interactive visual effects for iOS. It has no user accounts, no login, and no social features. You download it from the Apple App Store and use it on your own device.

2Your licence and Apple's EULA

These Terms supplement, and do not replace, Apple's standard Licensed Application End User Licence Agreement (the "Apple Standard EULA"), which also applies to your use of the App. Where these Terms and the Apple Standard EULA conflict, the Apple Standard EULA governs to the extent of the conflict.

Under that licence you may use the App on any Apple device that you own or control, as permitted by the App Store Terms of Service, for your own non-commercial use. You may not copy, redistribute, sell, rent, sublicense, reverse-engineer, or attempt to extract the source, shaders, or artwork of the App, except where such restriction is prohibited by law.

3Purchases

  • Happy Patterns is sold as one-time purchases: individual categories and collections (fixed, named sets of categories). There is no subscription and no recurring charge.
  • All purchases are processed by Apple through the App Store. We do not see or handle your payment details.
  • A purchase unlocks the corresponding content on the Apple ID that bought it, and can be restored on your other eligible devices.
  • Payments, refunds, and billing are subject to Apple's terms. Refund requests are handled by Apple, not by us.

4Acceptable use

Use the App lawfully and for its intended personal purpose. Do not attempt to disrupt, misuse, or circumvent the App's purchase or technical protections.

You represent that you are not located in a country that is subject to a U.S. Government embargo or designated as "terrorist-supporting", and that you are not on any U.S. Government list of prohibited or restricted parties, as required by the Apple Standard EULA.

5Intellectual property

The App, the "Happy Patterns" name, and its designs, visual effects, and code are owned by Shashank Shekhar Tomar and protected by intellectual-property laws. These Terms do not transfer any ownership to you.

6Disclaimer of warranties

The App is provided "as is" and "as available", without warranties of any kind, whether express or implied, to the fullest extent permitted by law. We do not warrant that the App will be uninterrupted, error-free, or compatible with every device or iOS version.

7Limitation of liability

To the fullest extent permitted by law, we will not be liable for any indirect, incidental, or consequential damages arising from your use of the App. Nothing in these Terms limits liability that cannot be limited under applicable law.

8Apple

These Terms are between you and us only, not with Apple. We, not Apple, are solely responsible for the App and for providing any maintenance and support for it. Apple has no obligation to provide maintenance or support for the App. If the App fails to conform to any applicable warranty, you may notify Apple, and Apple will refund the purchase price to you; to the maximum extent permitted by law, Apple has no other warranty obligation with respect to the App. Any other claims relating to the App — including product-liability, legal-and-regulatory-compliance, and intellectual-property claims — are our responsibility, not Apple's, as set out in the Apple Standard EULA. Apple and its subsidiaries are third-party beneficiaries of these Terms and may enforce them against you.

9Changes to these Terms

We may update these Terms from time to time. When we do, we will revise the date above. Continued use of the App after changes take effect means you accept the updated Terms.

10Governing law

These Terms are governed by the laws of the State of Victoria, Australia, without regard to conflict-of-laws rules, except where mandatory local consumer-protection law applies to you.

11Contact

These Terms are offered by Shashank Shekhar Tomar, 3/1 Esther Ct, Mount Waverley, VIC 3149, Australia. Questions about these Terms? Email support@happy-patterns.app.

Privacy Policy

How the App handles information. The short version is in the box; the sections below give the detail.

Happy Patterns has no accounts and no backend of our own that stores your content. It asks for no directly identifying information — no name, email, precise location, or contacts, and it never records or captures the patterns and artwork you create. The only data it can send is limited usage data that is not tied to your identity, used only to understand how the App is used, and which you can turn off at any time in Settings. Separately, and only if you switch it on yourself, the App can register with Apple's iCloud so it can send you one notification when a new world launches; that is described in section 4.

1No accounts, no directly identifying information

You do not create an account to use Happy Patterns, and there is no sign-in. We do not ask for or collect your name, email address, phone number, precise location, contacts, photos, or the patterns and artwork you create in the App.

2Usage data

To decide what to build next, we want to understand how the App is used — for example how often it is opened, which pattern categories people enter, which visualizations they open and roughly how long they spend with them, how people share what they make, and how people move through the purchase screen. We also want to know when the App crashes or hits a failure it handles itself, so that we can fix it. We use PostHog for this. PostHog acts as our data processor / service provider: it handles the data only on our behalf and under contract, and events are sent to PostHog servers in the European Union. See PostHog's Data Processing Agreement and list of subprocessors.

What is collected:

  • Usage events: a small, fixed set of pre-defined events — when the App is opened; when a pattern category's gallery is opened; when a visualization is opened and when it is closed, together with how long it was on screen; and when a card for a category that is not out yet is tapped. The events about a pattern category record which category it was, and the events about a visualization record which visualization as well — each of those chosen from a short, fixed list we defined in advance, never free text. The app-open event records nothing beyond the technical context below.
  • Paywall and purchase events: when the purchase screen is shown, and when a purchase is started, completed, cancelled, or fails, we record that it happened together with which pattern category and visualization the screen was opened from, where in the App the purchase began, and which product it was — each of those chosen from a short, fixed list we defined in advance. No prices, amounts, currencies, receipts, transaction identifiers, Apple-account identifiers, or error messages are ever included.
  • Sharing events: when you share a pattern, we record that the sharing screen was opened, whether the output was an image or a video, how many seconds a recorded video ran, and what kind of destination it went to — for example a photo library, AirDrop, a messaging app or a mail app — chosen from a short, fixed list we defined in advance. We never include the image or video itself, its file name, or the identifier of the app you sent it to; a destination that is not on our list is recorded only as "other".
  • Crash and error reports: if the App crashes while analytics is on, the App itself records a crash report on your device and sends an anonymous summary of it the next time it opens: the kind of crash, the App version and build number of the build that crashed, and a list of the code locations involved, written as the names of program components and numeric addresses within them, which we match to our own build files to read. If iOS ends the App instead (for example because it stopped responding), iOS gives the App a report the next time it opens and we send the same kind of summary. iOS also reports when the App froze (a "hang") or used too much CPU time or disk-write activity, and we send the same kind of anonymous summary for those: the kind of failure, the App version and build number of the build it happened on, and the same code-location list. No text from your screen, no file names, no folder names from your device, and no crash or error messages are included. Turning analytics off also deletes any crash report still waiting on your device. We also record a small, fixed set of internal failures the App handles itself (for example a purchase that could not be verified or an image export that failed) as where in the App it happened, chosen from a short, fixed list we defined in advance, and the name our code or the operating system gives that kind of failure, never free text and never the error's own message.
  • Basic technical context: the App version and build number, the major version of iOS on your device, the time each event occurred, and whether the build is a test or production build. The analytics library adds a little more of the same kind: your device's model and type (for example "iPhone"), its manufacturer, the name and version of the operating system, the screen size, the App's name and identifier, whether the build came from TestFlight, and the name and version of the analytics library itself. We remove your device's time zone, language and locale, its name, and whether it is on Wi-Fi or cellular before anything is sent.
  • How it is sent: events may be stored briefly on your device and sent to PostHog in batches, so that one made while you are offline still arrives when you reconnect. Turning analytics off deletes any events still waiting on your device, along with everything the analytics library had stored there.
  • A random identifier stored on your device while analytics is on, so we can tell that events came from the same installation of the App — for example, to see whether people come back. It is not linked to you and is never used to identify you, and it is deleted from your device when you turn analytics off. A second random identifier is generated afresh each time the App runs, to group the events from that run.

What is never collected or done: no directly identifying information and no free-text; no recording or capture of the patterns and artwork you create, and none of the imagery itself — the usage events above name only which built-in visualization was on screen, from the fixed list described above; no screen recording, session replay, or automatic screen capture; no automatic capture of taps, screens, or App launches — every event is one we defined in advance and send deliberately; no feature flags; no payment details, prices, amounts, currencies, receipts, transaction identifiers, or Apple-account identifiers; no crash messages or error text; no advertising; and no tracking of you across other apps or websites.

Nothing contacts PostHog until you have opted in. While analytics is off, the App does not start the analytics library at all: it makes no request of any kind to PostHog, and it stores nothing on your device for it. There is one exception, and nothing about it leaves your device. The crash handler cannot be shut down once it has started, so if you turn analytics off and the App then crashes before you next open it, a crash report may still be written onto your device. The next time you open the App with analytics off, the App deletes any such report without sending it. It is never sent. The first time an event is sent after you opt in, the library makes one configuration request to PostHog, carrying only our project identifier. We do not use it for feature flags, and it does not carry anything about you.

Sending an event necessarily reveals your device's IP address to PostHog's servers at the network level, as with any internet request. The App sends a setting that disables PostHog's location lookup, so your IP is not used to estimate your location, and it is never used by us to identify you. PostHog is also configured to discard client IP addresses, so your raw IP is not retained with your events. Your data is stored in PostHog's EU data centre; PostHog and its subprocessors may process some data in other countries under appropriate safeguards, such as Standard Contractual Clauses, as set out in PostHog's Data Processing Agreement linked above. This data is subject to the retention period below. Because an IP address can itself count as personal data under laws such as the GDPR, this data collection is consent-gated as described in the next section.

3Legal basis and your consent

Where the GDPR or UK GDPR applies, our legal basis for collecting this usage data is your consent (Article 6(1)(a)). You control all of it through the Share anonymous analytics switch in Settings › Analytics:

  • In the EU, EEA, UK, and any region we cannot determine, analytics starts off until you turn it on.
  • Elsewhere it starts on, and you can turn it off at any time.
  • Your device's region is used only to choose this initial default. It is never stored or transmitted.
  • When analytics is off, nothing leaves your device — not the events, and not a request of any other kind to PostHog. Turning it off also deletes the random identifier and any events still waiting to be sent. Withdrawing consent does not affect processing that already lawfully took place.

4Notifications (optional)

Happy Patterns sends no notifications unless you ask it to. There is no prompt on first launch: the iOS permission request appears only after you open the New World Alerts screen — from the coming-soon card on the home screen, or from Settings — and press the button there.

If you switch it on, the App registers a subscription with Apple's CloudKit, in Apple's own public database for this App, so that Apple can notify your devices when we add a new world. It sends one notification per new world — a few times a year at most. There are no reminders, streaks, offers, or badges of any kind.

  • What we receive: nothing. The subscription lives in Apple's iCloud, not on a server of ours; we have no way to see who has switched it on, and no list of recipients. We create one record naming the new world, and Apple delivers it.
  • What Apple handles: Apple associates the subscription with your Apple Account and handles delivery through its push service. That is Apple's processing under Apple's own privacy policy, not ours. Because it is tied to your Apple Account rather than to one device, switching it on covers your devices signed in to that account, and switching it off removes it from all of them.
  • Why it needs iCloud: creating the subscription is a write to Apple's iCloud, so it requires you to be signed in to an Apple Account with iCloud enabled for Happy Patterns. Without one, the screen says so and the switch stays off. Nothing else in the App requires iCloud.
  • Nothing about you is sent: the notification's text comes from the record we create, which names the new world and nothing else. No usage data, identifier, or content of yours is attached to it, and this is entirely separate from the analytics described above — turning analytics off does not turn notifications off, and vice versa.
  • Turning it off: use the same New World Alerts switch, which deletes the subscription. You can also block notifications for the App entirely in iOS Settings.

5Purchases

Purchases are processed by Apple through the App Store. We never receive your payment details. Apple may provide us with anonymized, aggregate sales information (for example, how many purchases were made), which does not identify you. Refunds are handled by Apple under its policies.

6Data retention

Usage events are retained by PostHog on our behalf for no longer than 12 months, after which they are deleted or kept only in aggregate. Because that identifier is random and not linked to you, we generally cannot single out or retrieve the events belonging to a specific person.

7Your rights

Depending on where you live, you may have rights over your personal data. Under the GDPR / UK GDPR these include access, rectification, erasure, restriction, objection, portability, and withdrawing consent at any time, as well as the right to lodge a complaint with your local data-protection supervisory authority. To make a request, email support@happy-patterns.app. Because analytics uses a random identifier that is not linked to you, and there are no accounts, we may be unable to locate data relating to a specific individual; you can always stop further collection immediately in Settings, which also deletes that identifier from your device.

For California residents: we do not sell or share your personal information, and we do not use it for cross-context behavioural advertising.

8Children

Happy Patterns is not directed to children, and we do not knowingly collect personal information from children. If you believe a child has provided personal information, contact us and we will address it.

9Changes to this policy

We may update this policy from time to time. When we do, we will revise the date above and post the new version at this address.

10Contact

This policy is provided by Shashank Shekhar Tomar, 3/1 Esther Ct, Mount Waverley, VIC 3149, Australia. Questions about this policy or your privacy? Email support@happy-patterns.app.