Privacy
Privacy policy
Reference translation. The Korean original prevails. This English text is provided for convenience; if it differs from the Korean original (개인정보 처리방침), the Korean original governs. The effective and revision dates are the same as the Korean original's.
주식회사 린에자일헝그리 (LeanAgileHungry Inc., the ‘Company’) makes and runs Spiralday. This page sets out what information the Spiralday apps (Mac · Windows · Android · iPhone · iPad), the sync feature Spiralday Sync and the ideas board on spiralday.com (ideas · upvotes) handle, and why.
Effective: September 29, 2026 · Revised: October 2, 2026 (Windows app added), October 4, 2026 (Threads DM contact added), October 6, 2026 (Android · iPhone · iPad apps, Spiralday Sync, the Android QR camera and Google ML Kit added), October 8, 2026 (live typing in Spiralday Sync, where to turn off statistics on Android and Google Play test devices, what ML Kit sends and when, and processors added), October 10, 2026 (more on what Google ML Kit on Android sends and when; Android System WebView autofill queries added), October 12, 2026 (the website and the Mac · Windows app files moved from GitHub to the Company's AWS: processors and cross-border transfer ③ added, access logs without IP addresses kept for 13 months, where earlier policies are kept · added the same day: in-app ‘News’ in the Mac · Windows apps, the website no longer loads GitHub star counts), (ideas and upvotes on spiralday.com added: information handled and retention, the sign-in cookie, processors, security measures, destruction), October 24, 2026 (device authentication for screen lock, planner cover photos · diary photos, link previews added), October 28, 2026 (the website's fonts load from spiralday.com itself instead of Google Fonts; the home page loads ratings, rank and install totals from the company server; list of earlier policies), November 3, 2026 (detailed usage statistics — person-level usage records sent with an install number and a statistics user number, on by default and can be turned off: what is processed and why 1-a-2, retention, third parties · processors, access logs, your rights)
- Planner records stay on your device — they are not sent to the Company
- Spiralday Sync only when you turn it on — it passes between your own devices with end-to-end encryption. The server keeps only ciphertext, and the Company can't read it
- Anonymous usage statistics — once a day, only the app version · device type · OS version · chip type · language · a random install number. You can turn it off in Settings
- Detailed usage statistics (on by default · can be turned off) — on by default from this version (you are told at first launch and can turn it off right there; in the EU · EEA · UK the app asks first and only devices that agree send) — which features are used, when and how much, with an install number and a statistics user number. This is person-level. Never what you write, photos, titles or names. Turn off, reset the number or delete in the statistics pane of Settings.
- In-app news — from the Mac app (the version after 1.1.1) and the Windows app (1.0), the apps only read a public news file from spiralday.com. No install number or device information is sent, and you can turn it off in Settings → News
- Link box previews — the app fetches the title and picture of an address you write straight from that site. They don't go through the Company's servers
- Scanning a QR code on Android — Google ML Kit, which reads the code on the device, sends its own diagnostic information to Google. If you connect with the 8-digit code instead, this diagnostic information is not sent
- Ideas · upvotes — received only when you enter an email address on spiralday.com. The address is not stored; only an unreadable value (a hash) is kept
- The apps have no accounts, no sign-in and no ads. Only the website's ideas board uses email confirmation and a cookie that keeps you signed in
1.Information handled and why
a. Anonymous usage statistics
From Mac app 1.0.2, Windows app 0.9.0, Android app 1.0.0 and iPhone · iPad app 1.0.0, the items below are sent to the Company's server once a day on days you use the app. Development builds don't send them, and the Android app doesn't send them from the test devices Google Play uses to run apps automatically before release (the Firebase Test Lab devices of the pre-launch report).
| Item | Details |
|---|---|
| Install number | A random number made when you first open the app. It is not made from device information like the serial number or advertising ID. |
| App version · build number | e.g. 1.0.0 · 10000 |
| Device type | One of Mac · Windows · Android · iPhone · iPad (the Mac app doesn't send it; when it's missing, it's counted as Mac) |
| OS version | e.g. macOS 15.6.1, Windows 10.0.22631, Android 16, iOS 18.3.1 |
| Chip type | ARM (arm64 — Apple Silicon, most phones and tablets) or Intel · AMD (x86_64) |
| Language | The code of the device's first preferred language, e.g. ko |
Purpose: to know how many people use the app and on which devices · OS · versions · chips (compatibility). No name, email or planner content is included.
Turn off ‘Send anonymous usage statistics’ and nothing is sent from then on. It's in Settings → Data on Mac, Settings → Anonymous Usage Statistics on Windows, and Settings → Privacy on Android · iPhone · iPad. Turning it off also turns off detailed usage statistics below.
a-2. Detailed usage statistics (on by default · can be turned off)
These statistics are not anonymous. Numbers connect one person's records (pseudonymous data). We use them to learn which features people really love, to decide the product, and to report company usage metrics. From the next update of the Mac · Windows · Android · iPhone · iPad apps (versions released after November 3, 2026), the app tells you at first launch after the update what is collected, with an off switch right there. In Korea and other regions this is pseudonymised data for statistics (Korean PIPA Art. 28-2 — allowed without consent, but you can turn it off and delete it any time). In the EU · EEA · UK (decided from the App Store country, SIM or device region; unknown counts as EU) the app asks “Help make Spiralday better?” and only devices that agree send (GDPR consent). Nothing is sent before the notice or the question.
Information that could re-identify you (your sync group key, records on other servers) is kept apart and never joined. The Company does not try to identify people, and screens and exports never show the numbers. A processing record is kept as the law requires.
| Item | What (always a count up to 999, a count range, or a value from a fixed list) |
|---|---|
| App · device | App version, device type (Mac · Windows · Android · iPhone · iPad; phone · tablet · desktop), language (Korean · English · other), how long since first use (0 days · 1–7 · 8–30 · 31–90 · 91–365 · over a year), the report's day or week (e.g. 2026-11-03, 2026 week 45), time in the app as a range (0–1 · 1–5 · 5–15 · 15–60 · over 60 minutes) |
| Planner layout · use | Number of planners; per insert type, rules set up, pages written on, a range for how many days each page was edited on, and times opened, edited, added, removed; days · weeks · months with records; times each view (day · week · month · gallery etc.) was opened and moves between views; planners with weekends off; bookmarks · D-days · repeating tasks · reminders · timetable markers · habits; planners with a photo or decorated cover; task marks and moves — counts are ranges 0 · 1 · 2–5 · 6–20 · 21–100 · 101+ |
| Memo pads · stickers | For each memo pad and sticker of listed packs, times placed, removed, created, deleted, and how many exist now (range); pad size, place, pin, fold; times the sticker book was opened; times a custom sticker was added (never the image) |
| Settings | Each setting's current value (font, first day of week, appearance, language, sound, haptics, 3D, lock and so on: on · off or a value from a list) and times changed; times each settings pane was opened; whether a front-page motto is written (never the text) |
| Background · 3D (iPhone · iPad · Android only) | Chosen background scene, evening light, times changed and previewed, times the front view · 3D were opened, whether 3D is on, why the flat view is used (a fixed name such as power saving or low memory) |
| Input | Per surface (tasks · timetable · notes · diary · memo pad etc.), writing sessions with Pencil · finger · keyboard · pen · mouse (never character or stroke counts); whether a pen has been used |
| Flows | How far you got that day and times at each step of compose planner · page gallery · sticker book · sync linking · share · PDF · guided tour; when a feature was first used (install-age range, once); how you got there (menu · hint etc.) |
| Widgets · sync | Widgets placed per kind and size, times opened from a widget, whether sync is on, range of devices in the group and count per device type (never sync content or group IDs) |
| Errors · crashes · speed | Counts of fixed error names, the kind of last exit, hang and out-of-memory counts, ranges for launch and page-turn time (never error text, stacks or file paths) |
| Install number | A random number made at first launch (the same one as anonymous usage statistics), never from a serial number or advertising ID. Resetting it cuts the link to earlier records |
| Statistics user number (only with sync on) | Derived one-way on the device from your sync group's key. Devices in one group share it, so they count as one person. The Company cannot derive the group key, the sync group or any planner content from it, and does not link it to the sync server. It changes when you leave the group or reset |
| Dates · order | First-use day, days used, number and length of sessions per day, and the rough order features were used within a session (no clock times) |
| Report number | A new random number for every report (so the same report isn't counted twice). It does not link one report to the next |
Never sent: anything written in tasks · notes · memo pads · diaries, character counts, photos, custom sticker images, file paths, people's names, sync group IDs or keys, planner names, link addresses, dates inside planners, device names, accounts · email, advertising IDs, location, stored IP addresses. Synced content is end-to-end encrypted, so even the Company cannot read it. The app can only produce names and values from a fixed list, and the server drops anything outside it.
Purpose: to see how inserts, memo pads, stickers, settings, backgrounds and widgets are used and where people get stuck, so we can fix errors and what isn't working and decide new inserts, packs and defaults. Inside the Company, only approved staff can see person-level data, and viewing is logged. Outside the Company (such as investors) only totals with cells under 20 people hidden are shared, never numbered data. It is never linked to spiralday.com ideas board or web market accounts or payments.
In the statistics pane (Settings → Data on Mac, Settings → Anonymous Usage Statistics on Windows, or Settings → Privacy on Android · iPhone · iPad) you can turn off ‘Send detailed usage statistics’ any time (what is kept on the device is deleted at once), ‘Make a new statistics number’ to cut the link to earlier records, and ‘Delete my usage records’ to delete your raw records on our server. ‘See what is sent’ shows exactly what would be sent.
b. Spiralday Sync (only when sync is on)
Spiralday Sync keeps your planners in step between your own devices. It starts off, and nothing is sent until you turn it on.
Planner content is end-to-end encrypted. Each device locks planner records and device names with the group key before sending them (XChaCha20-Poly1305), and the group key exists only in your devices' secure storage (e.g. the Keychain on iPhone · iPad, the Keystore on Android, DPAPI on Windows). So neither the Company nor Cloudflare, which runs the server, can read your tasks · notes · dates · planner names · device names. Memo pads · stickers (including the Always Shown · Today's Notes memo pads to the left of the planner) · inserts · bookmarks · planner arrangement (days off · day sets) · cover decoration and photos chosen for planner covers, photos stuck in the diary, and addresses written in link boxes with their fetched titles are planner records too, so they are locked on the device in the same way before they're sent.
The server holds only the following.
| Item | Details |
|---|---|
| Encrypted planner copies | For each record, the current version and the overwritten earlier version (30 days). Record numbers are also values that reveal nothing of the content. |
| Random group · device numbers | Random numbers the server assigns when you turn on sync. They are not linked to a name, email or phone number. |
| Device information | The encrypted device name, device type (Mac · Windows · Android · iPhone · iPad), a hash (SHA-256) of the device authentication token, when it joined the group, and the last connection time (in 10-minute steps) |
| Sequence · time · size | A sequence number that goes up with each write, the time of the write and the device number that wrote it, the size of the ciphertext, and the group's usage and last-used time (in 1-hour steps) |
| Values while connecting a device | A hash of the connection code and the wrapped group key. The wrapped key is deleted as soon as the new device takes it, the connection is cancelled or declined, or time runs out, and connection records are deleted within an hour. |
| Recovery vault | The group key wrapped with the recovery code, and a hash of a check value. The recovery code itself is never sent to the server. |
| IP address | Not stored. For rate limits against abuse, only a value made from the IP with a secret key (HMAC-SHA256) is counted for the length of the limit (at most 24 hours) and then deleted. |
When another device in the same group is open at the same time, live typing keeps them in step. While you type, the changed parts are locked with the group key, just like planner records, and passed through the server straight to that device. The server only passes these pieces on without storing them (which is why they aren't in the table above), and they're locked, so it can't see their content. While passing them on, however, which device is typing and when (the time and interval of typing) and the rough size of each piece (in 256-byte steps) go through the server. These are not stored or logged either.
Purpose: to keep planners in step between your devices and to prevent abuse of the server. Server call logs that would record request addresses are turned off.
c. Contact (email · Threads DM)
If you email contact@leanagilehungry.com, we receive your email address and the message. If you send a DM to @owlu_app on Threads, we receive your Threads username · profile and the message. Both are used only to reply and to handle requests and bugs.
Threads is a service run by Meta Platforms, Inc. (USA), so DMs are stored and processed by Meta under Meta's privacy policy. If that concerns you, please email us instead. We'll help you just the same.
d. Planner records stay on your device
Records like tasks, the timetable, notes, highlighters, D-days, memo pads · stickers · inserts, planner arrangement · cover decoration, cover photos · diary photos and link boxes are saved on your device. They don't leave the device unless you turn on sync, and even then the Company can't see the content (b above).
| App | Where it's saved |
|---|---|
| Mac | ~/Library/Application Support/Spiralday |
| Windows | %APPDATA%\Spiralday |
| Android | The app's private storage (other apps can't read it) |
| iPhone · iPad | App group storage shared only by the app and its Home Screen widgets |
Photos you put on a cover or in the diary are turned into small JPEGs on that device and placed in the planner record. Information attached to the photo, such as location · the camera used · the date taken (metadata), is removed, and the original photo file you picked is not kept separately in the app.
Preview pictures and site icons for link boxes are not put into planner records; they stay only in that device's cache folder (e.g. ~/Library/Caches/Spiralday/LinkPreviews on Mac). They aren't synced, so other devices fetch them on their own when needed (4 below).
If you've turned on device backup (Google account) on Android or iCloud Backup on iPhone · iPad, your planner files are included in those backups. These backups are kept by Google · Apple under their own policies, and the Company can't see them. Android backups include only the planners (shelf · book files) and leave out the install number and the app's own automatic backups.
e. Device permissions
The iPhone · iPad app uses the camera only when you scan a sync connection QR code or take a photo for the diary with ‘Take Photo’, and the photo library (add only) only when you save a planner page as an image. Camera views and images are not sent off the device (photos stuck in the diary become planner records, as in d above). Photos for planner covers · the cover editor · the diary come into the app only when you pick them yourself, through the device's photo picker (Mac · iPhone · iPad · Android) or file picker (Mac · Windows · iPhone · iPad), or by dragging · pasting, and the app never asks for permission to read your whole photo library. The Android app uses the internet · vibration · network state (to resume sync when the connection comes back), and asks for the camera only when you scan a sync connection QR code. The camera view is read right on the device (Google ML Kit, 4 below) and is not stored or sent. Even if you don't allow the camera, you can connect the same way with the 8-digit code.
When screen lock is on, unlocking uses the device's Face ID · Touch ID · fingerprint · face unlock · device passcode (Touch ID · the Mac login password on Mac, Windows Hello on Windows). The device does the checking, and the app only receives whether it matched. Neither the app nor the Company receives biometric data or passcodes. Screen lock starts off and applies only to the devices where you turn it on (it isn't synced). The Android app adds the biometric permissions for this (USE_BIOMETRIC · USE_FINGERPRINT, normal permissions that aren't asked for).
The quick memo pad shortcut on Mac · Windows (by default Mac ⌃⌥⌘N · Windows Win+Alt+N) registers only that one key combination with the system. It doesn't ask for permissions like Accessibility · Input Monitoring · Screen Recording, and it doesn't see any other keystrokes.
f. Ideas · upvotes (spiralday.com, email confirmation)
To send a feature idea or bug-fix idea, or to upvote an idea, you confirm your email address once. This keeps it to one upvote per person per idea, and stops spam.
| Item | How it's kept |
|---|---|
| Email address | Not stored. It is used only while the confirmation email is sent, and only a value made from it with a secret key that only the Company holds (HMAC-SHA256, the ‘email hash’) is kept. The address can't be worked out from the email hash. However, given an address, the Company can find that address's records the same way (to handle requests to view or delete). The ‘suppression list of the email-sending service’ below is an exception. |
| Masked address during confirmation · idea text before confirmation | To show on the confirmation screen, an address with only the first few characters left (e.g. jo•••@gm•••.com) and the idea text to post after confirmation are kept only for the confirmation window (30 minutes). If you don't confirm, nothing is posted and they're deleted. |
| Ideas you upvoted · ideas you sent | Kept with the email hash. Upvote times are kept only to the hour. The website's access logs record the time of an upvote request to the second, but not the email hash · IP address · cookie (5 below). What's public is only an idea's title · description · type · date · number of upvotes; who sent it and who upvoted it are not made public. Results are not emailed to you; you can see them on the ideas board. |
| Email domain type | Only the name of a large email provider (e.g. gmail.com, naver.com), ‘alias email service’, or ‘other’ is kept. For ‘other’ and alias services, a short value made with a secret key (8 characters) is kept instead of the domain name. It's used only to check whether addresses created in bulk at one domain are inflating upvotes. |
| Age 14 or over check | When you ticked it and the version of the notice shown then |
| Sign-in information | See 1-g below |
| IP address | Not stored. Rate limits count only a value made from the IP with a secret key that changes every day. After one day (25 hours) it's no longer used, and it's deleted within a day after that. AWS WAF, which filters requests before that, counts each IP address's requests over the last 5 minutes and briefly blocks it if there are too many. That count is used only inside AWS WAF, and the Company doesn't turn on WAF logging (logs · request samples), so no IP address is kept here either. |
| Blocked emails | For emails blocked for inflating upvotes with automated programs and the like, only the email hash · the date blocked · the reason are kept for one year from the date blocked, to stop it happening again. This remains even after ‘Delete everything’. A blocked email can still confirm · view · delete. |
| Suppression list of the email-sending service | If a confirmation email bounces permanently or the recipient reports it as spam, the email-sending service (Amazon SES) keeps the address as it is so as not to send to it again. It stays until the Company deletes it. This is a separate list used only for ideas-board confirmation emails, so it doesn't affect the Company's other service emails. A permanently bounced address may also be placed, for a period set by Amazon SES, on the common suppression list that Amazon SES keeps for all its customers. |
Purpose: email confirmation, keeping one vote per person, reviewing ideas, preventing abuse.
Legal basis: it is needed to handle the ideas and upvotes you request (Article 15(1)(iv) of Korea's Personal Information Protection Act). What's used to prevent abuse, such as rate limits · domain values · blocked emails, is for the Company's legitimate interests (Article 15(1)(vi) of the same Act).
It can't be used by children under 14.
g. The sign-in cookie and what's left on your device
On a device where you've confirmed your email, one cookie (__Host-sd) is set so you aren't asked again. It's a random value, and the server keeps only a hash of it. It lasts one year from the last day you used it.
There are no advertising or tracking cookies. Nothing is shared with other sites.
This device's browser storage keeps only the masked address (e.g. jo•••@gm•••.com) and idea text you haven't sent yet (up to 24 hours). They're deleted too when you sign out on this device or delete.
To remove it, press ‘Sign out on this device’ at the bottom of the ideas board, or clear spiralday.com cookies · site data in your browser. Even after that, confirming your email again lets you carry on as before.
You can also block or delete spiralday.com cookies in your browser's cookie settings (e.g. on iPhone, Settings › Apps › Safari › Advanced › Block All Cookies. Menu names differ by browser). If you block them, you'll have to confirm your email every time.
2.How long it's kept
- Anonymous usage statistics: destroyed two years after the day they were collected.
- Detailed usage statistics: received reports (person-level raw data) are destroyed after 13 months, and their totals (counts per platform · version, no numbers) after 2 years. Unsent reports on the device are deleted after 14 days or when you turn it off; kept counts are deleted the moment you turn it off.
- Spiralday Sync: kept while you sync. Overwritten earlier versions are deleted after 30 days. ‘Delete Group’ in Settings → Sync deletes the copies on the server right away, and if no device in the group connects for 13 months (396 days), they're deleted automatically. Even after the last device turns sync off, they remain for those 13 months so that you can come back with your recovery code — if you don't want them kept, please use ‘Delete Group’.
- Live-typing pieces: not stored. They pass through the server's memory only while being passed to the other device.
- Information about a device removed from the group is deleted right away. Only the hash of its authentication token is kept for 30 days, to tell that device it's been removed from the group.
- HMAC values of IPs used for Spiralday Sync rate limits: 24 hours at most. (Rate limits for the ideas board are listed separately under ‘Ideas · upvotes’ below.)
- Access logs for the website · app files (no IP addresses, 5 below): deleted automatically after 13 months (396 days).
- Contact emails · Threads DMs: records the Company holds are deleted within one year after the matter is handled. Conversations inside Threads are deleted as far as the Company can delete them; the rest follows Meta's policy.
- Ideas · upvotes (1-f): pending confirmations (masked address · the intended action · idea text before confirmation) 30 minutes. Ideas decided not to be made public: 30 days after the decision. Ideas taken down before being made public (taken down during review because of a privacy or rights report, etc.): 30 days from the takedown, or 30 days from the end of any temporary-measure period. The link between an idea and the email hash: one year after it's closed as shipped or not planned, 30 days for ideas not made public, and in any case two years from when it was sent. Upvote records (times to the hour): until one year after the idea is closed or until the email hash is deleted, whichever comes first (the upvote counts remain). Hashes of confirmed emails: two years from the last use (confirming, or using a confirmed device). The sign-in cookie: one year from the last use. IP hashes used for rate limits: 25 hours. Block marks for blocked emails: one year from the date blocked. Addresses on the email-sending service's (Amazon SES) suppression list: until the Company deletes them.
- Copies in the Company's internal review tool (titles · descriptions edited for publishing): as soon as the receipt of applying that decision is attached in the review tool, and at most 30 days. Moderation records (publish · hide · delete actions, no personal information): 3 years; administrator access records: 2 years.
- When the periods above end, the information is no longer used and is deleted within a day. Information on the ideas board is deleted by an automatic cleanup every day before dawn.
3.Provision to third parties
The Company doesn't provide this information to third parties. Cloudflare, which runs the Spiralday Sync server, and Amazon Web Services (AWS), which handles the anonymous and detailed usage statistics server · this website · the app files, are processors the Company has entrusted (4 below).
However, when you scan a sync connection QR code in the Android app, Google ML Kit built into the app sends diagnostic information about its own operation (device · app information, a per-install identifier, language · country · time zone, carrier · network type, event codes, etc.) directly to Google LLC. The Company doesn't receive this information, and Google handles it under its own policies. Because it goes to the United States, every item sent is listed in cross-border transfer ② in 4 below. If you connect with the 8-digit code instead of the QR code, this diagnostic information isn't sent.
Also, on Android, each time a text field appears on screen, the Android system component that draws the app's screens (Android System WebView) asks Google about autofill. What it sends is the WebView version and a value (hash) representing the structure of that field. What you write is not included, and the Company doesn't receive this value. It's done by WebView, not the app, so the app has no setting to turn it off.
4.Where it's processed, and outside services
- Anonymous and detailed usage statistics are stored on a server run by the Company. The server is in the Amazon Web Services (AWS) Seoul Region (
ap-northeast-2). - The Spiralday Sync server (
sync.spiralday.com) runs on Cloudflare, Inc.'s Workers · Durable Objects (cross-border transfer below). - Where you get and update the apps: the Mac · Windows install and update files come from spiralday.com and GitHub Releases. spiralday.com is a server the Company runs on AWS (Amazon CloudFront · Amazon S3). The Mac app checks spiralday.com for a new version once a day, and the Windows app (from 1.0) when it starts and once a day (cross-border transfer ③ below). Files downloaded through old links and new-version checks by Windows app 0.9.x go through GitHub, and then the GitHub privacy statement applies. The Android app is downloaded and updated from Google Play, and the iPhone · iPad app from the App Store — Google's and Apple's privacy policies apply there.
- In-app ‘News’: the Mac app (from the version after 1.1.1) and the Windows app (from 1.0) read the news file on spiralday.com (
https://spiralday.com/news/news.json) when the app starts, when you come back after more than 60 minutes away, and once a day while it's open (not again within 60 minutes of the last fetch). As when you open a web page, your IP address and the request time reach Amazon CloudFront, which delivers this file (cross-border transfer ③ below), but no install number · device information · planner content is attached (the User-Agent is just ‘Spiralday’). These requests also appear in the access logs without IP addresses (5 below). Which news you've seen stays only on your device and isn't sent to the Company. Turn off ‘Get news from spiralday.com’ in Settings → News and it isn't fetched. - Link box previews: when you write or paste a web address in a link box (including address-like lines when old notes move into the link box), the app connects directly to that site when showing the page, fetches the beginning of the page (up to 1 MB), and gets the title · main picture (
og:image) · site icon (favicon) written there. As when you open that page in a browser, the site (and wherever it keeps its pictures · icons) learns your device's IP address, the request time and the requested address, and that site's privacy policy applies. The app sends along only a User-Agent like an ordinary browser's (the Safari name on Mac · iPhone · iPad, the Chrome name on Windows · Android, with ‘Spiralday’ at the end) and the language (Korean · English). No cookies · sign-in information · install number · planner content are sent. It doesn't go through the Company's servers, so the Company can't know what address you wrote. Fetched pictures · icons stay only in that device's cache (1-d above), and the title is written in the link box and saved · synced like other planner records (1-b above). Other devices you sync with fetch them on their own in the same way when they show that page. To avoid fetching, write it as text instead of an address (a line with spaces is treated as text). Tapping the card opens the address in your default browser. - When the Android app reads a QR code, it uses Google's ML Kit (barcode recognition that runs on the device). The camera view doesn't leave the device, but ML Kit sends diagnostic · usage statistics about its own operation (device · app information, a per-install identifier, language · country · time zone, carrier · network type, performance, API settings, event · error codes, etc.) to Google (HTTPS). The full list of items sent is in cross-border transfer ② below. The per-install identifier is a number newly set each time the app is installed, and it doesn't point to a device or a user. It's separate from the app's ‘Send anonymous usage statistics’, so it's sent when you scan a QR code even with statistics off. Google handles this information under the ML Kit data disclosure and the Google Privacy Policy, and the Company doesn't receive it.
- This website (spiralday.com) also opens from the same AWS servers (Amazon CloudFront · Amazon S3). The handwriting fonts load from these servers too, and no outside font service such as Google Fonts is used.
- Ratings, rank and installs on the home page: when you open the spiralday.com home page, your browser loads the App Store and Google Play ratings, the App Store rank and the total number of installs from the company server (leanagilehungry.com). The request carries no cookies or personal information, and the company uses it only to show these numbers. As described in section 5, the server's access log may briefly keep your IP address.
Processors
| Processor | Task entrusted | Where |
|---|---|---|
| Amazon Web Services (AWS) | Cloud infrastructure for the server (run by the Company) that receives and stores anonymous and detailed usage statistics | Republic of Korea (Seoul Region ap-northeast-2) |
| Amazon Web Services (AWS) | Storing and delivering this website and the Mac · Windows app files · update information, and storing access logs without IP addresses (Amazon S3 · Amazon CloudFront) | Storage: Republic of Korea (Seoul Region ap-northeast-2) · delivery: the CloudFront location nearest the recipient (cross-border transfer ③ below) |
| Amazon Web Services (AWS) | Handling ideas · upvotes on spiralday.com (API Gateway · Lambda · DynamoDB), sending confirmation emails (Amazon SES), managing secret keys (AWS KMS), rate limiting (AWS WAF), and the server for the Company's internal review tool (Amazon EC2) | Republic of Korea (Seoul Region ap-northeast-2). WAF runs at the nearest CloudFront location (cross-border transfer ③) |
| Cloudflare, Inc. | Running the Spiralday Sync server (storing encrypted copies, passing them between devices · relaying live typing) | United States and elsewhere (cross-border transfer ① below) |
Cross-border transfer ① When you turn on Spiralday Sync
| Recipient | Cloudflare, Inc. (USA) · privacyquestions@cloudflare.com |
| Countries | The United States and countries with Cloudflare data centers. Storage is set to prefer the Asia-Pacific region, but this isn't guaranteed. |
| Items | The items in 1-b above (encrypted planner copies, random group · device numbers, device type, connection times, etc.) and the encrypted pieces of live typing (passed on, not stored) |
| When · how | While sync is on, changes are sent as they happen over an encrypted connection (HTTPS · WSS). If another device is open at the same time, they're sent right away while you type. |
| Purpose | Running the sync server (storage and passing between devices) |
| Retention | The same as Spiralday Sync in 2 above. |
| How to refuse | Don't turn on sync. Everything else works just the same without it. |
Cross-border transfer ② When you scan a QR code in the Android app (Google ML Kit)
| Recipient | Google LLC (USA) · contact: ‘Contact us’ in the Google Privacy Policy |
| Countries | The United States and countries with Google data centers |
| Items | ML Kit diagnostic information: device information (manufacturer · model · Android version · Android build fingerprint · available ML acceleration hardware), app information (package name · app build number · ML Kit version), a per-install identifier (a random number newly set at each install), device settings (language · country · time zone), the carrier's country · network code (MCC/MNC) and network type (Wi-Fi · mobile, etc.), event types · codes, API settings (image format · camera view size), performance (processing time, etc.) · input/output size · feature version · error codes. The camera view and the content of the QR code are not sent. |
| When · how | When you use the camera with ‘Scan the QR Code’ in Settings → Sync → Join Another Device, ML Kit collects the diagnostic information generated then and usually sends it within a few minutes over an encrypted connection (HTTPS). Without a network, it sends after you're connected. |
| Purpose | Google checking and improving how ML Kit works (ML Kit data disclosure) |
| Retention | Under the Google Privacy Policy. |
| How to refuse | Connect with the 8-digit code instead of the QR code. It connects just the same without the camera. Turning off the app's ‘Send anonymous usage statistics’ doesn't stop it. |
Cross-border transfer ③ When you open the website or get app files · updates · news (Amazon CloudFront)
| Recipient | Amazon Web Services, Inc. (USA) · contact: the inquiry information in the AWS Privacy Notice |
| Countries | The countries of the CloudFront locations nearest the recipient. Requests from Korea are usually handled by a location in Korea, but when busy or during an outage, a location in a nearby country such as Japan may handle them. Files and access logs are stored in the Seoul Region. Access logs may pass through the AWS US East Region on their way to Seoul. |
| Items | Handled during delivery: the IP address used to connect, the requested address and time, the type · version of the browser or app (User-Agent), and the size of what was sent and received. When the Mac app checks for a new version, the User-Agent contains the app name and version. When fetching in-app ‘News’, the User-Agent is just ‘Spiralday’. Of these, only the items in 5 below are kept as access logs, and IP addresses are not kept. Planner content and install numbers are not included. Also, the content of ideas-board requests (email address, idea text) — it only passes through and isn't stored. |
| When · how | Sent over an encrypted connection (HTTPS) when you open the website or download a file, and when the Mac · Windows apps check for a new version. The same applies when fetching in-app ‘News’ (when the app starts and when you come back after more than 60 minutes away, and once a day while it's open). |
| Purpose | Delivering the website · app files · update information · in-app news, and download · update statistics and outage response from access logs without IP addresses. Passing ideas-board requests to the Seoul Region · rate limiting |
| Retention | IP addresses are used only during delivery and aren't included in the access logs the Company keeps. Access logs without IP addresses (5 below) are kept in the Seoul Region for 13 months (396 days) and then deleted. |
| How to refuse | Don't open the website or download files. The apps' new-version check is there to deliver security fixes, so the apps have no setting to turn it off; with that device's internet connection off, nothing is sent. Turn off ‘Get news from spiralday.com’ in Settings → News and in-app ‘News’ isn't fetched. For the ideas board, simply don't use it. |
When you send an idea or upvote on spiralday.com, the content of that request (email address, idea text) also goes through CloudFront to the Seoul Region. It's stored only in the Seoul Region.
5.Access logs
Neither anonymous usage statistics nor detailed usage statistics store IP addresses. To stop excessive requests, the server that receives detailed statistics uses a hash of the IP address in memory for one minute, and keeps no access log for that path. On other paths, however, access logs (IP address, access time, etc.) may remain on a server temporarily for security and outage response while running servers.
The Spiralday Sync server doesn't store IP addresses, and call logs that would record request addresses are turned off (1-b).
Amazon CloudFront, which delivers this website and the app files · update information, handles IP addresses while answering requests. IP addresses are used only for delivery, and the Company doesn't store them.
The Company keeps CloudFront access logs, without IP addresses, for download · update statistics and outage response. Requests to the spiralday.com ideas board (viewing the list · email confirmation · upvoting · sending ideas · viewing and deleting your information) are kept in the same logs.
| Item | Details |
|---|---|
| Kept | Request time, requested address (without the query after the question mark), request method, response result and size, type and version of the browser · app · OS (User-Agent), country of access (country code), the CloudFront location that delivered it, and technical information such as processing time · cache result · connection method (protocol) |
| Not kept | IP addresses. For the country of access, only the country code CloudFront works out from the IP address (e.g. KR) is kept. Cookies and the content of requests (email address, idea text) aren't kept either. For ideas-board requests, the requested address may contain an idea number (e.g. which idea was upvoted). Values that would tie a request to a person, such as the email hash · IP address · cookie, are not kept. |
| Purpose | Download · update statistics and outage response (including the ideas board). Not used for anything else. |
| Storage | Kept in the AWS Seoul Region (ap-northeast-2) for 13 months (396 days), then deleted automatically. |
6.Your rights
- Turn off statistics — Turn off ‘Send anonymous usage statistics’ · ‘Send detailed usage statistics’ in Settings → Data on Mac, Settings → Anonymous Usage Statistics on Windows, or Settings → Privacy on Android · iPhone · iPad. Turning off the first turns off the second too.
- Detailed usage statistics — ‘Delete my usage records’ on the same screen deletes the person-level raw data at once (other devices with the same statistics user number too). Totals without numbers can't identify anyone and remain. After deleting the app, email the install number to contact@leanagilehungry.com.
- Delete statistics — Send the install number shown on the same screen to contact@leanagilehungry.com, and we'll delete the records collected under that number.
- Turn off · delete sync — In Settings → Sync, turn off sync on this device, or use ‘Delete Group’ to delete the encrypted copies on the server right away. The planners on your devices stay as they are.
- View · delete ideas and upvotes information — Confirm your email at spiralday.com/privacy/me (in Korean) to see what the Company holds and delete it right away. You can also ask by email (including when the confirmation email doesn't arrive). For email requests, we check that you own the address, then show or delete the same information.
- You can also request access to · correction · deletion · suspension of processing of your information the Company holds, including contact emails, at the same address.
7.Privacy officer
위관우 (Gwanu Wee, CEO) · contact@leanagilehungry.com
If you're not satisfied with the Company's answer, you can ask for help from Korea's Personal Information Infringement Report Center (privacy.kisa.or.kr, call 118 in Korea).
8.Children under 14
The apps have no accounts, so they don't ask your age. Ideas · upvotes on spiralday.com collect an email address, so only people aged 14 or over can use them. If we learn that information was entered by a child under 14, we delete it right away.
9.Security measures
- Email addresses aren't stored; only hashes made with a key only the Company holds (AWS KMS — the key never leaves it) are kept.
- Publishing ideas and handling deletion requests is done by the CEO through a role protected by two-factor authentication (MFA).
- The ideas-board database and keys are locked so that only specified server functions and the CEO can use them.
- All connections are encrypted (HTTPS). Server logs don't keep users' email addresses · IP addresses · cookie values.
- Moderation records (publish · hide · delete actions, viewing the original) are kept for 3 years (without personal information), and administrator access records for 2 years.
10.How it's destroyed
- Procedure: when the retention period ends, the information is no longer used and is deleted within a day. If you ask for deletion, it's deleted right away.
- Method: information in the database is deleted so it can't be recovered (AWS DynamoDB item deletion). Nothing is printed on paper.
- Backups: deleted information remains for 35 days in the database backups kept for incidents, then disappears automatically. If a restore from backup happens during that time, deletion requests from that period are applied again after the restore. For this, only the email hash and date of those who deleted are kept for 36 days.
11.Automatic collection (cookies)
The sign-in cookie and browser storage used by the spiralday.com ideas board are described in 1-g above.
12.Changes
If this policy changes, we'll let you know on this page and in the app release notes · store update descriptions. The previous policy is kept as the October 28, 2026 version, and earlier ones as the October 24, 2026 · October 14, 2026 · October 12, 2026 · October 10, 2026 versions (in Korean). If you need an even earlier version, please ask at contact@leanagilehungry.com.