Privacy Policy
Last updated: 2026-09-19
This policy explains what personal data Redesign AI handles, why, who receives it, how long it is kept and what you can do about it. It covers the Redesign AI app for iPhone and Android and this website.
The short version
- There is no signup: the app never needs your name, email address or phone number. The only place you can give an email address is the feedback form, in case you want a reply. The app creates an anonymous account tied to your device.
- To redesign a room, we send your photo, the options you picked and any short wish you typed to OpenAI. Nothing that names you goes with them.
- What we store sits on a server we rent from Hetzner in Helsinki, Finland. Your designs are deleted from it 30 days after you create them, and your photo goes with the last design made from it, or 24 hours after upload if you make none.
- The app shows no ads, and we do not sell your data.
- You can delete your account in the app: Settings → Your data → Delete my data.
1. Who is responsible
Redesign AI is published by Better Life With Apps. Better Life With Apps decides why and how your personal data is processed in the app and on this website, which makes it the controller under the EU and UK General Data Protection Regulation (GDPR) and the data controller (veri sorumlusu) under Türkiye's Personal Data Protection Law No. 6698 (KVKK). For users in Türkiye, this page is also our information notice under Article 10 of the KVKK.
For anything in this policy, write to privacy@blwapps.com.
2. Your account
There is no signup form. The first time you open the app, it creates an account without asking you for anything. To do that, the app sends our server:
- an installation identifier. On iPhone this is a random value the app creates and keeps in the device's keychain; on Android it is derived from the identifier Android assigns to this app on your device. Both normally survive uninstalling, so reinstalling the app on the same device reconnects you to the same account;
- your platform (iOS or Android), the app version, and your device's language and region setting;
- a Firebase App Check token, which shows that the request comes from a genuine copy of the app.
Against the account we store a random user ID, a keyed hash of the installation identifier (never the identifier itself), your platform, app version, language and region setting, when the app last connected, sign-in credentials in hashed form, a random billing ID used for purchases, and your credit balance.
3. Your photos and choices
To create a design you provide the photos of rooms, house fronts and gardens you take and upload. You can take the photo with the camera, or pick one from your photo library or your files. JPEG, PNG and WebP images up to 10 MB are accepted.
The photo you upload can still contain the metadata a camera writes into it, such as GPS location, date and device model. As soon as the upload finishes, our server checks the file, makes a new copy of the image without that metadata and deletes the file you sent. The copy is private: it is never listed publicly, and only your account can open it, through a link that expires after a few minutes.
With the photo we store the options you picked: the tool, the type of space, the style, the colour palette, wall and floor finishes, how much of the original room to keep, and how many images you asked for at what quality. Some tools let you add a short wish of up to 200 characters. Automatic checks reject a wish that contains instructions, links or unsafe content. Your wish is never written to our logs or sent to analytics.
If you start from one of the sample photos that come with the app, nothing is uploaded and no AI provider is involved; we only record the design in your history.
If you report a result, we store the reason you chose and the design it concerns.
People and personal items in photos
Redesign AI is made for photos of rooms, building fronts and gardens. If a person, a document or other personal items are visible, they are part of the photo we store and send to OpenAI. We do not run face recognition or any other analysis that identifies people, and we do not create biometric data. Our instructions tell the model never to change anyone visible in the photo and never to add people. The simplest protection is to take the photo when nobody is in the room and to move private papers out of the frame.
4. How the AI redesign works
Designs are generated by OpenAI's image model gpt-image-2. For each run we send OpenAI:
- a copy of your photo, at most 1536 pixels on its longest side and without metadata;
- the instructions we build from your options, with your wish in quotation marks if you wrote one;
- a pseudonymous identifier derived from your user ID by one-way hashing, which OpenAI uses to detect abuse.
We do not send your installation identifier, your device details or anything else. OpenAI sends the images back to our server. OpenAI's terms for its API state that data sent through the API is not used to train OpenAI's models unless the business sending it opts in, that it is kept for up to 30 days for abuse monitoring, and that it is processed and stored globally by default (OpenAI: data controls). We do not use your photos, wishes or designs to train AI models ourselves.
Our server then compares each image with your photo to check that walls, windows and proportions were kept. An image that fails the check is hidden and its credits are returned. This comparison runs on our own server.
Every preview in the app carries a visible AI PREVIEW badge, and so does any design you save without paying. A paid, clean download carries no label, so please say it was made with AI when you share it.
Automatic checks can reject a wish, and OpenAI can refuse to generate an image; a refused run uses no credits. None of these automated steps has legal or similarly significant effects on you.
5. Purchases
Redesign AI sells weekly and yearly subscriptions and a one-time credit top-up. The App Store or Google Play takes the payment under its own terms; we never see your card details or your store account.
RevenueCat checks purchases for us. The app identifies you to RevenueCat with the random billing ID from your account, never with your name, and RevenueCat tells our server when a purchase, renewal, cancellation or refund happens. From those messages we keep the product, the state and expiry date of your subscription, the credits granted and spent, a hash of the store transaction ID, and whether the purchase was a test purchase or was refunded. We do not keep the price you paid or your store country.
If you ask Apple for a refund, Apple can ask us how you used the purchase. When we answer, RevenueCat sends Apple, on our behalf, how long you have used the app, how much of the purchase you have used, and your purchase and refund history with us.
While analytics is switched on (see the next section), RevenueCat also reports your purchase events, including their value and currency, to Google Analytics under the app's analytics ID. When analytics is off, the app removes that link.
6. Analytics, crash reports, feedback and app integrity
Google Analytics for Firebase tells us how the app is used: which screens are opened, which steps are completed, which options are chosen and which purchases are started. Our events carry fixed labels only, never your photo, your wish or anything you type. Google Analytics identifies the installation with an app-instance ID, works out an approximate location from your connection, and reads the device's advertising ID where one is available: on Android the Google advertising ID, on iPhone only if you have allowed tracking.
- In the EEA and the UK, judged by your device's region setting, analytics stays off until you agree to it. We ask after your first design, and you can switch it off at any time under Settings → Privacy → Share optional analytics. On iPhone, agreeing is followed by iOS's own question about tracking. If you allow it, Google Analytics can also read your device's advertising identifier; if you do not, nothing else changes.
- Everywhere else, analytics is on from the first launch without a prompt, and the app does not currently offer a switch to turn it off.
Your analytics choice is stored only on your device. Analytics events go from the app straight to Google; our server does not receive them.
Firebase Crashlytics sends us a report when the app crashes or runs into an error, whatever your analytics setting: the error, where in the code it happened, your device model, operating-system version and app version, and a Crashlytics installation ID. The app strips web addresses, email addresses, tokens and file paths from error messages before they are sent.
Firebase Remote Config lets us change which version of the purchase screen you see without releasing an update. It uses a Firebase installation ID.
Firebase App Check uses Apple App Attest or DeviceCheck on iPhone and Google Play Integrity on Android to confirm that the app is genuine when it creates your account. Our server checks the token against Google's public keys and never stores or logs it.
Sentry receives error reports from our server, not from the app. Before a report leaves our server we remove user identifiers, request headers, request bodies and query strings, so a report carries the error and the address path of the request that failed.
In-app feedback (Wiredash)
The feedback form in the app is provided by Wiredash. Each time the app starts, at most once every 30 minutes, it checks in with Wiredash, whether or not you ever send feedback. The check-in carries a random identifier that Wiredash's code creates on your device, the app's version, build number and build commit, its bundle ID, whether it is a production or development build, your device's language setting, and your operating system and its version. The first time it runs, it also sends a one-off first-launch event. None of this includes your account ID, your photos or anything you have written. For this data, Wiredash's documentation says it works out your country from the connection's IP address and does not store the address (Wiredash: analytics privacy).
When you choose Send feedback in the app's settings, the app sends Wiredash your message, your email address if you enter one, and a screenshot if you add one. You can draw on the screenshot before sending it; it shows whatever is on the screen at that moment, including your own photos and designs. With your feedback go device and app details (platform, operating-system version, device model, screen size, language setting, and the app's version and build) and details we add so that we can follow up: your account's random user ID, the app's name, whether it is the production or development version, and your subscription status. We read your feedback in Wiredash to answer it and to fix the app.
7. Device permissions
- Camera: only when you choose to take a photo in the app.
- Photos: to pick a photo you want to redesign. When you save a design, you choose where it goes in your device's own save or share screen.
- Notifications: to tell you when a design is ready while the app is in the background. The app shows these notifications itself; no push service is involved.
- Tracking (iPhone): see the previous section.
The app does not ask for your location, microphone or contacts. You can withdraw a permission in your device settings at any time; the rest of the app keeps working.
8. Why we use your data, and our legal basis
| Purpose | Data | Legal basis (GDPR) | Legal basis (KVKK) |
|---|---|---|---|
| Creating your account and keeping you signed in | Installation identifier hash, user ID, platform, app version, language and region, sign-in credentials | Performing our contract with you (Art. 6(1)(b)) | Necessary to set up and perform the contract (Art. 5(2)(c)) |
| Generating, checking and storing your designs | Photo, options, wish, designs, the pseudonymous identifier sent to OpenAI | Performing our contract with you (Art. 6(1)(b)) | Necessary to set up and perform the contract (Art. 5(2)(c)) |
| Selling subscriptions and credits and honouring them | Billing ID, purchase records, credit balance and history | Performing our contract with you (Art. 6(1)(b)) | Necessary to set up and perform the contract (Art. 5(2)(c)) |
| Answering Apple's questions about a refund you requested, and keeping purchase records after an account is deleted so refunds and store disputes can be settled | Purchase and credit records, how long you have used the app | Our legitimate interest in establishing and defending claims (Art. 6(1)(f)) | Establishing, exercising or protecting a right (Art. 5(2)(e)) |
| Keeping the service secure and preventing abuse | App Check tokens, hashed IP address in rate limits, audit records, database backups, reports about results | Our legitimate interest in a secure, working service (Art. 6(1)(f)) | Our legitimate interest (Art. 5(2)(f)) |
| Finding and fixing crashes and errors | Crash and error reports | Our legitimate interest in a working app (Art. 6(1)(f)) | Our legitimate interest (Art. 5(2)(f)) |
| Choosing which version of the purchase screen you see | Firebase installation ID | Our legitimate interest in running and improving the app (Art. 6(1)(f)) | Our legitimate interest (Art. 5(2)(f)) |
| Answering feedback you send from the app and using it to fix the app | Your message, email address and screenshot if you add them, device and app details, user ID, app name, production or development version, subscription status | Your request and performing our contract with you (Art. 6(1)(b)); our legitimate interest in improving the app (Art. 6(1)(f)) | Necessary to set up and perform the contract (Art. 5(2)(c)); our legitimate interest (Art. 5(2)(f)) |
| Keeping the in-app feedback form working | Wiredash's random identifier, app version and build, bundle ID, build type, language setting, operating system and version, the first-launch event | Our legitimate interest in operating the feedback form (Art. 6(1)(f)) | Our legitimate interest (Art. 5(2)(f)) |
| Understanding how the app is used | Analytics events, app-instance ID, advertising ID where available, approximate location, purchase events from RevenueCat | In the EEA and the UK: your consent (Art. 6(1)(a)). Elsewhere: our legitimate interest in improving the app (Art. 6(1)(f)) | Our legitimate interest (Art. 5(2)(f)) |
| Answering privacy requests and support emails | Your email address and what you write | Legal obligation for privacy requests (Art. 6(1)(c)); our legitimate interest for other emails (Art. 6(1)(f)) | Legal obligation (Art. 5(2)(ç)); our legitimate interest (Art. 5(2)(f)) |
We collect this data automatically through the app and our server, and from you when you upload a photo, write a wish, report a result, send feedback or email us. You need to provide a photo, or use a sample, to create a design, and the account data is needed for the app to work at all. Analytics is optional where we ask for it. Where we rely on legitimate interest, you can object (see Your rights).
9. Where your data is stored
Our backend runs on a cloud server we rent from Hetzner Online GmbH in its Helsinki, Finland data centre, inside the EU. The database, the job queue and the private file storage that holds photos and designs all run on that one server. A copy of the database is made every day, and the 14 most recent copies are kept on the same server; photos and designs are not in these copies. The app and this website reach the server only over encrypted HTTPS connections, and sign-in credentials and installation identifiers are stored only as hashes.
10. Who receives your data
Besides Hetzner, your data reaches only the companies below. Each processes it on our behalf, except Apple and Google's app stores, which act under their own privacy policies.
| Company | What for | What it receives | Based in |
|---|---|---|---|
| Hetzner Online GmbH | Hosting our server | Everything we store (section 9) | Germany; our server is in Finland |
| OpenAI | Generating your designs | Your photo without metadata, the instructions including your wish, a pseudonymous identifier | United States |
| RevenueCat, Inc. | Checking purchases and subscription status; answering Apple's refund questions | Your billing ID, store purchase receipts, app and device details its SDK sends | United States |
| Google LLC (Firebase) | Analytics, crash reports, remote settings, App Check | The data described in section 6, and purchase events from RevenueCat while analytics is on | United States |
| Wiredash GmbH | The in-app feedback form | The check-ins and the feedback you send, described in section 6 | Germany; according to its privacy policy, data is stored on Google Cloud and may be transferred to the United States |
| Functional Software, Inc. (Sentry) | Error reports from our server | Error details and request paths, without user identifiers | United States |
| Cloudflare, Inc. | Delivering email sent to our blwapps.com addresses | Your email address and your message | United States |
| Apple (App Store), Google (Google Play) | Taking payment and handling refunds | Your purchase, under their own privacy policies | See their privacy policies |
We do not sell personal information, and we do not share it for cross-context behavioural advertising. We disclose data to authorities only where the law requires it.
11. Transfers outside the EEA and Türkiye
Our server is in Finland, inside the EU; for users in Türkiye, storing data there is itself a transfer abroad. The companies based in the United States in the table above can receive and process data outside the European Economic Area and Türkiye. OpenAI and Google state that they process data in locations around the world. Wiredash is based in Germany, but its privacy policy says that data may be transferred to the United States, processed there and stored on Google Cloud servers (Wiredash: privacy policy).
- Google LLC is certified under the EU–US Data Privacy Framework, which the European Commission has found to give adequate protection (Firebase: privacy and security).
- RevenueCat's data processing addendum, which forms part of its terms, includes the European Commission's standard contractual clauses (RevenueCat DPA).
To find out which safeguard covers a particular transfer, or to get a copy of it, write to privacy@blwapps.com.
12. How long we keep things
| Data | How long |
|---|---|
| The file you upload | Deleted as soon as our server has made its clean copy |
| The clean copy of your photo and its thumbnail | As long as the designs made from it: 30 days after the newest of them, or sooner once you delete the last one. A photo you make no design from: 24 hours after upload |
| An upload that never finishes | Deleted about an hour after its upload link expires |
| Your designs: previews, downloads and thumbnails | 30 days after you create the design, or sooner if you delete it |
| Design records: options, wish, the exact instructions sent to OpenAI, status and cost | Until you delete your account; deletion erases the options, the wish and the instructions |
| Designs made from sample photos | An entry in your history until you delete your account; the images themselves ship with the app |
| Account, device and sign-in records | Until you delete your account (section 13 says what remains) |
| Purchase and credit records | Kept after account deletion so refunds and store disputes can still be matched to a purchase; there is currently no automatic deletion |
| Reports you send about a result | Kept after account deletion; there is currently no automatic deletion |
| Audit records of account events | 365 days |
| Hashed IP address used to limit request rates | At most one hour |
| Server logs | They contain no IP address and refer to an account only by a shortened hash; overwritten as they grow |
| Database backups | The 14 most recent daily copies, so a deleted record can remain in a backup for about two weeks |
| Data held by OpenAI | Up to 30 days, for abuse monitoring |
| Crashlytics reports | 90 days |
| Google Analytics event data | Up to 14 months |
| Your customer record at RevenueCat | Until it is deleted at RevenueCat. Deleting your account in the app does not do this; write to us if you want it removed |
| Feedback you send through Wiredash | Until it is deleted at Wiredash. Deleting your account in the app does not do this; write to us if you want it removed |
| Wiredash check-ins and the first-launch event | As long as Wiredash keeps them; its privacy policy sets no fixed period |
Records of visits to this website's /get page | They contain no IP address or identifier; the oldest file is deleted as the record grows |
13. Deleting your account
In the app, go to Settings → Your data → Delete my data and confirm. The app signs you out on that device and clears its local data, and your account stops working immediately. 24 hours later our server:
- deletes your photos and designs from our file storage;
- erases the options, wishes and exact instructions stored with your designs;
- cuts the link between your device and the account and ends every sign-in;
- replaces the billing ID on the account.
What remains is a closed account under its random ID; device records without the installation link (platform, app version, language and region, last connection); records of past designs without their options, wishes or images; purchase and credit records; any reports you sent; audit records for up to 365 days; and database backups for about two weeks. Once the deletion has run it cannot be undone. If a specific legal obligation requires us to keep a particular file, we can hold that file back from deletion until the obligation ends.
Deleting your account does not delete your data at RevenueCat, Google or Wiredash (see the table above), and it does not cancel a subscription: cancel it in your App Store or Google Play subscription settings. Opening the app again after a deletion creates a new, empty account.
If you have removed the app, reinstalling it on the same device normally reconnects you to your account, and you can then delete it in the app. If that is not possible, write to privacy@blwapps.com; the deletion page explains what we need to find your account.
14. Your rights
Under the GDPR (EEA and UK), you can ask for access to your personal data and a copy of it, for correction, for erasure, for restriction of processing, and for your data in a portable format. You can object to processing based on our legitimate interest, and you can withdraw consent at any time without affecting processing that happened before. You can also complain to the data protection authority in the country where you live or work, or where you believe your rights were infringed.
Under Article 11 of the KVKK (Türkiye), you have the right to:
- learn whether your personal data is processed and, if it is, request information about it;
- learn the purpose of the processing and whether the data is used for that purpose;
- know the third parties in Türkiye or abroad to whom it is transferred;
- ask for incomplete or inaccurate data to be corrected;
- ask for it to be deleted or destroyed under the conditions of Article 7;
- ask for a correction, deletion or destruction to be passed on to the third parties who received the data;
- object to a result against you that arises solely from automated analysis of your data;
- claim compensation for damage caused by unlawful processing.
We answer free of charge within 30 days at the latest; if answering has a real cost, we may charge the fee set by the Personal Data Protection Board. If we reject your request, do not answer in time, or you find the answer insufficient, you can complain to the Personal Data Protection Board within 30 days of learning our answer, and in any case within 60 days of your request.
Under US state privacy laws, including California's, you can ask to know what personal information we have collected about you, and ask us to delete or correct it. We collect identifiers (random IDs, a hashed installation identifier, an advertising ID through Google Analytics where available, and your email address if you add it to feedback), commercial information (purchase records), internet or other electronic network activity (app usage events), approximate location, and visual information (the photos you upload and any screenshot you add to feedback), for the purposes in section 8 and for the periods in section 12. We do not sell personal information or share it for cross-context behavioural advertising, and we will not treat you differently for using your rights.
To use any of these rights, write to privacy@blwapps.com. We do not know your name, and we know your email address only if you have given it to us, so we can only act on a request we can link to an account; if you made a purchase, the App Store or Google Play order number is the most reliable link. You can also delete your data yourself in the app and, in the EEA and the UK, switch analytics off there.
15. Children
Redesign AI is not directed at children under 13, and it does not ask your age. If you are under 16 and live in the EEA, ask a parent before you agree to analytics. If you believe a child has used the app, write to us and we will delete the account.
16. This website
This website is a set of static pages. It sets no cookies, runs no analytics or tracking scripts, and loads nothing from other websites. It is served from the same Hetzner server in Helsinki.
When someone shares the app from its settings, the link they send opens this website's /get page and carries a ref tag naming where the link came from, such as app_share. The page sends you on to the App Store, Google Play or this website's home page and passes the tag along. When /get is opened, our server records only the time, the website, the page address with its tag, and whether the page loaded: no IP address, no cookies, no device identifiers. We use these records to count how many visits share links bring. The App Store and Google Play may count installs that came through the tag in the statistics they give us.
17. Changes to this policy
When what the app does with your data changes, we update this page and the date at the top. Before your photos are sent to a different AI provider, this page will name that provider.
18. Contact
Privacy questions and requests: privacy@blwapps.com
Everything else: support@blwapps.com