Curb Appeal AI privacy policy

Curb Appeal AI: Home Exterior · Effective date: September 29, 2026 · Last updated: September 2026

The short version

  • Your projects, photos and designs are saved on your iPhone.
  • Only if you allow AI designs, the photo of your house or yard and your design choices go through our server to OpenAI, with an anonymous ID (not your name or account) so OpenAI can spot misuse. Our server does not keep your photo. It keeps each finished design for about 2 days so your iPhone can download it.
  • Your ZIP code stays on your iPhone. Only the growing zone worked out from it is sent, with planning lists.
  • No account, no ads, no tracking, and we never sell your data.

Who we are

Curb Appeal AI is made by Wavista Apps, operated by William Tsao, an individual based in California, USA. Contact: [email protected].

What stays on your iPhone

Curb Appeal AI has no account. It saves these only in the app's storage on your iPhone:

  • your projects: name, photo, project type, style and setup;
  • your designs: the choices you made, the design images, favorites, planning lists and the items you checked off;
  • your setup answers, your ZIP code, your AI choice and your settings.

The quick photo check (too dark or too blurry) runs on your iPhone and sends nothing. The growing zone is looked up from your ZIP code on your iPhone.

If you back up your iPhone to iCloud or a computer, the backup includes this data, as it does for any app.

What leaves your iPhone, and who receives it

Our server and OpenAI (designs and planning lists)

AI designs need your permission. The app asks on a consent screen first, and nothing is sent if you choose Not now. Before a photo leaves your iPhone, the app shrinks it and removes its metadata, including any location.

  • Designs: the app sends our server the photo and your design choices (project type, style, colors, intensity, time of day and which variation). Our server sends them to OpenAI's image editing service, along with a scrambled form of the app's anonymous ID (a salted hash) so OpenAI can act on misuse from one user. It never sends your name or the ID itself.
  • Planning lists: the app sends our server the original photo, the design you chose, its design choices, your growing zone (for example "7a", never your ZIP code) and the home style you picked during setup. Our server sends them to OpenAI with OpenAI's storage option turned off (store=false) and with no ID. Our server does not save your zone.

Our server keeps your photo in memory only while it works, and does not save it or write it to its logs. OpenAI does not use API data to train its models. It may keep API data for up to 30 days only to check for misuse, and then deletes it.

Finished designs. Our server saves each finished design image in private storage (Cloudflare R2), filed under the scrambled ID. Your iPhone downloads it through a private link that works for 24 hours. The image is then deleted after about 2 days. Our server's record of each design (its status and where it was stored) is deleted a few days after the design is made, or after 90 days if the design failed.

Withdraw your permission at any time: Settings, Use AI designs.

What our server keeps

Every request to our server carries the app's anonymous ID (a random ID created by RevenueCat, see below), so the server can check your subscription, design packs and design limits. Our server keeps:

  • A record of each design and planning list: the time, the feature, which kind of AI answered, whether it worked, how long it took, its cost, and your thumbs answer if you give one. It is tied to the scrambled ID, not the ID itself, and never includes your photo. Records are deleted after 90 days.
  • Usage counts for your daily, weekly or monthly design limits, tied to the scrambled ID, deleted after 90 days once they stop applying. The count of designs made during a free trial is kept so the trial limit keeps working.
  • How many pack designs you have used, tied to the scrambled ID. This is a purchase record, so it is kept, even after Delete my data, so that designs you already used are not given back.
  • Your subscription and pack status: the anonymous ID with the product, the expiry date, whether it is a trial, whether it was a test purchase and how many pack designs you bought. RevenueCat sends this to our server when your purchases change. We keep it until you use Delete my data.

Our server uses your IP address for a moment, in memory, to limit how many requests one connection can make. It does not save it in its database or its logs. When your iPhone downloads a design, Cloudflare sees your IP address as part of that connection. Our server runs on Fly.io, and its database is hosted by Supabase, both in the United States. Every hour we save a backup copy of that database in a separate private storage bucket at Cloudflare R2. Each copy is encrypted before it is uploaded, with a key that only we hold, so Cloudflare cannot read it. We use backups only to recover the database if something goes wrong.

RevenueCat (subscriptions and design packs)

RevenueCat runs the subscription and design packs for us. A design pack is an optional one-time purchase of 20 more designs, offered only when a subscriber reaches the plan's design limit. You buy it through Apple, and nothing renews. It receives the app's random anonymous ID, your App Store purchase records (what you bought, when, its price, and trial and renewal status) and technical details such as the iOS and app version. Its software also sends the identifier for vendor, an ID that Apple gives our apps on your iPhone. RevenueCat never gets your name, email or payment card. If you installed the app from an ad on the App Store (Apple Ads), Apple tells RevenueCat which ad campaign, ad group and search keyword led to the install, so we can see whether our ads pay for themselves. This is Apple's own ad attribution: it does not use the advertising identifier and needs no tracking permission. Apple handles payment.

PostHog (usage analytics, which you can turn off)

We use PostHog to see how the app is used, so we can find problems and improve it. Analytics are on when you install the app, and you can turn them off at any time in Settings, Share usage analytics. When they are off, the app sends nothing to PostHog. When they are on, PostHog receives, tied to the anonymous ID:

  • your two setup answers picked from a list: what you are planning and your home style. Your ZIP code and growing zone are never sent;
  • events such as opening the app, setup steps viewed, permission answers, your AI choice, when the subscription screen was shown, trials, purchases (including design packs) and restores, when a design was requested (project type and style) or finished (how long it took), thumbs answers, when you viewed a planning list, shared or exported an image, or reached a limit, and review prompts;
  • details the PostHog software adds, such as the app version, iOS version, device model, language, time zone and screen size.

