Roti Privacy Policy
Effective October 28, 2026
Egoist ("we") runs Roti, a notes, calendar, to-do and alarm service available as an iPhone app and on the web at daily.egoist.kr (the "service"). This policy explains what personal information we handle through the service and how, in line with Korea's Personal Information Protection Act. Our company website (egoist.kr) and inquiry emails are covered by the privacy policy on egoist.kr.
1. At a glance
- If you use Roti without signing in, your notes, events, to-dos and alarms stay on your device and are not sent to us.
- If you sign in, we store your email address and the content you save on our server so it can sync across your devices.
- When you are signed in on an iPhone, we send it an invisible notification (a silent push) through Apple so it can fetch changes made on your other devices. These notifications don't contain any of your content.
- If the iPhone app or the web app runs into an error, it sends diagnostic information such as the device model, browser and OS version to Sentry, an error-reporting service, so we can find the cause. It doesn't send the content of your notes, events, to-dos or alarms, anything you type, or your email address.
- We don't use advertising or analytics tools. We don't track you, and we don't sell your personal information.
- Scheduling of notifications and alarms, and widgets, are handled on your device.
- You can delete your account and everything in it at any time under Settings › Delete Account.
2. Why we handle personal information
- To create your account, sign you in and confirm it's you
- To store your notes, events, to-dos, alarms and settings and sync them across your devices
- To let your iPhone know that something changed on another device (silent push)
- To sync events with a Google Calendar you choose to connect
- To find and fix errors in the app and the web app
- To keep the service secure, for example by blocking excessive sign-in attempts
- To answer inquiries and handle disputes related to account deletion
3. What we collect
Our server stores information only for signed-in users. "Required" items are needed to sign in and sync. "Optional" items are handled only if you turn the feature on. The last three items (error diagnostics) are sent from the iPhone app and the web app to Sentry whether or not you are signed in.
- [Required] Sign in with Google: your email address and the account identifier issued by Google. We don't receive your name or profile photo. (How: provided by Google when you approve the Google sign-in screen)
- [Required] Sign in with Apple (iPhone app): the account identifier issued by Apple and your email address (the private relay address created by Apple if you choose Hide My Email). We don't receive your name. (How: provided by Apple's sign-in screen)
- [Required] Content you save: notes (title, body, labels, pinned state, reminder settings), events (title, description, date and time, repeat rules, completion marks, linked notes, alert settings), to-dos (title, details, due date and time with its time zone, completion, sort order, alert settings), alarms (name, time, days, sound choice) and settings (week start, default alerts, label list, display language). (How: entered by you) To sync your devices, we also keep a change history of this content on our server. (Generated automatically)
- [Required] Sign-in and device records: sign-in session records, a device registration ID created by the service, when the device was registered and last connected, and per-device records of whether alerts and alarms were applied (status and error code). A signed-in iPhone app also registers its push token (the notification address Apple issues to the app's installation on that device), the push environment, and when we last sent to it. The push token is registered even if you haven't allowed notifications. We don't collect your device's name or model, or any advertising identifier. (How: generated automatically as you use the service; the push token is registered automatically by the signed-in iPhone app)
- [Required] Sign-in attempt records: IP address and time, used only to block excessive sign-in attempts. (Generated automatically)
- [Optional] Google Calendar connection: the account identifier and access tokens issued by Google; the name, time zone and ID of the calendar you choose; that calendar's events (title, description, start and end time, repeat rules, link to the event in Google Calendar); and sync status. (How: provided by Google when you approve the Google consent screen)
- [Automatic] Error diagnostics (iPhone app, whether or not you are signed in): when the app crashes, freezes or hits an error: device information (device model and type, CPU architecture, iOS version); device state (total and free memory and storage, battery level and whether it's charging, screen orientation, whether the app was on screen); app information (app version and build, when the app was launched, language, region and time zone settings); error information (type and time of the error, the error message with personal information masked, the call stack and memory addresses of each thread, the list of libraries loaded by the app, how long the app was frozen, whether the system terminated the app, and performance diagnostics provided by iOS); and a record of what happened just before the error (when the app moved to and from the foreground, the type names of the screens that were open, low-memory, battery and orientation events, and the type of network connection). (How: sent automatically by the app when an error occurs, or the next time you open the app after a crash)
- [Automatic] Error diagnostics (web app, whether or not you are signed in): when the web app hits an unhandled error: browser type and version and operating system (the User-Agent your browser sends), web app version, language, region and time zone settings, the path of the page where the error occurred (with everything after "?" or "#" removed and record numbers in the path replaced with ":id"), where the page was opened (a browser or the iPhone app), type and time of the error, the error message with personal information masked, the call stack (function names, file paths and line numbers), the names of the screen components where the error occurred, and a record of what happened just before the error (the paths of pages visited, and the method, path and status code of requests to our server, without request or response content). (How: sent automatically by the web app when an error occurs)
- What error diagnostics leave out or mask (iPhone app and web app): before sending, we mask non-English text such as Korean, text in quotation marks, email addresses, long numbers such as phone numbers, and unique identifiers and tokens in error messages. We don't send the content of your notes, events, to-dos or alarms, anything you type, your email address, your account identifier, your device name, a per-installation identifier, screenshots or your IP address, and we configure Sentry not to store IP addresses. This information is not linked to your Roti account.
We don't collect government ID numbers, payment details, location, contacts or photos. Whatever you write in notes, events and to-dos is stored as written, so please use your own judgment about putting sensitive information there.
4. What stays on your device
The following is handled only on your device and is not sent to our server.
- Notes, events, to-dos and alarms you save without signing in
- Scheduling of notifications and alarms (they are scheduled with iPhone's own notification and alarm features. A silent push from our server only tells the app to sync; notifications and alarms go off as scheduled on the device)
- Alarm sound files you add
- Unsaved drafts, display theme and language choice
- Event and alarm details shown in the Home Screen widget and on the Lock Screen
- Saving to Roti from the share sheet (iPhone app): text and links you share from another app are held in a temporary inbox on your iPhone, imported as a note the next time you open Roti, and then the temporary file is deleted. An imported note is handled exactly like a note you write yourself.
When the display language is set to Automatic and your device language is not Korean, English or Japanese, we check your country (a two-letter country code) once to choose a display language. We don't store it on the server.
5. How long we keep it and how we delete it
- We keep the information in section 3 for as long as you have an account (error diagnostics are kept for the period set out below).
- Deleting a note moves it to Trash, where you can restore it for 30 days. Notes in Trash and deleted events, to-dos and alarms are permanently and automatically deleted from our server 30 days after our server receives the deletion (within an hour after the 30 days are up), and can't be recovered after that. If you delete something while your device is offline, the 30 days start when that device next syncs with our server.
- To keep your other devices in sync, we keep a deletion record with no content (the item's ID and the time it was deleted) for as long as you have an account. Titles, text and other content are not kept.
- To sync your devices, we keep a change history for each item on our server, and it may contain content from before you edited it. This history is deleted along with the item 30 days after the item is deleted, and promptly when you delete your account.
- Copies left on a device are deleted when you open the app after the 30 days have passed. On iPhone, this requires updating to the latest version of the app. If you use Roti without signing in, your content is stored only on your device, and deleted items are removed when you open the app once 30 days have passed since you deleted them on that device.
- A sign-in session expires after 180 days without use.
- Push tokens are deleted when you sign out, disconnect a device or delete your account. Tokens for devices whose sign-in session has expired or been revoked are deleted in a cleanup that runs every hour, and a token that Apple tells us is no longer valid is deleted right away.
- Sign-in attempt records (IP address and time) are deleted 30 days after they are recorded.
- Error diagnostics are kept by Sentry for up to 90 days after Sentry receives them and then deleted automatically. Because they are not linked to your account, they are deleted on this schedule regardless of whether you delete your account.
- When you disconnect Google Calendar, we delete the Google access tokens and connection details and ask Google to revoke the tokens. Events already imported into Roti stay in Roti, and events you sent to Google Calendar stay in Google Calendar. If an event you delete in Roti can't be deleted from your connected Google Calendar, it may remain in your Google account, and you will need to delete it in Google Calendar yourself.
- Database backups made before maintenance and releases may still contain information from before it was deleted, including the content of deleted items. Backups are used only for disaster recovery. We keep each backup for 30 days after it is made and delete it at the first server maintenance or release after that. The most recent backup is kept until the next one is made.
6. Deleting your account and your data
- You can delete your account at any time in the app under Settings › Delete Account.
- When you delete your account, we promptly delete your notes, events, to-dos, alarms and settings, sync history, registered devices and their push tokens, sign-in sessions, and your Google Calendar connection (including the access tokens issued by Google). Deleted data can't be recovered.
- Events you exported to Google Calendar are stored in your Google account and remain there after you delete your Roti account. Delete them in Google Calendar if you no longer want them.
- When you delete your account, we ask Google and Apple to revoke the sign-in and connection tokens we received.
7. Information we keep after account deletion
To prevent abuse through repeated sign-ups and to handle disputes related to account deletion, we keep the following information about deleted accounts separately.
- What we keep: email address, sign-in provider (Google or Apple), the account identifier issued by that provider, sign-up date, and deletion date
- How long: 90 days from the deletion date
- How we keep it: encrypted and stored separately from other account data, and used only for the purposes above.
- Deletion: after the retention period, we delete it without delay in a way that can't be recovered.
- Signing up again: if you sign up again with the same Google or Apple account during this period, a new account is created. Data you saved before deletion is not restored.
8. Sharing, service providers and transfers abroad
We don't sell your personal information or provide it to third parties, except where the law requires it. We use the following providers to run the service.
- Amazon Web Services, Inc.: hosts our server and database (Amazon Lightsail). The data is in the AWS Seoul Region, so it is stored in the Republic of Korea.
- Vercel Inc. (United States): hosts and delivers the web app and forwards requests from the web app to our server. When you use Roti on the web, the content you send and receive and your connection details (IP address, browser type, time of request) pass through Vercel's network, which includes locations outside Korea. Sync requests from the iPhone app go directly to our server.
- Apple Inc. (United States): delivers silent pushes to signed-in iPhones (Apple Push Notification service).
- Functional Software, Inc. (operating as Sentry, United States): collects, stores and analyses error diagnostics from the iPhone app and the web app.
Depending on the features you choose, information is exchanged with the following companies.
- Google LLC (United States): verifies your sign-in when you sign in with Google. If you connect Google Calendar, we send event titles, descriptions, start and end times, all-day status, time zones and repeat rules to the calendar you choose. This stops when you disconnect. To-dos are not sent to Google.
- Apple Inc. (United States): verifies your sign-in when you sign in with Apple. The app is distributed through the App Store and TestFlight.
Personal information transferred outside Korea is described below. Each transfer is part of entrusting or storing information as needed to provide the service, and is sent over an encrypted connection (HTTPS) when you use the service.
- Vercel Inc. (United States, vercel.com/legal/privacy-policy): the content you send and receive and your connection details when you use the web app. Used to deliver the web app and forward requests; we don't ask Vercel to store them. If you don't want this, you can use the iPhone app instead.
- Apple Inc. (United States, apple.com/legal/privacy): the push token and a wake-up signal with no content. Sent whenever something changes on another device (at most once a minute per device); a signal that can't be delivered is discarded after an hour. If you don't want this, sign out or use Roti without signing in: the token is deleted and sending stops. Your iPhone will still sync when you open the app.
- Functional Software, Inc. (Sentry, United States, sentry.io/privacy): the error diagnostics described in section 3 (iPhone app and web app). Sent over the internet when an error occurs or when you reopen the app after a crash, and kept for up to 90 days after Sentry receives them. Error diagnostics are the minimum information we need to find and fix errors in the service, so they can't be turned off separately in either the app or the web app. If you don't want them sent, you can stop using Roti, in which case you won't be able to use the service. Diagnostics already sent aren't linked to your account and are deleted within 90 days after Sentry receives them.
- Google LLC (United States) and Apple Inc. (United States) for sign-in and Google Calendar: the information above is sent when you use those features. Each company's own privacy policy applies.
9. How we use Google user data
Connecting Google Calendar is optional. We use only the access you grant on the Google consent screen (seeing your calendar list, and viewing and editing events).
- Purpose: only to show events from the one calendar you choose in Roti, and to apply events you create or edit in Roti to that calendar.
- What we read: your calendar list, and events in the calendar you choose (title, description, start and end time, repeat rules, link).
- What we write: event title, description, start and end time, all-day status, time zone and repeat rules. We don't send notes, to-dos, alarms or alert settings to Google, and we don't change attendees, locations or video meeting details.
- We don't use Google user data for advertising, we don't sell it or provide it to third parties, and we don't use it to develop or train artificial intelligence models.
- Our staff don't read your Google Calendar data, except with your consent when you ask us for help, to investigate a security incident, or to comply with the law.
- Google access tokens and calendar IDs are stored encrypted on our server and deleted when you disconnect or delete your account.
Roti's use and transfer to any other app of information received from Google APIs will adhere to the Google API Services User Data Policy, including the Limited Use requirements.
10. Cookies and browser storage
- On the web we use only the cookies needed to keep you signed in:
daily_access(15 minutes),daily_refresh(180 days), anddaily_google_login_flow(10 minutes, while you sign in). None of them can be read by JavaScript, and they are sent only over HTTPS. There are no advertising or analytics cookies. - Browser storage (IndexedDB and localStorage) holds your device's copy of your notes, events, to-dos and alarms, unsaved drafts, theme and language choice. Clearing the site's data in your browser removes it. If you block cookies, you won't be able to sign in.
- The iPhone app keeps your sign-in credentials in the iOS Keychain.
11. Your rights and choices
- Access and correction: you can view and edit your notes, events, to-dos, alarms and settings in the app and on the web at any time.
- Deletion: delete your account and everything in it under Settings › Delete Account. If you can't sign in, email contact@egoist.kr from the address you signed up with.
- Disconnecting: in Settings you can disconnect Google Calendar or sign out of all devices. Signing out also deletes that device's push token. You can also remove Roti's access in your Google Account security settings.
- For any other request to access, correct, delete or stop the processing of your information, or to withdraw consent, email contact@egoist.kr. We will act on it without delay. A legal representative or someone you authorise may make the request for you. You can also send us an email from Contact Us at the bottom of Settings in the app.
12. Children and age requirements
- You must be at least 14 years old to create an account and sign in (to sync across devices). We don't knowingly collect personal information from children under 14. If we learn that a child under 14 has created an account, we will delete the account and its information without delay.
- Anyone can use Roti without signing in, on their own device, regardless of age. In that case notes, events, to-dos and alarms are stored only on the device, and the only information we receive is error diagnostics (section 3), which contain nothing that directly identifies you, such as your name or email address.
13. How we protect it
- Encryption in transit: the app and the web app talk to our server only over HTTPS.
- Encryption at rest for sensitive items: tokens issued by Google and Apple, calendar IDs and the identifying information of deleted accounts are stored encrypted. For sign-in session tokens, the server stores only a hash.
- Sending only what's needed: silent pushes don't contain your content, and error diagnostics are configured not to include personally identifying information.
- Access control: the database sits on an internal network that is not exposed to the internet, and server access is limited to the people who operate the service.
- Web sign-in cookies can't be read by JavaScript, and requests are checked against cross-site request forgery.
14. Using Roti outside Korea
- Roti is offered in the Republic of Korea, Japan, Taiwan, Hong Kong and the United States. Wherever you use it, your information is handled under this policy, and our server and database are in Korea. Information may also be transferred to the United States and elsewhere through the providers in section 8.
- If the law where you live gives you rights beyond this policy, such as access, correction, deletion, stopping use, or disclosure of records of provision to third parties, you can exercise them in the ways set out in section 11. We will respond within the time that law requires.
- We don't sell personal information or share it with other companies for targeted advertising. We don't track you, regardless of your browser's Do Not Track signal.
15. Privacy officer
Chanseop Shin, CEO · contact@egoist.kr
16. Getting help
If you need help with a privacy concern, you can also contact:
- Personal Information Infringement Report Center: 118 (privacy.kisa.or.kr)
- Personal Information Dispute Mediation Committee: 1833-6972 (www.kopico.go.kr)
17. Company details, changes and history
Egoist · CEO Chanseop Shin · Business registration No. 136-10-85966 · SW Startup Room 3, Knowledge Bunker, B1, Engineering Building 5, 55 Hanyangdaehak-ro, Sangnok-gu, Ansan-si, Gyeonggi-do, Republic of Korea · contact@egoist.kr
This policy takes effect on October 28, 2026. If we change it, we will post the new version on this page with its effective date. For important changes, such as collecting more information or using it for new purposes, we will give notice at least 7 days before the change takes effect.
- Effective October 28, 2026: renamed the service from Daily to Roti; added to-dos, silent pushes and push tokens, Apple (APNs) and Sentry as service providers and the related transfers abroad, error diagnostics from the iPhone app and the web app, age requirements (with and without signing in), and using Roti outside Korea. Notice was posted on this page on October 21, 2026.
- Effective October 14, 2026: first version (the service was then called Daily). You can read it at egoist.kr/roti/privacy/2026-10-14/.