Skip to main content

No placeholder text or lorem ipsum in UI

ab-000490 · app-store-review-blockers.completeness-stability.no-placeholder-content
Severity: highactive

Why it matters

Apple App Review Guideline 2.1 (App Completeness) and Google Play's Minimum Viable Product policy both reject submissions containing lorem ipsum, TODO markers, or Coming soon placeholders on sight. Reviewers open the app as a real user, navigate to every tab, and flag unfinished copy within minutes. A single rejection costs 1–3 days per review cycle, burns reviewer goodwill on future submissions, and blocks marketing launches already committed to press, paid acquisition, or investor demos.

Severity rationale

High because a single placeholder string triggers automatic rejection and delays launch by multiple review cycles.

Remediation

Run a repo-wide search for lorem ipsum, TODO:, FIXME:, coming soon, placeholder, and under construction across src/, screens/, components/, pages/, and app/. Replace each hit with shipped copy, or remove the unfinished route from the navigator entirely. For features genuinely not ready, feature-flag them off for production builds:

if (Config.FEATURE_PROFILE_V2) {
  return <ProfileScreen />;
}
return null;

Detection

  • ID: app-store-review-blockers.completeness-stability.no-placeholder-content

  • Severity: high

  • What to look for: Count all relevant instances and enumerate each. Search all source files under src/, screens/, components/, pages/, app/ (Expo Router) and template/view files for these patterns (case-insensitive): lorem ipsum, coming soon, under construction, placeholder, TODO:, FIXME:, [Coming Soon], Test Screen, Sample Data, dummy content, fill in later, replace this, not implemented yet. Also check hardcoded string literals in JSX/TSX, Flutter widgets, Swift views, and Kotlin composables. In React Native, look for <Text>TODO</Text>, <Text>Coming soon</Text>, or similar patterns in .tsx, .jsx, .dart, .swift, .kt files.

  • Pass criteria: No placeholder text, lorem ipsum, "coming soon" copy, or obviously unfinished UI copy is visible in source files that would be rendered to the user. At least 1 implementation must be verified. A partial or placeholder implementation does not count as pass. Report the count even on pass.

  • Fail criteria: Any instance of lorem ipsum, TODO labels, "Coming soon" banners, placeholder copy, or stub screens that render readable incomplete text.

  • Skip (N/A) when: Never — placeholder content always needs to be evaluated.

  • Detail on fail: Cite the specific file and string. Example: "Placeholder text found in src/screens/ProfileScreen.tsx: 'Coming soon — this feature is under construction'" or "Lorem ipsum in src/components/OnboardingCard.tsx at render output"

  • Remediation: Apple and Google reviewers use the app as a real user and will reject immediately upon finding placeholder content. Before submitting:

    1. Search all source files for the patterns above using your editor's global search
    2. Replace every instance with real, final copy — even a short description is better than a placeholder
    3. Remove or hide any feature screens that are not production-ready using feature flags or by removing the route entirely from the navigator
    4. If a feature is genuinely "coming soon", remove its entry from the app's navigation entirely rather than showing an empty screen

    Review the configuration in src/ or app/ directory for implementation patterns.

Taxons

History