ProText is built by Moruk Co. This policy explains how we process information when you visit the ProText website, use the browser based text counter, or use ProText features in the app. The website is live, and the Text Pro app is publicly available on iPhone, iPad, and Android through the App Store and Google Play. Features and providers may change as the product evolves, so this page describes current behavior rather than a promise about future features.
Text Pro does not require an account or login and currently has no subscription, paid tier, or cloud account for local drafts and settings. This means there is no account dashboard for deletion. The app provides a local data erase control, and you can email us for privacy or provider side requests.
What the current website does
The browser workspace calculates word, character, sentence, paragraph, and reading time counts in your browser. Recent drafts are stored in browser storage on this device. Basic counting and local history do not send your draft to the ProText website server. If you choose an AI action, the text needed for that action is sent through the Moruk AI gateway. Do not enter confidential or sensitive material into any online service unless you are comfortable with the applicable processing described in this policy.
Information processed
- Technical request data needed to deliver pages, secure the Worker, and prevent abuse.
- A browser preference recording whether optional analytics were accepted or declined, together with browser storage used by the free tool experience.
- Optional website usage information, such as page paths, referrer host, CTA interactions, tool starts and completions, scroll depth, and broad device or platform context.
- Aggregate traffic and performance measurements from Cloudflare Web Analytics.
- Browser and Worker error diagnostics through Sentry.
- If you use an AI action on the website or in the ProText app, the selected text, or the full draft when no text is selected, is sent through the Moruk AI gateway to produce the requested result.
- The app may send operational context with an AI request, such as the app version, platform, operating-system version, device model, locale, country, selected action, and a random gateway client identifier.
- If you send feedback from app Settings, Moruk receives the feedback kind and message, locale, app and build details, platform, operating-system and device context, runtime environment, and the random gateway client identifier. You may optionally provide an email address and permission to contact you. Bug feedback may include the recent gateway request identifier. A retryable failed submission is queued on the device until it can be sent or you erase app data.
App services and advertising
The Text Pro mobile app is free and supported by app open and interstitial ads from Google Mobile Ads, also called AdMob. Production ads initialize only after Google User Messaging Platform (UMP) resolves whether ads can be requested. If that state is unknown or ads cannot be requested, the app keeps ads paused.
Depending on your region and choices, UMP lets you review or change purposes such as storing and accessing information on the device, personalized advertising, and ad measurement. On iOS, Apple's App Tracking Transparency (ATT) permission may be requested only after UMP. Where GDPR applies, Text Pro requests ATT only when UMP Purpose 1 is granted. If Purpose 1 is denied or unavailable, the app does not request ATT. You can revisit available ad privacy choices from Settings in the app.
- Google Mobile Ads may process app or device identifiers, advertising and app interaction data, SDK diagnostics, fraud prevention signals, and approximate location signals where applicable under the SDK and regional configuration. Text Pro does not request precise location permission.
- Google Mobile Ads and Firebase may use SDK generated identifiers and device signals. Text Pro does not assign an account ID or a separate app specific analytics identity. The random gateway client identifier used for AI requests is separate and described below.
Analytics and diagnostics
When enabled, Cloudflare Zaraz sends the website event contract to Google Analytics 4 and Microsoft Clarity provides session behavior, recordings, and heatmap diagnostics. These optional services may process browser, device, page, referral, and interaction information. The ProText event code does not put document text, email addresses, full query strings, credentials, or uploaded document contents into Google Analytics event properties.
Cloudflare Web Analytics provides aggregate traffic and performance measurements at the proxied hostname. Sentry provides essential JavaScript and Worker error and runtime diagnostics. The website Worker does not submit request bodies to Sentry. Search Console is used by Moruk Co as a site owner reporting service for organic search performance; it is not used to collect text entered into the ProText counter.
In trusted production builds, the mobile app uses Firebase Analytics with consent-aware collection. The app applies a denied state until its production and consent requirements are met, then maps the current UMP choices to Firebase consent signals. It sends a bounded allowlist of structural app events. Draft text, AI input and output, gateway payloads, raw errors, paths, URLs, credentials, and advertising identifiers are excluded from the Text Pro event payload.
In plain terms, unresolved UMP consent denies Firebase analytics storage, ad storage, ad measurement data, and ad personalization. When consent is obtained, the choice about storing information on the device controls analytics storage. Ad storage also requires that ads can be requested, ad measurement controls advertising user data, and the personalization choices control personalized advertising. Where UMP says consent is not required, analytics storage is allowed and the advertising signals are allowed only when ads can be requested.
The app also configures Expo Observe for consent-enabled operational diagnostics. When analytics storage is allowed, it may receive navigation timing and bounded editor diagnostics such as character counts, file format or scope, and speech language. If consent is unresolved or analytics storage is denied, Observe remains configured but does not dispatch events.
The mobile app also has a separate conditional Sentry path. If a Sentry DSN is configured and the runtime is a trusted production build on a physical device, Sentry may receive crash and handled error reports, breadcrumbs, sampled performance traces, and bounded app, device, platform, runtime, update, network, request, response, or limited user text context. The app sanitizes and bounds this context and excludes credentials, authentication and payment secrets, raw or base64 media, and unbounded payloads. Sentry is disabled in local, development, simulator, and unconfigured builds. It is independent of the Firebase analytics consent tier.
AI processing on the website and in the app
Word counting, editing, drafts, statistics, and history in the browser workspace are designed to run locally. Optional AI actions require an internet connection and send the text needed for the selected action through the Moruk AI gateway and configured model providers. AI output can be wrong or change nuance, so review it before using or sharing it. In the app, a request may also include the selected action, app version and build, platform, operating-system version, device model, locale, country or region when provided, onboarding-selected writing goals, a target language for translation actions, and a random gateway client identifier. AI request content is not a website analytics event property or a Firebase Analytics event property.
Cookies and local storage
ProText uses browser storage and service provider technologies to remember your choices, provide local tool history, measure website use, and diagnose errors. The current website setup includes the following:
protext_analytics_consentrecords whether optional analytics were accepted or declined. A timestamped choice is honored for up to 180 days and can be changed from Cookie settings. An older format used for a declined choice did not include a date, so that legacy opt-out remains honored until you change it or clear browser storage. An expired timestamped record may remain until it is replaced or cleared, but the website ignores it after that period.- Browser storage may remember recent local drafts, the free tool experience, and pending navigation analytics. Drafts remain on this device unless you clear browser storage.
- The app stores drafts, history, settings, onboarding state, local usage and diagnostic state, pending feedback, and its random gateway client identifier on the device until you clear the app data.
- Where consent is required, Cloudflare Zaraz loads Google Analytics 4 and Microsoft Clarity only after you accept optional analytics. Where consent is not required, those services may load by default unless you decline or use a browser privacy signal. They may use their own cookies, local storage, or identifiers under their current settings and policies.
- Cloudflare Web Analytics measures aggregate performance at the proxied hostname, and Sentry provides essential error diagnostics.
Your choices and rights
Optional website analytics are enabled by default where the current product configuration permits them, and the compact banner gives you a clear way to turn them off or keep them on. You can revisit that choice through Cookie settings in the site footer. Global Privacy Control and Do Not Track signals opt out of the optional GA4 and Clarity services. Essential Sentry diagnostics and aggregate Cloudflare Web Analytics remain enabled for site reliability and traffic measurement.
In the app, use the UMP ad privacy choices in Settings when they are available to review or change the advertising decision. Ads stay paused while the decision is unresolved. Firebase Analytics follows the mapped consent signals and remains in its denied or basic state when analytics storage is not allowed. Conditional Sentry diagnostics are a separate operational path and are not controlled by the Firebase consent choice.
Depending on where you live, you may have rights to request access to, correction of, deletion of, restriction of, or objection to certain processing of your personal information. You can also ask questions about the information handled by the ProText website or app, including a request to delete information held by Moruk or to help route a request to a provider. We may need to verify a request and may retain information where required for security, legal, or operational reasons.
Retention and service providers
Browser consent and tool preferences remain in browser storage until they expire, are cleared, or are replaced by a new choice. Local app drafts and settings remain on the device until you delete them through the app or clear the app data. In Settings, the app action “Erase app data and start over” clears local drafts, history, settings, onboarding state, local usage and ad state, local telemetry fields, the random gateway client identifier, recent gateway request information, pending feedback, and recorded local gateway artifacts, then returns the app to onboarding. It does not delete information already held by Google, Sentry, the Moruk AI gateway, or configured model providers. It also does not reset native Google UMP consent or the operating-system ATT permission. The erase action does not directly clear diagnostic records stored in Expo Observe's separate native storage; those records follow Expo Observe's own dispatch and cleanup behavior. Use the app's ad privacy choices to change available UMP choices and the operating-system settings to manage ATT. The erase action does not promise to reset other operating-system or provider identifiers.
The website is hosted and delivered by Cloudflare. Optional website analytics are provided by Google Analytics 4 through Cloudflare Zaraz and Microsoft Clarity. Aggregate Web Analytics and essential website Sentry diagnostics support site operations. The app uses Google Mobile Ads and Google UMP for advertising and ad consent, Firebase Analytics and Expo Observe for consent-enabled app measurement and diagnostics, conditional Sentry diagnostics, and the Moruk AI gateway and configured model providers for optional AI actions. Each provider may process data under its own privacy terms, controls, and retention practices. We do not promise a fixed provider retention period that we cannot verify.
Privacy requests and support emails are retained only as needed to respond, keep appropriate security or legal records, and follow up on the request. Provider side retention and deletion are controlled by the relevant provider, so we may need to direct you to its privacy controls or coordinate your request with it.
Contact
Email hi@protext.app with privacy questions, access or deletion requests, or a request about the website, app, Moruk gateway, Google services, or Sentry. Tell us which product and provider the request concerns when you know it. We may ask for information needed to verify and complete the request, but please do not send passwords, credentials, or unnecessary document text. For app local data, use “Erase app data and start over” in Settings first. This policy is an operational description of the current product and is not legal advice. You can also visit Support for product help.