Privacy Policy
Last updated 7 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
We only use cookies that the site needs to work: to keep you signed in, to protect forms, and to remember a choice you made. There are no advertising, analytics or tracking cookies, and no third-party cookies — every cookie below is set by our own portal at portal.happylight.io. Because none of them track you, we don't show a cookie banner.
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.
In your browser's own storage
This site remembers your theme choice under hl-theme, and whether to skip the home page's intro animation under hl-intro, 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.
Where things run
Happy Light is self-hosted on infrastructure we operate ourselves, with regular backups. We don't hand your data to a third-party analytics or ad platform, because there isn't one running: no ads, no trackers, no analytics script ships anywhere on this site or in the apps.
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.