LLettrait

Privacy Policy

Effective: July 25, 2026

The short version: Lettrait turns a photo you choose into a typographic artwork made of real letters. The photo, the words you engrave, the rendering, and the exported files are all processed on your device — your photos and your words are never uploaded to us or anyone else. The app shows no ads and has no account. What does leave your device: anonymous usage statistics (which screens and steps you reached — never your media or your text), crash diagnostics when the app stops unexpectedly, and what Google Play and RevenueCat need to run the optional paid exports.

1. Who we are

vargg (“we”, “us”) is the developer of the Lettrait Android app (gg.var.lettrait). Contact: [email protected].

2. Your photos and your words stay on your device

When you pick a photo and type a phrase, Lettrait reads them locally to build the letter grid, choose a glyph for every cell, and render the artwork. All of this runs on your device. We do not upload, store, or transmit your photos, the text you type, or the artworks you create. The app contains no code that could send them: it has no server of ours to talk to.

Finished artworks are archived as recipes in the app’s own private storage (Lettrait/library) so you can reopen and re-export them, and export files are written to the app’s own private storage too. A file only reaches your gallery, your cloud drive, or another app when you send it there through Android’s share sheet. Export files older than 30 days are swept automatically.

3. What we do and don’t collect

We do not collect:

We do collect anonymous usage analytics, through Google Analytics for Firebase, so we can see which parts of the app work and where people get stuck. It records a fixed list of product events — a photo was imported, a wizard step was viewed or stepped back from, a render started / succeeded / failed, the export sheet was opened, an export finished or failed, the paywall was opened, a purchase succeeded or was cancelled — each with a few technical attributes: the style preset, the canvas size, a cell-size band, a coarse cell-count band, how many letter packs and phrases were in play, a coarse duration bucket (under 1s, 1–3s, …), a zoom band, the export format, and an error category when something fails.

These events never contain your photo, any pixel of it, file names, file paths, gallery locations, EXIF metadata, or any character of the phrase you typed. This is a property of the code, not a promise about it: an analytics parameter may only hold a true/false flag, a number, or one constant from a fixed list, so there is no type a file name or a phrase could be carried in. Where an artwork has to be identified across events, the app sends the first 12 characters of a one-way hash instead of the artwork’s name.

Firebase assigns a randomly generated app-instance ID to your installation. It is not your Google account, not an advertising ID, and not a hardware serial; it resets if you clear the app’s data or reinstall. Google also derives an approximate location (country / region level) from the IP address the events arrive on, and receives the Google Play install referrer — which store link or campaign led to the install. Alongside the events, three low-detail properties describe the installation: whether it is on the free tier, a One credit, or Pro; the app’s active language; and how many letter packs are in use, as a band (1, 2, 3, 4+).

Google acts as our data processor for analytics; see Google’s privacy policy for how it handles this data. We keep analytics event data for at most 14 months. Debug builds used during development send nothing to Firebase — those events are printed to a local console only. To ask us to stop processing your usage analytics, email the address in section 11.

4. Purchase log kept on your device

The app writes its own purchase-related steps (paywall opened, plan selected, purchase succeeded, cancelled, or failed) to a small log file inside the app’s private storage. It exists so a billing or refund question can be answered from what the app actually believed, and it is capped at a quarter of a megabyte with the oldest entries dropped. This file is never uploaded — it is removed when you uninstall the app or clear its data.

5. Crash reports

When the app stops unexpectedly, Firebase Crashlytics sends us a technical report so the fault can be found and fixed. A report contains the error type and message, the stack trace (which functions were running), the device model, Android version, available memory and storage, the app version, and a Crashlytics installation identifier. We see these reports through Firebase and Google Play Console.

Crash reports are not designed to carry your content, and we do not use them to collect it: your photo, your artwork, and your phrase are not attached to a report. Before a report is sent, the app rewrites the error message inside it: anything shaped like a file path, a file name, or a content URI is replaced with a placeholder. What reaches us is the kind of failure and its cause — “could not open a file; no such file or directory” — and not the location it happened at. As with the analytics rule above, this is a property of the code rather than a promise about it. The one case it cannot cover is a crash inside an Android system component, which the system reports in its own words before the app is involved. We do not read crash reports for any purpose other than diagnosing the fault, and they are never used for advertising or profiling.

