Request access

We look at the things that break handoffs.

Before your app goes anywhere, it walks this line with us. The same stops, in the same order, every time. Two of them only apply if your app has that part, and we say which ones up front.

  1. Known problems
    Nothing in it is a known problem someone already found.
    security-vulnerabilitiesAlways checked
  2. Your keys
    They aren't sitting in the code where anyone can read them.
    secrets-and-environmentAlways checked
  3. No blank screens
    It doesn't go blank when someone does something you didn't expect.
    runtime-bugsAlways checked
  4. You hear it first
    If it breaks, the news comes from us, not from your client.
    observabilityAlways checked
  5. Data that stays
    What people type in is still there tomorrow.
    database-healthIf your app has a database
  6. Private stays private
    The parts you meant to be private stay private.
    authenticationIf your app has sign-in
  7. Then it ships.

One thing we leave off the list on purpose: payment correctness. If your app takes money, that part stays with you, and we say so plainly.

Why we don’t just say yes or no

“We checked and it’s fine,” “we checked and couldn’t tell,” and “we never checked” are three different answers. One green light would blur them together, and silence should never read as reassurance. So every result answers two questions.

Question one
Did we look?
Either checked or not-checked, in those exact words, always visible.
Question two
What did we find?
Only where we checked: pass, fail, or inconclusive. “Couldn’t tell” never counts as “fine.”

The four states you’ll see

Each has its own shape as well as its own color, so you can tell them apart even in grayscale.

checked · pass
We looked, and it held up. A solid circle with a check.
checked · fail
We looked and found a problem, and we'll propose the fix. A diamond with a cross.
checked · inconclusive
We looked and couldn't tell. This is never shown as a pass. A triangle with a mark.
not-checked
We didn't look, and we say so. It's never dressed up as a result. A dashed, empty outline.

Want yours checked first?

If we invite you, you sign in with GitHub and pick one repository. Ship It reads it to work out how your app runs and to check it. It opens a pull request when it has a fix to suggest, and it changes nothing without your say-so. You can take the access back whenever you like.