PostHog never receives your photos, designs, ZIP code or growing zone. Session recording, touch tracking and location lookup from your IP address are turned off. PostHog does not store your IP address.

Sentry (crash reports)

If the app crashes or hits an error, it sends a report to Sentry so we can fix it: what went wrong and where in the app, the device model, iOS and app version, a random ID Sentry makes for the install, and a short trail of what the app did just before. For about 1 in 10 sessions it also sends performance timings. Reports do not include the anonymous ID. Before a report is sent, the app cuts a failed database save down to the kind of action and the table name, so a report never includes what you were saving (such as a project name). It also leaves out request details and console logs. Sentry does not store your IP address.

Apple

Apple handles the App Store, payments and iPhone backups under Apple's own privacy policy.

Email to support

If you email us, we receive your email address, your message and the details that Contact support adds (app version, iOS version and the anonymous ID). We use them only to help you. We keep support emails for 2 years after your last message, then delete them. Cloudflare forwards them to our Gmail (Google) inbox.

Permissions

  • Camera and photos: only to take or choose a photo of your house or yard.
  • Add to Photos: only when you choose to save a before and after picture from the share sheet.

Curb Appeal AI does not use your location, contacts, microphone or Apple Health. You type your ZIP code yourself.

How long data is kept

  • On your iPhone: until you delete it, use Delete my data or delete the app.
  • Your photo on our server: not stored, only held in memory while it works.
  • Finished designs on our server: about 2 days.
  • At OpenAI: up to 30 days, only for misuse checks.
  • Request records and usage counts on our server: 90 days (free-trial design counts are kept longer, so the trial limit works).
  • Encrypted backups of our server's database: hourly copies for 3 days and daily copies for 35 days, then deleted automatically. Anything removed from the database, including by Delete my data, is gone from every backup within 35 days.
  • Pack designs used: kept as a purchase record.
  • Subscription and pack status on our server: until you use Delete my data.
  • RevenueCat: for as long as we offer the app, so your purchases can be restored.
  • PostHog: up to 1 year, or until you use Delete my data.
  • Sentry: 30 days.

Delete my data

Open Settings and tap Delete my data. The app deletes everything it saved on your iPhone right away (your projects, photos, designs, planning lists, answers, ZIP code and settings) and starts again from the beginning. Analytics are turned off on that iPhone until you turn them on again in Settings. Pictures you already shared or saved to Photos are not affected. A before and after picture the app made for sharing may stay in the app's temporary files until iOS clears them. Then it asks our server to:

  • ask PostHog to delete your analytics profile and its events;
  • delete your stored designs and their records, and your subscription and pack status record;
  • remove the scrambled ID from your request records, so they can no longer be tied to you (they are still deleted at 90 days);
  • delete your usage counts that no longer apply. Counts for limits still running (today, this week or month, and a free trial) stay so the limits keep working, and so does the count of pack designs you used.

Backups made before the deletion still hold the old records until those copies are deleted, at most 35 days later. Nobody can read a backup without our encryption key, and we use backups only to recover the database after a failure.

If your iPhone is offline or our server cannot be reached, the app tries again by itself. While the deletion is waiting for our server, Settings shows it and offers Email support. If you delete the app before then, it can no longer finish this step, so first email us from Contact support (it adds the anonymous ID we need) and we will delete the server copy.

Delete my data does not cancel your subscription or take away designs you bought, and it does not delete RevenueCat's purchase record, so you can still restore your purchases. To ask for your RevenueCat record to be deleted too, email us.

Your requests

You can email [email protected] to ask what we hold about you, or to delete it. Send the email from Contact support in the app so it includes the anonymous ID; we cannot find your data without it, because we do not know your name. We reply within 30 days.

What we do not do

We do not sell your personal information or share it for advertising. The app has no ads and does not track you across other companies' apps or websites.

The app does not track you across other companies' apps or websites, so there is nothing for a Do Not Track signal to turn off, and the app does not respond to one.

Children

Curb Appeal AI is not directed to children under 13, and we do not knowingly collect data from them. If you think a child has used the app, email us and we will help delete the data.

Where the law requires it, the app asks Apple for your age range. The answer stays on your iPhone, is used only to apply age protections, and is never sent to us or anyone else. If Apple says you are under 13, or you choose not to share your age range where it is required, the app turns off usage analytics, Apple Ads attribution (see RevenueCat above), the AI designs and planning lists that go through our server to OpenAI, and your answers about AI results.

Security and where data is processed

The app talks to our server and service providers over encrypted connections (HTTPS). Finished designs are stored privately and can be opened only through a private link that expires after 24 hours. Our server stores the anonymous ID only in scrambled form, except in the subscription record. Our server, its database and our service providers process data in the United States. Finished designs are kept in Cloudflare R2's Eastern North America region. Database backups are encrypted before upload and kept in Cloudflare R2's Eastern North America region.

Changes to this policy

If we change this policy, we will post the new version here with a new effective date. If a change affects how we use data you already gave us, we will tell you in the app first.

Contact

[email protected]

Back to top