Crash collection is switched off in development (debug) builds, so a developer’s own crashes never enter the production reports. Crashlytics is provided by Google, acting as our data processor.

6. Purchase and subscription information

Lettrait is free to create with. Print- and edit-ready exports are unlocked by an optional one-off purchase (Lettrait One) or a subscription (Lettrait Pro). Payments are processed by Google Play Billing (Google is the seller of record), and entitlement status is managed through RevenueCat, which validates purchases and tracks whether you hold One or Pro. To do this, RevenueCat receives an app-generated anonymous identifier and purchase/transaction details (such as the product purchased, purchase and renewal dates, and basic device/platform information). We do not receive your card number or payment credentials — those are handled entirely by Google Play. If you never purchase, none of this applies.

RevenueCat acts as our data processor for purchase management. See RevenueCat’s privacy policy (revenuecat.com/privacy) and Google Play’s privacy policy for how they handle this data.

7. Device permissions

8. Children

Lettrait is a general-audience app and is not directed to children under 13 (or the equivalent minimum age in your country). We do not knowingly collect personal information from children.

9. Data retention & deletion

Your artworks, their recipes, and the export files live in the app’s private storage until you delete them; deleting an artwork in the library, clearing the app’s storage in Android settings, or uninstalling the app removes them, and export files older than 30 days are swept automatically. Anything you have already shared out to your gallery or another app stays there until you delete it. Analytics event data is kept for at most 14 months. To delete purchase records held by RevenueCat/Google, or for any privacy request, email us at the address below.

10. Your rights

Depending on where you live (e.g., under GDPR or Korea’s PIPA), you may have the right to access, correct, or delete your data and to withdraw consent. To exercise these rights, contact us. This policy is governed by the laws of the Republic of Korea, without prejudice to mandatory consumer protections in your country of residence.

11. Changes to this policy

We may update this policy as the app changes. We will update the “Effective” date above and, for material changes, surface a notice in the app or store listing.

12. Contact

Questions or requests: [email protected].

개인정보처리방침

시행일: 2026년 7월 25일

요약: Lettrait(레트레)는 사용자가 고른 사진을 진짜 글자로 이루어진 타이포그래피 작품으로 바꿉니다. 사진, 새겨 넣는 문구, 렌더링, 수출 파일은 모두 사용자 기기 안에서 처리되며 — 사진과 문구가 당사 또는 제3자에게 업로드되지 않습니다. 광고가 없고 계정도 없습니다. 기기를 떠나는 정보는 익명 이용 통계(어떤 화면·단계까지 진행했는지이며 미디어나 입력한 문자는 포함되지 않습니다), 앱이 비정상 종료됐을 때의 진단 정보, 그리고 선택적 유료 수출을 운영하기 위해 Google Play·RevenueCat이 필요로 하는 데이터입니다.

1. 운영 주체

vargg(이하 “당사”)는 Lettrait Android 앱(gg.var.lettrait)의 개발자입니다. 문의: [email protected].

2. 사진과 문구는 기기에 머뭅니다

사진을 고르고 문구를 입력하면 Lettrait는 기기 안에서 그것을 읽어 글자 격자를 만들고, 셀마다 톤이 맞는 글자를 고르고, 작품을 렌더링합니다. 이 모든 과정은 기기에서 실행됩니다. 당사는 사용자의 사진, 입력한 문구, 생성한 작품을 업로드·저장·전송하지 않습니다. 앱에는 그것을 보낼 수 있는 코드 자체가 없습니다 — 통신할 당사 서버가 존재하지 않습니다.

완성된 작품은 다시 열고 재수출할 수 있도록 앱 전용 저장 공간( Lettrait/library)에 레시피로 보관되며, 수출 파일 역시 앱 전용 저장 공간에 쓰입니다. 파일이 갤러리·클라우드·다른 앱으로 가는 것은 사용자가 안드로이드 공유 시트로 직접 보낼 때뿐입니다. 30일이 지난 수출 파일은 자동으로 정리됩니다.

