Privacy Policy
Last updated 25 October 2026.
Happy Light Development ("we", "us") builds cozy little browser tools. This page explains what we collect, why, and what we don't. If a word here is unclear, use our contact form and we'll sort it out with you directly.
Who we are
Happy Light Development, trading as Happy Light Development, Elizabethstraat 8a, 8913 CP Leeuwarden. See our Imprint for full business details.
Your account
Creating an account (at portal.happylight.io) stores your email address and name, and a password, a Google sign-in connection, or both if you link Google to an account you made with a password. If you turn on two-factor authentication, we store the TOTP secret needed to check your codes. We also keep session records (things like device and sign-in time) so we can keep your account secure and sign you in correctly.
Google sign-in and Google Drive
Happy Light uses Google in two optional places. You never need either one: you can make an account with a password, and every app works without Drive.
Signing in with Google
When you choose "Continue with Google" on portal.happylight.io, we ask Google for the openid, email and profile permissions. From Google's answer we keep three things in our account database: your name, your email address (and whether Google has verified it), and your Google account ID, which is how we recognise you the next time you sign in. We use them only to create your account, sign you in and show your name in the apps. We don't store your Google profile picture, and we don't keep any Google access or refresh token: once we have checked who you are, the rest of Google's answer is thrown away. We can't read your Gmail, contacts, calendar or files.
Saving to Google Drive
For subscribers, Journal, Video Maker and Pixel Studio can save your work to your own Google Drive and open it again. When you connect Drive, the app asks Google for the drive.file permission. That only covers files the app itself created in your Drive, in its own folder; it can't see, open or change anything else you keep there. The permission is granted to the app in your browser, the access token stays in your browser's memory and is never saved or sent to us, and your files travel directly between your browser and Google. Our servers only tell the app whether Drive is offered to your account; they never see your files or the token.
What we don't do with Google data
We don't sell it, share it, or transfer it to anyone else. We don't use it for advertising, and we don't use it to train AI models. Nobody at Happy Light reads it, except when you ask us to (for example in a support request), when it's needed for security or to investigate abuse, or when the law requires it.
Happy Light's use and transfer of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements.
Keeping, deleting and revoking
We keep your account details for as long as you have an account. To delete your account and the Google details stored with it, ask us through our contact form. You can withdraw Happy Light's access at any time on your Google account's permissions page: after that, Google sign-in and Drive stop working for us until you allow them again. Files already saved to your Drive stay yours there.
The contact form
When you message us, we store what you write and a hashed version of your IP address (an HMAC, not the raw address) so we can spot abuse without keeping a readable log of where messages came from. Messages are delivered to us by email through Resend, our transactional email provider.
Payments
Paid plans are handled by Stripe, our payment processor. When you subscribe or manage your plan, you're sent to a checkout or billing page hosted by Stripe, and Stripe collects your card and billing details there — they never pass through our servers, and we never see your full card number. Stripe sends us back what we need to run your plan: your Stripe customer and subscription IDs, which plan you picked, whether it's active, and when it renews or ends. We give Stripe your email address so receipts reach you. Stripe's own handling of your data is described in the Stripe Privacy Policy.
Cookies and local storage
Most of our cookies are ones the site needs to work: to keep you signed in, to protect forms, and to remember a choice you made. The two exceptions are on happylight.io and the Arcade: Google Analytics and the Meta Pixel. Each sets its own cookies, and only if you allow it in the cookie banner. That's why we ask first. Everything about them is in Google Analytics, only if you agree and Meta Pixel, only if you agree. The visit counts described below don't use cookies at all.
Set by the portal, for the portal only
sid— your sign-in session. Up to 30 days, or until you sign out. Can't be read by page scripts.pending— holds a half-finished sign-in while you enter your two-factor code. 5 minutes. Can't be read by page scripts.csrf— a random value that proves a form was sent from our own pages. Deleted when you close your browser. Can't be read by page scripts.theme— the light or dark theme you picked. One year, and only if you pick one. Readable by page scripts; it holds nothing but that choice.fsid— your session on forum.happylight.io, which only that site can see. 14 days, or until you sign out. Can't be read by page scripts.
Shared with every Happy Light site
Our apps live on their own addresses (journal.happylight.io, sandbox.happylight.io and so on), so three small cookies are set on the whole happylight.io domain. Each lasts 12 hours and is removed when you sign out.
hl_gate— tells search.happylight.io that you're signed in and which account its daily search allowance belongs to. It holds your account ID and an expiry time, and nothing else. Can't be read by page scripts.hl_signed_in— the value1, so the apps' menus can say you're signed in instead of offering "Sign in". It identifies nobody.hl_name— your display name (at most 40 characters, never your email address), so the apps can show "Signed in as …". It's readable by Happy Light pages on any happylight.io address, which is exactly what it's for. If your account has no name, this cookie isn't set.
hl_signed_in and hl_name only change what a menu says; they never grant access to anything. Every link in that menu goes back to the portal, which checks your real session.
Your cookie choice, Google Analytics and the Meta Pixel
hl_consent— your answers in the cookie banner, one per kind: for examplea:1|m:0means analytics on, marketing off. Nothing else. Set on the whole happylight.io domain, so happylight.io and the Arcade ask only once. 6 months, then we ask again. If your browser blocks cookies, the same answer is kept in local storage instead._gaand_ga_79L3X2P639— set by Google Analytics, and only after you allow Analytics. Each lasts up to 2 years. Turning Analytics off under Cookie settings deletes them._fbp— set by the Meta Pixel, and only after you allow Marketing. A random ID for this browser. 90 days._fbc— set by the Meta Pixel, only after you allow Marketing, and only if you arrived by clicking one of our ads on Facebook or Instagram. It holds that click's ID. 90 days.
Turning Marketing off under Cookie settings deletes _fbp and _fbc.
In your browser's own storage
This site remembers your theme choice under hl-theme in your browser's local storage, and the apps keep your work and settings there too (see below). That data stays on your device and is never sent to us. You can clear cookies at any time in your browser's settings; you'll be signed out and your theme resets. Clearing local storage as well also deletes any work the apps kept only in this browser, so export or sync anything you want to keep first.
What stays in your browser
Journal, Pixel Studio, Sandbox and Triggers are built to work without an account. Your notes, sprites, tests and gesture setups are stored locally in your browser (localStorage or IndexedDB) and are never sent to our servers. If you choose to connect an optional storage provider such as Nextcloud or Google Drive from within an app, that app then talks to the provider you picked directly — we don't see that data either. How Google Drive works in particular is described above.
Google Analytics, only if you agree
On happylight.io and the Arcade (arcade.happylight.io) we'd like to use Google Analytics 4, so we can see which pages and games people use and where visitors come from. It doesn't run until you press Accept all, or turn on Analytics under Settings, in the cookie banner. Until then, and if you say no, your browser doesn't even load it, and Google gets nothing from those pages. None of our other apps use it.
If you accept, Google Analytics records:
- which pages you open, when, for how long, and the page or site that sent you;
- your browser, operating system, device type, screen size and language;
- your rough location (country and city), which Google works out from your IP address. Google Analytics 4 doesn't store the IP address itself;
- a random ID in the
_gacookies, so repeat visits count as one visitor. It isn't your name, email address or Happy Light account.
We don't use it for advertising: its advertising features are switched off and stay off, even after you accept.
The service is provided by Google Ireland Limited, Gordon House, Barrow Street, Dublin 4, Ireland. Google may process this data in the United States as well. That transfer is covered by the EU-U.S. Data Privacy Framework, under which Google LLC is certified. See Google's own Privacy Policy and privacy information for its business products.
Our legal basis is your consent (Article 6(1)(a) GDPR). You can withdraw it at any time, just as easily as you gave it: choose Cookie settings (in the footer of happylight.io and at the bottom of the Arcade's start screen) and turn Analytics off, or press Reject all. That stops Google Analytics and deletes its cookies. Withdrawing doesn't affect what was collected before. Your answer is remembered in the hl_consent cookie described above.
Meta Pixel, only if you agree
When we advertise Happy Light on Facebook or Instagram, we want to know whether those ads work: whether people who see or click one come here, and what they do next, such as signing up. For that, happylight.io and the Arcade can load the Meta Pixel. It doesn't run until you press Accept all, or turn on Marketing under Settings, in the cookie banner. Until then, and if you say no, your browser doesn't load it and Meta gets nothing from those pages. None of our other apps use it.
If you allow it, your browser sends Meta:
- that you opened a page (a "PageView"), its address, and the page that sent you;
- your IP address, browser and device details, and the time;
- the random ID in the
_fbpcookie and, if you came from one of our ads, the click ID in_fbc.
If you're signed in to Facebook or Instagram in the same browser, Meta can link this to your account there. Meta uses the data to measure and improve ads, including ours, under its own policies. We only see totals in Meta's ad tools, never who you are.
The service is provided by Meta Platforms Ireland Limited, Merrion Road, Dublin 4, D04 X2K5, Ireland. Meta may process this data in the United States as well. That transfer is covered by the EU-U.S. Data Privacy Framework, under which Meta Platforms, Inc. is certified. See Meta's Privacy Policy.
Our legal basis is your consent (Article 6(1)(a) GDPR). For collecting the data on our pages and sending it to Meta, we and Meta Platforms Ireland are joint controllers (as the EU Court of Justice held in the Fashion ID case, C-40/17), under Meta's Controller Addendum. Meta is responsible on its own for everything it does with the data after that. You can bring your rights to either of us. To withdraw your consent, choose Cookie settings and turn Marketing off, or press Reject all. That stops the pixel and deletes its cookies. Withdrawing doesn't affect what was sent before.
What we count
Besides Google Analytics and the Meta Pixel, when you've allowed them, we keep a few numbers ourselves, so we know which tools and games people actually use. There are no ads and no ad networks on this site or in the apps:
- Visits. Like most web servers, ours writes a line for every request: the address that was asked for, the time, your IP address, your browser's user agent and the page that linked you here. That log stays on our own server and is cut back to its last 1,000 lines every night. An internal dashboard that only our admins can open turns it into totals per site: page views, which pages, which sites sent people, and roughly which country and city visits come from (looked up on our own server, not sent anywhere). To count unique visitors without knowing who they are, it combines the IP address and user agent with a random value that changes every day and keeps only the result; that value and the day's results are deleted once the day is counted. The dashboard keeps daily totals for 400 days and hourly totals for a year. It never stores your IP address.
- Games played. The Arcade counts how many rounds of each game have been started: one number per game, not tied to anyone. If you're signed in, your best score per game is saved to your account so it can show on the leaderboards.
None of this uses cookies, none of it is sold or shared, and none of it is used for advertising.
Other services some apps load
A few apps load things from other companies' servers. Like any website, those servers then see your IP address:
- The Arcade and Pixel Studio load their fonts from Google Fonts.
- Maps in Data Analytics are drawn with tiles from OpenStreetMap.
- Search sends your query from our server to the search engines it asks.
Where things run
Happy Light is self-hosted on infrastructure we operate ourselves, with regular backups. The counting above happens on that same infrastructure. The only outside services that get data about your visit for this are Google Analytics and the Meta Pixel, and only the ones you've allowed.
Your rights
Under the GDPR, you can ask us to access, correct, export or delete your personal data, or object to how we use it. Reach us through our contact form and we'll act on it as quickly as we can. Deleting your account removes your account data; anything already stored only in your own browser is yours to clear whenever you like.
Children
Happy Light isn't directed at children under 16, and we don't knowingly collect personal data from them.
Changes to this policy
If this policy changes in a way that matters, we'll update the date above and, for significant changes, let account holders know directly.