Privacy Policy

Omeli Roommates

Effective date: 2026-11-11

This policy explains how this application handles information and how to contact us about privacy.

Information we process

Omeli Roommates stores story choices, completed scenes, trust levels, relationship directions, unlocked story photographs, apartment agreements, room decorations and the current scene on your device. Language, text, sound and motion preferences also stay on the device. An optional shelf photograph selected through the system photo picker is stored locally as a resized JPEG and is never included in cloud progress. The app creates a random installation identifier and a random installation secret; the secret is kept in the iOS Keychain. When cloud synchronization is enabled, the installation identifier and game progress are sent to the backend, which stores the progress, a one-way bcrypt hash of a digest of the secret, a version number and creation/update timestamps in PostgreSQL. The service receives request metadata such as IP address, request time, path and response status. Its in-memory abuse protection uses a hash of the request IP address for short-lived rate-limit counters. Visiting this website also sends ordinary request metadata to the hosting infrastructure.

How we use information

Local storage makes the full story playable offline, restores your place after closing the game and applies your preferences. The optional local photograph decorates your room. Cloud processing maintains a copy for this installation, authorizes access with its secret, detects conflicting versions and supports deletion of that copy. Technical request processing, readiness checks and rate limits operate and protect the service. No account, sign-in, advertising, analytics, mailing list, support ticket or email delivery system is used.

Service providers and sharing

The application backend and its PostgreSQL database are hosted on Railway. Railway processes service traffic, database storage and infrastructure diagnostics as a hosting provider. Cloudflare provides the public HTTPS proxy for the API and privacy website and processes traffic passing through it, including request metadata and transmitted progress requests. Cloudflare terminates the public TLS connection and forwards requests to the Railway service over HTTPS. Application error logs contain a generated request identifier and an error event, not your secret or saved story. Hosting infrastructure can receive IP addresses, request paths containing the installation identifier, timestamps and status codes; the application does not control or promise a specific retention period for Railway or Cloudflare infrastructure logs. Device data is also subject to iOS and any device backups you configure with Apple. We do not sell progress or use advertising or analytics recipients. Opening an external privacy link uses your browser and its normal network handling.

Data retention

Local progress and preferences remain until replaced by a new story, removed with the application or otherwise deleted from the device. The shelf photograph remains until you remove or replace it or remove app storage. The installation secret is device-only Keychain data and may survive an app reinstall on the same device; it is not a cross-device recovery method. Server progress remains until an authorized deletion request removes it or the service is discontinued; there is no automatic expiry period configured for saved progress. Rate-limit counters are kept only in memory and apply to one-minute windows. Entries are replaced when an address is used again, and expired entries are removed when the in-memory table grows; all entries disappear when the service process restarts. We do not assert a fixed retention period for infrastructure logs or provider-managed backups. Any backup copies follow the hosting provider’s configured lifecycle and are not directly erased by the app’s row-deletion request.

Deleting your information

In Settings, Delete cloud copy sends an authorized deletion request for this installation’s server record and reports success only after a successful response. Synchronization is then disabled so that the local story is not immediately uploaded again. Local progress and your shelf photograph stay on your device. Starting a new story replaces the local story, relationships and album; if synchronization is enabled the server copy is updated to that new story. Remove photo deletes the app’s local shelf copy without deleting the original from your photo library. Removing the application removes its local app storage, but a Keychain secret may remain. Device backups you previously made are managed separately through Apple. If you lose the installation secret, the app cannot recover or authorize access to that cloud copy through a login; contact bowie.blount@icloud.com to discuss any privacy request without sending the secret by email.

Permissions and your choices

The game does not require camera, microphone, location, contacts or notification permission. You can choose a picture with Apple’s system photo picker, which shares only the item you select and does not grant the game broad access to your photo library. You can cancel the picker and remove the app’s stored shelf copy at any time. The game remains playable without a photograph or a network connection. Turn off cloud synchronization in Settings to stop future automatic progress requests; this does not itself delete an existing server copy. If you have granted any system-level access, you can change it in iOS Settings.

Your privacy rights

You can inspect your story, choices and relationships in the game, select which version to keep when cloud progress conflicts, start a new story, remove a shelf photograph, disable synchronization and delete your installation’s server copy. Applicable privacy laws may provide rights to access, correct, delete, restrict or object to processing, or complain to a relevant authority. For questions or requests contact bowie.blount@icloud.com. This is a public privacy contact, not a game account or an email feature. We may need information sufficient to locate data and verify a request; no universal credential or public access to another installation’s progress is provided.

Security

The deployed API uses HTTPS, with public TLS terminated by Cloudflare and requests forwarded over HTTPS to the Railway origin. A cryptographically random secret is stored in the device-only Keychain; the server verifies a one-way bcrypt hash of a SHA-256 digest for every progress read, write and deletion. The database is reached by the backend over Railway’s private service connection. PostgreSQL transactions and version checks prevent stale writes from silently overwriting newer progress. The service limits request sizes, request time and request frequency, and does not intentionally log authorization headers or game-state bodies. Local progress writes are atomic and use iOS file protection until first device unlock. These measures reduce risk but cannot guarantee absolute security. Keep your device secure and never share the installation secret.

Children’s privacy

Omeli Roommates is a story about shared living, friendship and optional consensual romance, intended for young adults rather than children. It does not ask for age, a real name or contact details. It contains no advertising, purchases or social communication. If you believe a child has provided personal information to the service, contact bowie.blount@icloud.com so the situation and available deletion options can be assessed.

Changes to this policy

This policy describes the current application and service. If their data practices change, the policy and its effective date will be updated at this public page. You can open the current policy from Settings in the app. Material changes will be explained in the updated policy; no promise of email notification is made because the game does not collect account email addresses.