3. 수집하는 정보와 수집하지 않는 정보

수집하지 않는 정보:

익명 이용 통계는 수집합니다. 앱의 어느 부분이 잘 동작하고 어디에서 막히는지 파악하기 위해 Google 애널리틱스 for Firebase를 사용합니다. 사전에 고정된 목록의 제품 이벤트 — 사진 가져오기, 마법사 단계 진입·뒤로가기, 렌더 시작· 성공·실패, 수출 시트 열림, 수출 완료·실패, 페이월 열림, 구매 성공·취소 등 — 과 소수의 기술 속성(스타일 프리셋, 캔버스 크기, 셀 크기 구간, 대략적인 셀 개수 구간, 사용한 글자 팩·문구 개수, 대략적인 소요 시간 구간(1초 미만, 1~3초 …), 확대 배율 구간, 수출 형식, 실패 시 오류 분류)을 기록합니다.

이 이벤트에는 사용자의 사진, 사진의 어떤 픽셀도, 파일 이름, 파일 경로, 갤러리 위치, EXIF 메타데이터, 입력한 문구의 어떤 글자도 일절 포함되지 않습니다. 이는 약속이 아니라 코드의 성질입니다. 통계 파라미터에는 참/거짓 값, 숫자, 또는 고정된 목록에 있는 상수만 담길 수 있어서, 파일 이름이나 문구가 실릴 수 있는 타입 자체가 없습니다. 여러 이벤트에 걸쳐 같은 작품을 식별해야 할 때는 작품 이름 대신 단방향 해시의 앞 12자리를 전송합니다.

Firebase는 설치본마다 무작위로 생성된 앱 인스턴스 ID를 부여합니다. 이는 Google 계정도, 광고 ID도, 하드웨어 일련번호도 아니며, 앱 데이터를 삭제하거나 재설치하면 초기화됩니다. 또한 Google은 이벤트가 도달한 IP 주소로부터 대략적인 위치(국가·지역 수준)를 추정하고, Google Play 설치 리퍼러(어떤 스토어 링크나 캠페인을 통해 설치됐는지)를 수신합니다. 이벤트와 함께, 설치본을 설명하는 저해상도 속성 3가지가 기록됩니다: 무료·One·Pro 중 어느 상태인지, 앱의 활성 언어, 사용 중인 글자 팩 개수 구간(1, 2, 3, 4+).

Google은 통계 처리를 위한 수탁자(처리자)입니다. 처리 방식은 Google 개인정보처리방침을 참고하세요. 통계 이벤트 데이터는 최대 14개월간 보관합니다. 개발 중 사용하는 디버그 빌드는 Firebase로 아무것도 전송하지 않으며, 해당 이벤트는 로컬 콘솔에만 출력됩니다. 이용 통계 처리 중단을 원하시면 11항의 이메일로 요청해 주세요.

4. 기기에 남는 구매 기록

앱은 결제와 관련된 자체 진행 단계(페이월 열림, 플랜 선택, 구매 성공·취소·실패)를 앱 전용 저장 공간의 작은 로그 파일에 기록합니다. 결제·환불 문의가 있을 때 앱이 실제로 무엇을 인식했는지로 답하기 위한 것이며, 크기는 0.25MB로 제한되고 오래된 기록부터 삭제됩니다. 이 파일은 전송되지 않으며, 앱을 삭제하거나 앱 데이터를 지우면 함께 사라집니다.

5. 비정상 종료(크래시) 보고

앱이 예기치 않게 종료되면 Firebase Crashlytics가 원인을 찾아 고칠 수 있도록 기술 보고서를 전송합니다. 보고서에는 오류 유형과 메시지, 스택 트레이스(어떤 함수가 실행 중이었는지), 기기 모델, 안드로이드 버전, 가용 메모리·저장 공간, 앱 버전, Crashlytics 설치 식별자가 담깁니다. 당사는 이 보고서를 Firebase와 Google Play Console에서 확인합니다.

