← back to Homesonspec
mobile: paste-ready ASC metadata (categories/keywords/URLs/review-info/privacy) — resolved App Privacy=Data-Not-Collected + age-rating finding from code
9857d3dbed4a37893e06b0a4e9e49a3b6af5d572 · 2026-08-07 10:03:09 -0700 · Steve
Files touched
A apps/mobile/ASC-METADATA.md
Diff
commit 9857d3dbed4a37893e06b0a4e9e49a3b6af5d572
Author: Steve <steve@designerwallcoverings.com>
Date: Fri Aug 7 10:03:09 2026 -0700
mobile: paste-ready ASC metadata (categories/keywords/URLs/review-info/privacy) — resolved App Privacy=Data-Not-Collected + age-rating finding from code
---
apps/mobile/ASC-METADATA.md | 78 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 78 insertions(+)
diff --git a/apps/mobile/ASC-METADATA.md b/apps/mobile/ASC-METADATA.md
new file mode 100644
index 00000000..bc6bf254
--- /dev/null
+++ b/apps/mobile/ASC-METADATA.md
@@ -0,0 +1,78 @@
+# Homes on Spec — App Store Connect metadata (paste-ready)
+
+ASC app **6798873898** · bundle `com.abrams.homesonspec` · v1.0.0 (build #2)
+Name / Subtitle / Promo / Description live in **APP-STORE-LISTING.md** — this file is every *other* field.
+
+---
+
+## App Information
+
+| Field | Value | Notes |
+|---|---|---|
+| **Primary Category** | **Lifestyle** | The App Store has no "Real Estate" category — Zillow/Redfin/Realtor all list under Lifestyle. |
+| **Secondary Category** | Utilities *(optional)* | Or leave blank. |
+| **Content Rights** | "Does not contain, show, or access third-party content" → **Yes** (your own catalog) | If the Browse webview surfaces external listing sites, revisit. |
+| **Age Rating** | **As-is (build #2): 17+** — content descriptors all None, but answer **"Unrestricted Web Access = YES"** | ⚠️ RESOLVED by code read: `browse.tsx` has NO `onShouldStartLoadWithRequest`, so the webview can navigate off-domain → Apple treats that as unrestricted web = 17+. **To get 4+:** add a ~10-line domain-lock (keep homesonspec.com in-app, open external links in Safari) → needs a new build #3. See "Optional 4+ fix" below. |
+
+## URLs
+
+| Field | Value |
+|---|---|
+| **Privacy Policy URL** *(required)* | `https://homesonspec.com/privacy` ✅ verified 200 |
+| **Support URL** *(required)* | `https://homesonspec.com` *(200; a real /support page would be nicer but the homepage is accepted)* |
+| **Marketing URL** *(optional)* | `https://homesonspec.com` |
+
+## Keywords (100-char field, comma-separated — paste exactly, no spaces after commas)
+
+```
+new construction,spec homes,new homes,homebuilder,move-in ready,quick move in,home search,new build
+```
+
+(96 chars. Don't repeat "Homes on Spec" — Apple already indexes the app name + subtitle separately, so these add *new* terms.)
+
+## Copyright
+`© 2026 <your entity — Steve Abrams / the LLC>` ⚠️ CONFIRM the legal name.
+
+---
+
+## App Review Information
+
+| Field | Value |
+|---|---|
+| Sign-in required | **No** |
+| Demo account | N/A — no login |
+| Contact | First/Last · phone · `steveabramsdesigns@gmail.com` |
+| **Notes to reviewer** | "No account or login — every feature works immediately on launch. Location permission is used only to center the map on nearby new-construction homes; if denied, the full national map still loads. Push notifications are opt-in for new-listing alerts." |
+
+## Version 1.0.0 — "What's New / Promotional Text for this version"
+```
+Initial release of Homes on Spec — the only app that maps every new-construction home from every major builder in one place. Native map of 70,000+ homes, save homes with no account, and opt-in alerts when a new home lists in your market.
+```
+
+## Export Compliance
+Already handled — `Info.plist` sets `ITSAppUsesNonExemptEncryption = false`, so ASC will **not** ask for encryption docs. If it prompts anyway → **"Uses no encryption / only exempt encryption" → No**, no CCATS needed.
+
+---
+
+## App Privacy (Data Collection questionnaire) — DRAFT, verify one thing
+
+Based on the API client (`lib/api.ts`): the app sends **no account data**, saves homes **on-device only**, and `/api/map` is **not** passed the user's location — the map centers locally. So on its face:
+
+- **Location** → used on-device to center the map, **not transmitted** → **not "collected"** in Apple's sense (App Privacy is about data that *leaves the device*).
+- **No account, no analytics SDK, no ads** → nothing else collected.
+- **Likely answer: "Data Not Collected."** ✅ cleanest.
+
+✅ **RESOLVED by code read:** in `lib/notifications.ts`, the push-token POST to a backend is **commented out (`// TODO: POST token…`)** — the token is generated and stored **only in AsyncStorage on-device**, never sent to a server. Location isn't transmitted either, and there's no analytics/ads SDK. → **Answer "Data Not Collected."** ✅ final.
+
+---
+
+## Optional 4+ fix (recommended — small, improves UX too)
+The only thing keeping this at 17+ is the un-scoped webview. Adding an `onShouldStartLoadWithRequest` to `browse.tsx` that keeps `homesonspec.com` URLs in-app and opens everything else in Safari (a) makes the age rating a legit **4+** and (b) stops external links from hijacking the app shell. It's ~10 lines, but it means a **new build #3 + resubmit** (both now fully non-interactive since `ascAppId` is wired). Ask me to do it if you want 4+.
+
+---
+
+## The ONE thing left to confirm before Submit-for-Review
+- **Copyright** — the exact legal entity name for `© 2026 <name>`.
+(Age rating + App Privacy are now resolved above. Everything else is final.)
+
+Everything else above is final. Screenshots per `SCREENSHOT-SHOTLIST.md`; name/subtitle/description in `APP-STORE-LISTING.md`.
← f9131bf9 auto-data-snapshot: 2026-08-07T09:37:33 (3 data files) — app
·
back to Homesonspec
·
auto-data-snapshot: 2026-08-07T10:41:58 (1 data files) — app 3a8b1ce1 →