Privacy Policy
Version 1.0 · Last updated: 21 October 2026 [TODO: update the date when this is published]
The Modul app
What Modul is
Modul is a personal organiser for iPhone, with iPad layouts. It combines To-Do, Habits, Calendar, Projects, Notes and Finance in one app, and adds widgets, Live Activities, Control Center controls, Siri and Shortcuts actions and Home Screen quick actions. It is made by an independent developer in Ukraine.
Data I collect
None. Specifically:
- Modul has no account. It never asks for an email, password, phone number or an Apple or Google login.
- I run no servers for Modul: there is no backend, no database of users and no API of mine.
- There is no analytics, advertising, tracking, crash-reporting SDK or other third-party SDK in the app. The app’s privacy manifest declares that it does not track you, lists no tracking domains and lists no collected data types.
Because I never receive the content you keep in Modul, I do not access it and I do not act as a controller of it. If you have questions about this, write to me.
Where your data lives
On your device. Modul keeps your content in a database on your iPhone or iPad.
In your own iCloud. If you use iCloud, Modul stores your data in your private iCloud database (CloudKit container iCloud.com.mykhalik.Modul) so your devices stay in sync. That database belongs to your Apple Account. As the developer, I cannot read it. Apple operates iCloud under Apple’s own terms and privacy policy. Modul has no on/off switch for sync. You control iCloud for apps in iOS Settings, and when iCloud is unavailable Modul keeps working on the device alone. [TODO: confirm the iOS Settings path and the behaviour with iCloud off, on a real iPhone]
Settings. A few small settings (not your content) also travel through iCloud’s key-value store, so a second device looks the same.
Widgets and Live Activities. They read a small snapshot of tasks, calendar items and finance totals that the app writes to an App Group container. That container is shared only between Modul and its own widget extension, on the same device.
Notifications. Reminders and budget alerts are local notifications scheduled on your device. I have no push server. The app declares the remote-notification background mode only so iCloud can wake it to sync.
What each permission is for
| Permission | What it is used for | Where the data goes |
|---|---|---|
| Calendars (full access) | Shows events from your phone’s calendars on your day. Changes them only when you ask, for example to add a task to a calendar or to move or edit an event. Optionally mirrors tasks into a calendar, one way. | Stays between Modul and the system calendar store. That store may sync through your own calendar accounts, which is your calendar provider and not Modul. |
| Camera | Only when you photograph a receipt. The picture is read on your iPhone using Apple’s on-device Vision framework (Ukrainian, Polish and English) and is never sent anywhere. The result is a draft that you confirm. Modul does not save the photo; only the fields you confirm are stored. | On your device only. |
| Location (when in use) | Only when you tap “Current Location” while choosing a meeting place, and to estimate travel time to a meeting (“Time to leave”). | Place search and route requests go to Apple Maps (MapKit) under Apple’s privacy policy. Modul keeps no location history and does not send location to me. The meeting place you choose is saved with that task like any other field, and travels wherever your tasks go: your device and your own iCloud. |
| Face ID | Only to unlock Modul, if you turn on “Unlock with Face ID” in Profile → Security. | iOS handles biometrics. Modul never receives your face data. |
| Notifications | Task reminders, budget notices at 80% and 100%, and scheduled alerts. | Local to your device. |
| Contacts | No permission is requested. You can take your profile name and photo from your own contact card with the system contact picker, which runs outside the app and exposes only the one card you choose. | Stored in your profile (your device and your own iCloud). |
| Photos | No broad permission is requested. The system picker shares only what you choose. [TODO: confirm] | Stored in your profile or entries (your device and your own iCloud). |
| App lock | Modul’s own 4-digit code, with optional Face ID, covers the app. If you forget the code, it falls back to your iPhone passcode. | The code stays on the device and never syncs. |
Services Modul talks to
These requests go directly from your phone to the service. I do not proxy, log or see them.
| Service | When | What is sent |
|---|---|---|
| monobank (api.monobank.ua), optional | Only if you connect a monobank account in Finance. | Your personal read-only API token, as a header, to read accounts, balances and statements. The token is kept in the iOS Keychain on this device only. You can disconnect at any time. |
| Binance, WhiteBIT, Kraken, OKX, optional | Only if you connect an exchange with read-only API keys. | The key and a signed request, to read balances. Binance’s public ticker price is also used to value coins. Keys and secrets are kept in the Keychain. Modul never trades, withdraws or moves funds. |
| National Bank of Ukraine open data (bank.gov.ua) | To get the daily exchange-rate table for currency conversion. | Nothing personal. It is an ordinary HTTPS request, so the NBU sees your device’s IP address like any website would. |
| Apple iCloud, CloudKit, iCloud Keychain | For sync. | Your own data, encrypted in transit. iCloud Keychain items are end-to-end encrypted. Governed by Apple’s terms. |
| Apple Maps (MapKit) | For place search and travel time. | The search text or coordinates needed for the request. Governed by Apple’s privacy policy. |
| Apple App Store (StoreKit) | For downloading Modul and, later, a Pro subscription. | Handled by Apple. I never see payment details. |
| Google Maps, Apple Maps, meeting links | Only as links you tap, opened in the system or in the other app. | Modul itself sends nothing. |
Optional keychain sync. In Profile → Security you can switch on “Sync bank keys via iCloud”. Then only the monobank token and exchange keys are stored as iCloud Keychain items, which Apple encrypts end to end, so that your iPad does not need them typed again. It is off by default. The app-lock code never syncs.
Modul is not affiliated with or endorsed by monobank, Binance, WhiteBIT, Kraken, OKX, Apple or Google. Their names are trademarks of their owners.
Backups, export and deletion
- Backup. Profile → Backup exports a JSON file through the iOS share sheet, and you choose where to save it. Modul does not upload it anywhere. You are responsible for where you keep that file. Import reads a JSON file that you select.
- Deleting items. Deleting an item deletes it on every synced device. An in-app undo exists for deletions; it is not a way of keeping data.
- Disconnecting. Disconnecting a bank or exchange removes its token or keys from the Keychain.
- Deleting the app. Removes the on-device database and the Keychain items stored on that device.
- Deleting the iCloud copy. Go to iOS Settings → your name → iCloud → Manage Account Storage → Modul → Delete Data. [TODO: confirm on a real iPhone that Modul appears under Manage Account Storage]
Modul 1.0 has no “erase everything” button. Modul has no accounts, so there is no account to delete.
Security
- Bank tokens and exchange keys are kept in the iOS Keychain, not in app preferences.
- Optional app lock and Face ID.
- Receipts are read on your device.
- All network requests use HTTPS (TLS).
No system is perfectly secure. I can tell you what is done; I cannot promise that nothing will ever go wrong. If you use iCloud, how your iCloud data is protected also depends on your iCloud settings, as described by Apple.
Children
Modul is not directed at children under 13 (16 in some countries). I do not knowingly collect data from children; in fact, I collect none from anyone.
What I receive when you contact me
Modul sends me nothing automatically. If you write to me, I receive the email address and the message you chose to send. Profile → Write to Us opens an email with the subject prefilled with your app and iOS version, for example “Modul 1.0 · iOS 26.6”. If no mail app accepts it, the address is copied instead.
I use your message only to answer you and keep it only as long as needed to help you. I do not sell it or share it.
Apple gives me aggregated analytics in App Store Connect (installs, sessions, retention and crash counts), only for users who agreed in iOS Settings to share them with developers. I cannot identify anyone from them. If I use TestFlight, its feedback also comes through Apple.
Your rights
EU, EEA and UK (GDPR). The only personal data I process for Modul is what you send me when you write to me (legitimate interest in answering you, or your consent). You have the right to access, correct, erase, restrict and port that data, to object to its use, and to complain to your supervisory authority. I make no automated decisions about you. Data stays on your device and in your own iCloud, so I do not receive or access it. Data that Apple processes for iCloud is processed under Apple’s infrastructure and terms.
My support email is hosted by Apple (iCloud+), the website by Cloudflare, and the project brief form is handled by Formspree. These providers operate internationally, so what you send me may be processed outside your country, including outside the EEA and the UK, under their own terms and safeguards. If you want to know more, write to me.
Ukraine. The Law of Ukraine “On Personal Data Protection” applies. If you think your rights were violated, you can contact the Ukrainian Parliament Commissioner for Human Rights.
California and other US states (CCPA/CPRA). I do not sell or share personal information, and I do not use it for targeted advertising.
To use any of these rights, write to [email protected].
This website
What the website does
This part covers mkhlkbhdn.com only. The statements in Part 1 about Modul collecting nothing do not apply here, because a website works differently from the app.
- The website itself sets no cookies and has no analytics. The typeface is bundled with the site, so opening a page does not make a request to Google.
- Cloudflare hosts the site and processes standard request data (such as your IP address, the time and the page requested) under Cloudflare’s own privacy policy.
- The ExpressionsLib product page (/shop/expressionslib) embeds two YouTube videos, using YouTube’s privacy-enhanced domain (youtube-nocookie.com). They load when that page opens, so your browser contacts YouTube, which receives your IP address and browser details and handles them under Google’s privacy policy. No other page on this website loads anything from YouTube.
- Links to Instagram, Telegram, Gumroad and other sites lead to those sites, and their policies apply once you open them.
The project brief form
If you send the project brief form on the home page, I receive what you type: name, email, company or brand, website, what you need, project details, budget, deadline and whether you have a script or storyboard. The form is sent through Formspree to my email. Formspree and my email provider process it under their own policies.
I use it only to reply to your enquiry. I keep it until one month after the project is closed, or, if no project follows, one month after the enquiry is closed. Then I delete it. You can ask me to delete it earlier. To ask for deletion, email [email protected].
The legal basis is my legitimate interest in answering you, or your consent to be contacted. Your rights are those listed in Part 1.
Changes to this policy
The version number and the “Last updated” date are at the top of this page. If I change the policy in a material way, I will update this page and the link inside the app.
Contact
Developer: Bohdan Mykhalik, an individual developer based in Ukraine (not a company or a registered sole proprietorship). Brand: mkhlkbhdn.
Email: [email protected]