크래시 보고서는 사용자의 콘텐츠를 담기 위한 것이 아니며, 콘텐츠 수집에 사용하지도 않습니다. 사진·작품·문구는 보고서에 첨부되지 않습니다. 또한 앱은 보고서를 보내기 전에 그 안의 오류 메시지를 다시 씁니다. 파일 경로·파일 이름·콘텐츠 URI처럼 보이는 부분은 모두 자리표시자로 대체되며, 당사에 도착하는 것은 “파일을 열 수 없음, 해당 파일 없음” 같은 실패의 종류와 원인일 뿐 그 일이 일어난 위치가 아닙니다. 위의 통계 규칙과 마찬가지로 이것은 약속이 아니라 코드의 성질입니다. 한 가지 미치지 못하는 경우는 앱이 관여하기 전에 안드로이드 시스템 구성요소 안에서 발생한 종료로, 이때는 시스템이 자신의 문장으로 보고합니다. 당사는 결함 진단 외의 목적으로 크래시 보고서를 열람하지 않으며, 광고나 프로파일링에 사용하지 않습니다.

크래시 수집은 개발용 디버그 빌드에서 비활성화되어 있어, 개발자 본인의 크래시가 운영 보고서에 섞이지 않습니다. Crashlytics는 Google이 제공하며, 당사의 수탁자(처리자)로서 처리합니다.

6. 구매·구독 정보

Lettrait로 작품을 만드는 것은 무료입니다. 인쇄·편집용 수출은 선택적 1회 구매 (Lettrait One) 또는 구독(Lettrait Pro)으로 해제됩니다. 결제는 Google Play 결제가 처리하며(판매자는 Google), 이용 권한 상태는 RevenueCat이 관리해 구매를 검증하고 One·Pro 보유 여부를 추적합니다. 이를 위해 RevenueCat은 앱이 생성한 익명 식별자와 구매/거래 정보(구매한 상품, 구매 및 갱신 일자, 기본 기기/플랫폼 정보 등)를 받습니다. 당사는 카드번호나 결제 수단 정보를 받지 않으며 이는 전적으로 Google Play가 처리합니다. 구매하지 않으면 위 내용은 적용되지 않습니다.

RevenueCat은 구매 관리를 위한 수탁자(처리자)입니다. 처리 방식은 RevenueCat 개인정보처리방침(revenuecat.com/privacy)과 Google Play 개인정보처리방침을 참고하세요.

7. 기기 권한

8. 아동

Lettrait는 일반 이용자 대상 앱으로, 만 14세 미만(또는 거주 국가의 최소 연령) 아동을 대상으로 하지 않으며 아동의 개인정보를 고의로 수집하지 않습니다.

9. 보관 및 삭제

작품과 레시피, 수출 파일은 사용자가 삭제할 때까지 앱 전용 저장 공간에 남습니다. 보관함에서 작품을 삭제하거나, 안드로이드 설정에서 앱 저장 공간을 지우거나, 앱을 삭제하면 함께 제거되며, 30일이 지난 수출 파일은 자동으로 정리됩니다. 이미 갤러리나 다른 앱으로 내보낸 파일은 사용자가 삭제할 때까지 그곳에 남습니다. 통계 이벤트 데이터는 최대 14개월간 보관합니다. RevenueCat/Google이 보관하는 구매 기록의 삭제나 기타 개인정보 요청은 아래 이메일로 연락해 주세요.

10. 이용자의 권리

거주 지역(예: GDPR, 대한민국 개인정보보호법)에 따라 열람·정정·삭제 및 동의 철회를 요청할 수 있습니다. 권리 행사는 아래 연락처로 요청하세요. 본 방침은 대한민국 법률을 따르되, 거주 국가의 강행적 소비자 보호 규정을 침해하지 않습니다.

11. 방침 변경

앱 변경에 따라 본 방침을 갱신할 수 있습니다. 변경 시 위 “시행일”을 갱신하며, 중요한 변경은 앱 또는 스토어 등재 정보에 고지합니다.

12. 문의

문의 및 요청: [email protected].

プライバシーポリシー

施行日:2026年7月25日

