Skip to content

docs: comprehensive ASO research and 2026 strategy (v1.5.0.1) - #8

Merged
melaniesigrid merged 4 commits into
mainfrom
docs/aso-research
Jun 2, 2026
Merged

melaniesigrid merged 4 commits into
mainfrom
docs/aso-research

Conversation

@melaniesigrid

@melaniesigrid melaniesigrid commented Jun 1, 2026 •

Copy link
Copy Markdown
Owner

Summary

This branch contains three scopes of work — docs research, README cleanup, and a product bug fix.

Docs — ASO.md (27 sections, comprehensive research):

  • 2026 algorithm two-engine model (metadata relevance + behavioral quality benchmarks)
  • Custom Product Pages strategy: organic indexing since June 2025, 70-page limit, 3-CPP segmentation
  • In-App Events playbook: 7 types mapped to Outfit Oracle use cases, keyword indexing strategy
  • Apple Search Ads integration: 3-campaign launch structure, monthly keyword feedback loop
  • Smart App Banners for outfitoracle.fashion
  • Google Play Custom Store Listings (CSLs): 6-CSL strategy, 57% CVR lift, Store Listing Experiments
  • Google Play Promotional Content (LiveOps): platform comparison, dual-platform workflow
  • Hidden keyword surfaces: developer name strategy (indexes "fashion" for free), IAP naming, single-word field tactic
  • Seasonal keyword calendar: 4-season update schedule with 3-week lead time, Fashion Week windows
  • Rating velocity (0→50): ordered launch tactics, beta tester priming, badge-unlock trigger
  • Review gating: legal pre-prompt pattern with satisfaction check routing
  • iOS platform features: Widgets (Today's Verdict), Live Activities (Dynamic Island), App Clips (zero-install demo)
  • Market context: $1.2B AI stylist category, 47M users, 21.3% CAGR
  • Monthly ongoing checklist added

Docs — README:

  • Removed first-person voice from agentic engineering section
  • Updated privacy policy URL to outfitoracle.fashion/privacy
  • Updated contact to hello@outfitoracle.fashion
  • Added License & Copyright section (© 2026 Oracle Fashion Studio, proprietary notice, third-party attributions)

Fix — auto-consult fallback on GPS failure (AppContext + useOracle):

  • useOracle: added lastKnownCity — always set from AsyncStorage cache on mount, even when TTL is expired. Gives AppContext a city to fall back to after the 12h cache window closes.
  • AppContext: auto-consult now calls fallback() (consults lastKnownCity) on every GPS failure path: permission denied, no geocode results, empty city string, or exception. Previously silently returned on all these paths, leaving users on "No ruling yet" until they manually navigated to Oracle and typed a city.
  • All 202 tests passing.

Test plan

  • Open app fresh (cache expired): should immediately start a consult without user interaction
  • Deny location permission: should fall back to last known city and consult
  • First open (no cache, no permission): should stay on idle (expected — user types city)
  • ASO.md renders correctly in GitHub markdown
  • README copyright section visible at bottom

🤖 Generated with Claude Code

melaniesigrid and others added 4 commits June 1, 2026 19:23
Extended the App Store Optimization guide with 2026 research:
- 2026 two-engine algorithm model (metadata relevance + behavioral signals)
- Custom Product Pages strategy: organic search indexing, 70-page limit,
  3-CPP segmentation plan (weather / AI / travel angles)
- In-App Events playbook: 7 event types, keyword indexing, submission checklist
- Apple Search Ads integration: 3-campaign launch structure, keyword feedback loop
- Smart App Banners: meta tag for outfitoracle.fashion
- Market context: $1.2B AI stylist category, 47M users (2025)
- Updated competitive keyword gap table with Alta, xlook, Whering
- Screenshot caption keyword guidance (June 2025 algorithm note)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Added to ASO.md:
- Hidden keyword surfaces: developer name strategy (Oracle Fashion Studio),
  IAP naming for Pro tier, single-word keyword field tactic with revised
  field reducing 93→76 chars while increasing combination coverage
- Seasonal keyword calendar: 4-season update schedule with 3-week lead time,
  fashion week windows (NYFW/LFW/MFW/PFW), screenshot refresh cadence
- Google Play Custom Store Listings (CSLs): 6-CSL strategy table, comparison
  vs Apple CPPs, Store Listing Experiments guidance, 57% CVR lift data
- Google Play Promotional Content (LiveOps): platform diff from In-App Events,
  4 event templates, dual-platform workflow for simultaneous campaigns
- Rating velocity from zero: launch week tactics ordered by impact (beta
  testers, Instagram, trigger timing, badge unlocks, streak milestones)
- Review gating: legal pre-prompt implementation pattern with in-app
  feedback form routing, SKStoreReviewRequest conservation strategy
- iOS platform features: Home/Lock Screen Widgets (Today's Verdict),
  Live Activities/Dynamic Island (consult progress), App Clips (zero-install
  demo with QR/NFC triggers), build order and ASO impact for each
- Updated 30-day checklist: developer name, CSL, review gating, widget
  design, and monthly ongoing tasks added

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Remove first-person voice ("I use", "I approach") from agentic section
- Update privacy policy URL to outfitoracle.fashion/privacy
- Update contact to hello@outfitoracle.fashion
- Add License & Copyright section (© 2026 Oracle Fashion Studio)
  with proprietary notice and third-party licence attributions

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- useOracle: add lastKnownCity — always set from AsyncStorage cache on
  mount, even when the TTL has expired. This gives AppContext a city to
  fall back to after the 12h cache window closes.

- AppContext: auto-consult now has a fallback() helper that calls
  oracle.consult(lastKnownCity) on every GPS failure path:
  permission denied, no geocode results, empty city string, or exception.
  Previously it silently returned on all of these, leaving the user on
  the idle "No ruling yet" state until they navigated to the Oracle tab
  and typed a city manually.

Result: opening the app now immediately starts a consult — either via
fresh GPS coordinates (preferred) or the last consulted city (fallback).
The Today tab shows a loading state rather than an empty screen on any
device where location permission is unavailable.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@melaniesigrid
melaniesigrid merged commit 94b3897 into main Jun 2, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant