Standalone iOS & Android app
Your journal. Your device.
Privacy policy · Last updated October 1, 2026
Sodam is an offline diary and personal ledger operated by Labudo (라브도). This policy describes the standalone app prepared for iOS and Android.
1. Information you keep in Sodam
The app stores the information you choose to enter: purchase names, amounts and currencies, dates, categories, feelings, notes, pause-list items and decisions, weekly reflections, candidates saved by earlier versions, and language and currency preferences. It also stores local identifiers and creation or update times needed to manage those records.
We use this information on your device to display, search, edit, and summarize your journal, organize the pause list, and support file export and import. Amounts in different currencies are summarized separately.
2. Local storage and security
Journal data is stored in a SQLite database in the app's storage area on your device. The app does not apply its own database encryption. Optional native device-authentication locking is described below. Device access controls and operating-system security protect access according to your device settings; we do not promise that local files cannot be accessed on an unlocked or compromised device.
Operating-system device backups may include app data depending on your platform, configuration, and backup settings. Apple or Google handles those backups under its own terms. Sodam does not operate a cloud backup or synchronization service.
3. No sign-up, bank connection, or advertising tracking
The standalone app does not require sign-up or a bank connection. It has no advertising SDK or cross-app tracking for advertising, and it does not upload full journal entries or send journal content to billing providers. Campfire content you choose to share goes to its separate service. Minimal item labels from valid spending entries are automatically sent for categorization as described below. Its journal, pause-list, and reflection features work offline. Optional Plus purchases and restoration require a network connection when billing is configured.
Opening a help or privacy webpage, contacting support, or choosing to share an exported file may open your browser, mail app, file provider, or another app. Those services handle that activity under their own policies. App stores and operating systems may separately process purchase, installation, diagnostic, or backup information according to your platform settings and their policies.
Campfire with friends
Campfire is optional. After you review and create a room, the Campfire service stores its title, the story you chose to share, feeling, nickname, optional amount and currency, participants, feeling reactions and optional reply text, timestamps, and report/block information. Your original journal note is not copied automatically. Anyone with the invitation link may read it and can forward the link. Rooms expire after 24 hours; the host can close one earlier, removing active room content; reported evidence and metadata follow the separate retention periods below. You may delete your replies and report or block another participant. Drafts, room-management credentials, and your private closing note stay on your device and are excluded from the journal JSON backup. Clearing local data does not close a hosted room; close it first if needed. Invite hash tombstones remain to prevent token reuse. Report retention is described below. Hosting backups or copies saved by recipients are separate from the live room. The service temporarily processes connection information to limit abuse. No journal content is sent to billing services.
4. Optional Plus purchases
When store billing is enabled, Sodam uses RevenueCat and Apple App Store or Google Play to offer and verify optional Plus monthly subscriptions, restore entitlements, and analyze subscription performance. This processing can include an anonymous app user identifier, product identifiers, purchase or transaction history, receipt or purchase-token information, entitlement status, including subscription status where applicable, and technical app, device, and store information needed to operate billing. It does not include purchase-journal names, amounts, feelings, notes, reflections, inbox contents, source text, or images.
The store processes your payment details; Sodam does not receive your card number. RevenueCat processes billing data on Labudo’s behalf and stores it on infrastructure in the United States. This can involve transferring information outside your country under the provider’s applicable contractual safeguards. RevenueCat and the stores retain billing information according to their policies and applicable obligations. Resetting your local journal does not cancel a store subscription or delete the providers’ billing records. Manage subscriptions through your Apple or Google account. See RevenueCat privacy, Apple privacy, and Google privacy. Contact support for questions about Sodam billing identifiers or related privacy requests.
Current availability, product prices, and purchase options appear in the app only when a real store offering is configured. We do not treat journal contents as payment data. Free JSON backup and local data controls remain available without Plus.
5. Exporting, importing, and sharing files
Manual entry: Write each purchase and its amount on one line. Press Enter for the next record, review the details, choose a feeling if you want, and save the records together. Sodam does not collect payment notifications or messages, or receive payment text through Shortcuts.
Previously saved candidates remain local legacy data; they do not enable new automatic collection.
Temporary inputs from earlier versions: Earlier versions could keep text, CSV, images, and shared files temporarily in app caches or queues. These are no longer new purchase-input methods. Interrupted processing or cleanup may leave temporary copies. Confirming Delete all records in Settings clears app-owned pending-share files and queues. Original files in Photos, Files, or other apps are not deleted.
JSON export creates a copy of your journal data and previously saved candidates. It does not include source images or queued notification, Shortcuts, or shared originals. CSV exports contain saved spending-journal records. JSON backup import is free. You decide where to save it and whether to share it. Exported files are not encrypted by Sodam and can contain private names, amounts, feelings, and notes. Keep them somewhere you trust.
JSON backup import reads a file that you explicitly select. Review the import summary before merging its records with your local journal. Amount-free diary entries are excluded; the original backup file is unchanged. Supported legacy Sodam records use Korean won where no currency is included. Importing a file does not connect to or delete anything from the previous service.
Deleting records in the app does not remove exported files, copies shared with other people, or device backups. Manage those copies in the service or location where you saved them.
6. Retention, deletion, and your choices
Your local records remain until you delete them, clear the app's local data, or remove the app. You can view and edit records, delete them, and export a copy in the app. The Settings reset control clears the current standalone app's local journal data, including inbox candidates, after confirmation. It does not delete data retained by the previous version of Sodam.
Uninstalling the app, losing your device, or clearing its storage may permanently remove your only usable copy. Export before changing phones or uninstalling. Labudo cannot recover a local journal without a backup you control. Restoring an operating-system backup or importing an older file may restore previously deleted entries.
7. Support messages and this website
If you email pwd.labudo@gmail.com, Labudo receives your email address and whatever you choose to include. This information is used to answer and resolve your request. Support email is handled by the email provider and retained only as needed for the request and any applicable obligations. You may request deletion of a support conversation by email. Do not send your full journal or export unless needed for a specific issue and you choose to do so.
This informational website does not add advertising or analytics trackers. When a public website is hosted, its hosting provider may process standard request information such as IP address, request time, and browser details to serve and secure the pages. This is separate from the offline app's local journal storage.
8. Contact and changes
Operator: Labudo (라브도). For privacy questions, access or deletion requests concerning support messages, or help with the previous service, contact pwd.labudo@gmail.com.
We will update this page and its date if the app's data handling changes. New data collection or sharing features require updated disclosures before release.
Diary and local ledger
Sodam stores your spending records, original entry text and drafts locally on your device. Financial data saved by earlier versions, such as account aliases or recurring schedules, may remain in local storage and JSON backups; these are not current app management features. There is no bank connection or journal cloud sync. Amounts stay in their original currencies. Feelings in the line composer are optional and chosen by you. JSON backup includes saved ledger data and excludes unsaved composer drafts; protect exported files.
Automatic categorization
When you enter or edit a valid expense row, Sodam automatically sends only its minimal purchase label through its classification service to TypeSafe AI Jev for categorization. There is no separate AI button or approval for each request. Do not put personal information in the item name. Full entry text, notes, feelings, amounts, dates and account/card or payment details are excluded. Your manual category changes take priority. If the result is uncertain or the network is unavailable, local or manual categorization and saving remain available. Income, existing saved records and restored drafts are not sent retrospectively. The API key remains on the server, never in the app. The classification service keeps request-version/session and quota metadata, not item content; session credentials expire after one hour, daily counters after the relevant day, and lifetime usage counters remain. TypeSafe hosts and processes data in the United States and retains it for as long as needed for its services, business purposes or legal obligations. Its policy says input is not used to train models. No fixed deletion period or zero-data-retention arrangement is confirmed for Sodam. See the TypeSafe privacy policy, data processing terms and enterprise retention options. A synthetic request through the app module and production service returned a Jev category and applied it. Native-screen behavior is verified separately.
Reports and retention
Room closure or expiry removes active room content, but captured report evidence remains up to seven days from the report and report metadata/actions up to 30 days. Cleanup runs on requests and periodically while the service runs; overdue data is cleaned after downtime. Invite hashes remain to prevent reuse. Deletion is logical: disks, logs, backups and recipient copies need separate handling. Reports about stories, messages or participants go to a separate operator queue; blocking applies to anonymous credentials and cannot prevent every return with a new credential. Anyone holding an active invitation can read the story and forward the link. The deployed service has passed synthetic room, participation, reply, reporting, operator-action, blocking and closure checks. Native screens, moderator staffing and support monitoring require separate verification; no immediate response is promised. Contact pwd.labudo@gmail.com if room access has expired.
App lock and local reminders
Optional native app locking uses your device authentication, including supported biometrics or device passcode fallback. Sodam does not receive biometric templates or your passcode. This does not encrypt the journal database or exported files. Background screen protection and optional local reminders depend on the device and permissions. Reminders use generic text without purchase details and do not request a remote push token. Physical-device behavior still needs verification.