概要: Lettrait は、あなたが選んだ写真を、本物の文字だけでできた タイポグラフィ作品に変換します。写真、刻む言葉、レンダリング、書き出したファイルは すべてあなたの端末上で処理され、写真や文字が当社や第三者に アップロードされることはありません。広告はなく、アカウントもありません。端末から 送信されるのは、匿名の利用統計(どの画面・どの手順まで進んだかであり、メディアや 入力した文字は含みません)、アプリが予期せず終了したときの診断情報、そして任意の 有料書き出しを運用するために Google Play と RevenueCat が必要とするデータです。

1. 提供者

vargg(以下「当社」)は Lettrait Android アプリ (gg.var.lettrait)の開発者です。お問い合わせ: [email protected]

2. 写真と言葉は端末に留まります

写真を選んで言葉を入力すると、Lettrait は端末内でそれらを読み込み、文字のグリッドを 作り、セルごとに階調の合う文字を選び、作品をレンダリングします。これらはすべて端末上で 実行されます。当社があなたの写真、入力した文字、作成した作品をアップロード・保存・送信 することはありません。アプリにはそれを送るコード自体がなく、通信する当社のサーバーも 存在しません。

完成した作品は、再度開いて書き出せるようにアプリ専用の保存領域 (Lettrait/library)にレシピとして保管され、書き出した ファイルもアプリ専用の保存領域に書かれます。ファイルがギャラリーやクラウド、他のアプリ に渡るのは、あなたが Android の共有シートで送ったときだけです。30 日を過ぎた 書き出しファイルは自動的に整理されます。

3. 収集する情報・収集しない情報

収集しないもの:

匿名の利用統計は収集します。 アプリのどこがうまく機能し、どこで つまずくのかを把握するため、Google アナリティクス for Firebase を 使用します。あらかじめ固定された製品イベント(写真の読み込み、ウィザード各ステップの 表示・戻る、レンダリングの開始・成功・失敗、書き出しシートの表示、書き出しの完了・失敗、 ペイウォールの表示、購入の成功・キャンセルなど)と、少数の技術属性(スタイルプリセット、 キャンバスサイズ、セルサイズの区分、おおまかなセル数の区分、使用した文字パック数と フレーズ数、おおまかな所要時間の区分(1 秒未満、1〜3 秒 …)、拡大倍率の区分、書き出し 形式、失敗時のエラー分類)を記録します。

これらのイベントに、あなたの写真やその画素、ファイル名、ファイルパス、ギャラリーの 場所、EXIF メタデータ、入力したフレーズの文字が含まれることは一切ありません 。これは約束ではなくコードの性質です。統計パラメータには真偽値、数値、または 固定リストの定数しか入れられず、ファイル名やフレーズを運べる型が存在しません。複数の イベントにまたがって同じ作品を識別する必要がある場合は、作品名ではなく一方向ハッシュの 先頭 12 文字を送信します。

Firebase はインストールごとにランダム生成されたアプリインスタンス ID を割り当てます。これは Google アカウントでも広告 ID でもハードウェアのシリアル番号でも なく、アプリのデータを消去するか再インストールするとリセットされます。また Google は、 イベントの送信元 IP アドレスからおおよその位置(国・地域レベル)を推定し、 Google Play のインストールリファラー(どのストアリンクやキャンペーン経由でインストール されたか)を受け取ります。イベントと併せて、インストールを説明する粒度の粗い 3 つの属性 が記録されます:無料・One・Pro のいずれの状態か、アプリの表示言語、使用中の文字パック数 の区分(1、2、3、4+)。

Google は統計処理における当社の処理者です。取り扱いについては Google の プライバシーポリシーをご確認ください。統計イベントデータの保持期間は最長 14 か月です。 開発中に使用するデバッグビルドは Firebase へ何も送信せず、イベントはローカルのコンソール に出力されるだけです。利用統計の処理停止をご希望の場合は、第 11 項のメールアドレスまで ご連絡ください。

4. 端末に残る購入ログ

アプリは、課金に関する自身の進行(ペイウォールの表示、プランの選択、購入の成功・ キャンセル・失敗)をアプリ専用の保存領域にある小さなログファイルに記録します。課金や返金 のお問い合わせに、アプリが実際に何を認識していたかで回答するためのもので、サイズは 0.25 MB に制限され、古い記録から削除されます。このファイルが送信されることは ありません。アプリを削除するか、アプリのデータを消去すると一緒に消えます。

