Works with the AI tools you already use

    Claude CodeClaude CodeCursorCursorCodex CLICodex CLIMuseMuseDotsDots+22 more

    App Store 4.3 Similarity Check (Flutter & React Native)

    1

    Measure how much a Flutter, React Native or Expo app shares with your other apps — code, store text, screenshots and assets — before Apple calls it spam.

    Free

    Security scanned
    App Store 4.3 Similarity Check (Flutter & React Native)

    App Store 4.3 Similarity Check (Flutter & React Native)

    Example session with this skill installed

    I'm about to submit chore-jar. How close is it to my other apps?

    • Read your context and instructions
    • Compiled the app store 4

    What I ran

    test-fork is a fresh copy of my-app-template. I checked it against every other app in the folder before giving it a store record:

    test-fork vs 3 sibling(s) under ~/apps
    threshold 30%, surfaces: source, metadata, screenshots, assets
      note: no --alias given. Domain nouns that differ between the apps (a fruit vs a taco) will read as
            differences, which UNDERSTATES sharing. Pass them.
    
    === SOURCE — 84 files ===
       99%   83/84  files   chore-jar  <-- OVER
       99%   83/84  files   my-app-template  <-- OVER
       64%   54/84  files   row-counter  <-- OVER
    
      what is shared with chore-jar:
        infrastructure      40 files  2031 lines
        app scaffolding     29 files  1225 lines
        other               14 files   345 lines
    
      largest shared with chore-jar:
          142  packages/ui/lib/widgets/google_banner_ad.dart              identical
          128  packages/ui/lib/screens/home/home_view.dart                identical
          126  lib/bootstrap.dart                                         identical
          124  lib/logging/crash_reporter.dart                            identical
          124  packages/i18n/lib/strings.dart                             identical
    
    === METADATA — 0 files ===
      NOTHING TO COMPARE — this app has no files on this surface, so it is
      unmeasured, not clean.
    
    === SCREENSHOTS — 0 files ===
      NOTHING TO COMPARE — this app has no files on this surface, so it is
      unmeasured, not clean.
    
    === ASSETS — 37 files ===
      100%   37/37  files   chore-jar  <-- OVER
      100%   37/37  files   my-app-template  <-- OVER
    
      largest shared with chore-jar:
            -  android/app/src/main/res/drawable-hdpi/android12splash.png  ==  android/app/src/main/res/drawable-hdpi/android12splash.png
            -  android/app/src/main/res/drawable-mdpi/android12splash.png  ==  android/app/src/main/res/drawable-mdpi/android12splash.png
            -  android/app/src/main/res/drawable-night-hdpi/android12splash.png  ==  android/app/src/main/res/drawable-hdpi/android12splash.png
    ...
    

    What it means

    Source 99% shared with the template. That's normal for a fork on day one, and it's why you don't submit on day one.

    74 byte-identical files, mostly the splash images. Byte-identical assets fail at any percentage, because a reviewer sees the same splash screen in two apps.

    Metadata and screenshots are unmeasured, not clean. There's no fastlane/metadata or screenshot folder yet, so the check says so rather than reporting 0%.

    Next steps

    1. Regenerate the splash and icon for the new app.
    2. Replace the feature code, then re-run until no surface is over the threshold.
    3. Pass --alias for words that differ only by theme (taco/fruit), or the score understates sharing.

    Output is from a real run on a test copy. The folder path is shortened.

    Connects securely to your tools. The creator never sees your data.

    About this skill

    If you put several apps on one developer account, guideline 4.3 (spam) is what gets them rejected, and it's rarely the code. It's two apps with the same screenshots, the same headline style, the same sounds, or store text that's 80% identical.

    This skill measures that before Apple does. It compares one app against every sibling in your folder across four things: source, store listing text, screenshots, and bundled assets like audio, fonts and icons. It reports the overlap in numbers and tells you what to change.

    It works on Flutter, React Native and Expo apps, and siblings can be either stack. For React Native it compares TypeScript and JavaScript source (skipping node_modules and the native folders), reads app names from package.json and app.json, and compares Expo's store.config.json against the matching fastlane files, so copied store text is caught across the two layouts.

    It won't help you hide similarity. If you ask it to rename things just to lower the number, it says to change the app instead, because that's what a reviewer is actually looking at.

    Script: check_similarity.py. Python 3.9+, no packages.

    These are free and MIT-licensed, and the source is at github.com/jameskrupnik/indie-app-skills. If you ship several apps, my paid skills cover the rest of the release: new-app (forking without carrying the parent's Firebase and ad ids), ship-ios (fork to App Store review), bug-hunt and daily-update (pacing releases across many apps).

    How to use

    Skills on Agensi run inside your AI agent. Copy the prompt, paste it into your agent, and it connects to Agensi and installs this skill for you. If a payment is needed, your agent shows it to you first.

    Reviews

    No reviews yet

    Be one of the first to try it. Every listed skill passes our trust checks below.

    Security scanned

    Passed our 8-point scan before listing

    Fresh listing

    Recently published to Agensi

    Free forever

    No account required to browse

    Trust & safety

    Security scanned

    Verified clean 5 days ago

    • Free to download with an account

    Listed6 days ago
    Updated4 days ago

    What's inside

    Frequently Asked Questions