5. クラッシュレポート

アプリが予期せず終了した場合、Firebase Crashlytics が原因を特定して 修正できるよう技術的なレポートを送信します。レポートには、エラーの種類とメッセージ、 スタックトレース(どの関数が実行中だったか)、端末のモデル、Android のバージョン、利用 可能なメモリとストレージ、アプリのバージョン、Crashlytics のインストール識別子が含まれ ます。当社はこれらのレポートを Firebase と Google Play Console で確認します。

クラッシュレポートはあなたのコンテンツを運ぶためのものではなく、コンテンツの収集にも 使用しません。写真・作品・フレーズがレポートに添付されることはありません。さらにアプリは、 レポートを送信する前にその中のエラーメッセージを書き換えます。ファイルパス・ファイル名・ コンテンツ URI のように見える部分はすべてプレースホルダーに置き換えられ、当社に届くのは 「ファイルを開けない、該当するファイルがない」といった失敗の種類と原因であって、それが 起きた場所ではありません。上記の統計のルールと同じく、これは約束ではなくコードの性質です。 唯一およばないのは、アプリが関与する前に Android のシステム構成要素の内部で発生した終了で、 その場合はシステムが自身の言葉で報告します。当社は不具合の診断以外の目的でクラッシュ レポートを閲覧せず、広告やプロファイリングには使用しません。

クラッシュの収集は開発用のデバッグビルドでは無効になっており、開発者 自身のクラッシュが本番のレポートに混ざることはありません。Crashlytics は Google が提供し、 当社の処理者として取り扱います。

6. 購入・サブスクリプション情報

Lettrait で作品を作ること自体は無料です。印刷・編集向けの書き出しは、任意の買い切り (Lettrait One)またはサブスクリプション(Lettrait Pro) で解放されます。決済は Google Play 課金が処理し(販売者は Google)、 利用権の状態は RevenueCat が管理して購入を検証し、One / Pro の保有状況を 追跡します。このために RevenueCat は、アプリが生成した匿名識別子と購入/取引情報(購入 商品、購入・更新日、基本的な端末/プラットフォーム情報など)を受け取ります。当社がカード 番号や決済情報を受け取ることはなく、これらはすべて Google Play が処理します。購入されない 場合、本項は適用されません。

RevenueCat は購入管理のための処理者(受託者)です。取り扱いについては RevenueCat のプライバシーポリシー(revenuecat.com/privacy)および Google Play の プライバシーポリシーをご確認ください。

7. 端末の権限

8. 子どもについて

Lettrait は一般向けアプリであり、13 歳未満(またはお住まいの国の最低年齢)の子どもを 対象としておらず、子どもの個人情報を意図的に収集しません。

9. 保存と削除

作品とそのレシピ、書き出したファイルは、あなたが削除するまでアプリ専用の保存領域に 残ります。ライブラリで作品を削除するか、Android の設定でアプリのストレージを消去するか、 アプリをアンインストールすると取り除かれ、30 日を過ぎた書き出しファイルは自動的に整理 されます。すでにギャラリーや他のアプリへ送り出したファイルは、あなたが削除するまでそこに 残ります。統計イベントデータの保持期間は最長 14 か月です。RevenueCat/Google が保持する 購入記録の削除やその他のプライバシー請求は、下記メールへご連絡ください。

10. あなたの権利

お住まいの地域(例:GDPR、韓国の PIPA)に応じて、データへのアクセス・訂正・削除や同意 の撤回を請求できる場合があります。権利行使は下記までご連絡ください。本ポリシーは大韓民国 の法律に準拠しますが、居住国の強行的な消費者保護を妨げるものではありません。

11. ポリシーの変更

アプリの変更に応じて本ポリシーを更新することがあります。その際は上記「施行日」を更新し、 重要な変更についてはアプリまたはストア掲載情報で通知します。

12. お問い合わせ

ご質問・ご請求:[email protected]