Skip to content

Launch Review, $199, one-time

A person checks what a URL cannot show

For founders putting real users on an AI-built app in the next 30 days. Alex reads the parts of your app the free check marks as not verified, gives each one a verdict with the evidence, ranks what to fix first, and records a walkthrough. You make the changes, or you make them together in a Hardening Sprint.

Last updated October 25, 2026

$199

One-time, no subscription

First reply within 1 business day. Delivered within 3 business days. Refundable in full any time before work starts.

If it turns up nothing you did not already know, you do not pay.

Who it is for

  • Your app signs people in, and one customer must never see another customer's data.
  • You take payments, or will within a month.
  • Real users arrive in the next 30 days, or they already have.
  • You built it with Lovable, Bolt, v0, Replit, Cursor, Claude Code, Codex or similar, and nobody with production experience has read it yet.

Not for

  • A weekend project with no users planned. The free check and the checklist generator cover that.
  • Someone who wants the changes made for them. That is the Hardening Sprint.

What gets reviewed

These are the items the free check lists as not verified. Your own check decides which of them apply to your app, from what it detected and what you told it. Each one gets a verdict, Verified or Needs fix, with the evidence behind it. An item the access shared cannot settle stays Not verified, with a note on what access would settle it.

  • Rollback and recovery

    Whether you can put the previous version back, and how long that takes.

  • Error monitoring

    Whether a failure in production reaches a human rather than sitting in a log nobody opens.

  • Sign in and account flows

    Whether sign in, password or code reset, and session expiry behave under real use.

  • Rate limiting and abuse controls

    Whether a script can hammer your forms, sign up loop, or paid endpoints without being slowed down.

  • Key rotation

    Whether you can replace a leaked key quickly and know everywhere it is used.

  • Payment handling

    Whether payment events are verified, replay safe, and matched to the right customer record.

  • Customer data handling

    Whether stored personal details are limited, deletable on request, and out of your logs.

  • AI feature controls

    Whether prompts, spend, and model output are bounded so one visitor cannot run up the bill.

  • Database row rules

    Whether the row rules behind the app actually stop one signed in account reading another's rows.

  • Certificate expiry date

    Whether the certificate is close to expiring. A normal request proves the certificate is valid right now, and the runtime this check uses cannot read the expiry date from that request.

  • One account reading another account's data

    Whether a signed in account can reach another account's records by changing an id. ShipReady does not create accounts, sign in, or call your functions, so this cannot be answered from outside.

  • How fast the page is for a real visitor

    Whether the first screen arrives quickly on a phone connection. This check reads the page once from a server, which says nothing about what a visitor on a train sees.

  • Colour contrast in the interface

    Whether text and controls stay readable against their background, including muted text, placeholders, disabled buttons and focus outlines.

  • How the layout holds on a phone

    Whether the layout actually works at phone width. A viewport tag allows the page to adapt; it does not prove anything fits.

  • Whether your forms refuse automated submissions

    Whether a script can post your public forms repeatedly. Sending test traffic at your forms is not something an outside check should do uninvited.

  • Whether the cookie choice is honoured

    Whether a banner appears where it is required, and whether declining actually stops anything being stored.

  • Whether the first screen asks for one thing

    Whether a visitor arriving cold knows the single next step. That is a judgement about your product, not something a request can read.

Each item has its own page: not verified, explained.

What you get

  • A written review: one verdict per item, the evidence behind it, what it would cost you if it failed, and how long the fix takes.
  • A ranked fix order, so the first hour goes to the item that matters most.
  • A fix prompt for your builder on every Needs fix item.
  • About 15 minutes of recorded walkthrough from Alex, following the same order.
  • Your Launch Risk Statement updated item by item, dated, with Alex's note.
  • Release Gate included, a $49 value.
  • The $199 credited toward a Hardening Sprint within 30 days.

What is not included

  • No changes to your code. You or your builder apply the fix prompts. Having the fixes made with you is the Hardening Sprint.
  • No second reading after you fix things. That is Re-verification, $99, or part of a Hardening Sprint. The 30 day re-check reruns the free check.
  • Nothing is attacked and nothing is written to your data. Signed in checks use test accounts you create.

A sample review

The full shape of a delivered review, written for a fictional app called Tallybook. It is not a customer, and none of it is real evidence.

Launch Review

tallybook.example

Illustrative sample for a fictional app. Not a customer and not real evidence.

Tallybook is a multi-user invoicing app built with Lovable, using Lovable Cloud for data and sign in and Stripe for subscriptions. Eight items applied. Two need fixing before launch, both under a day of work. Two more belong in the first week. Three were verified, and one stays not verified with the access shared.

Recommendation: hold the launch until items 1 and 2 are fixed and re-checked. Items 3 and 4 can follow in the first week.

  1. 01

    One account reading another account's data

    Needs fix, Before launch
    Evidence
    Signed in as test account B, opening the address of an invoice that belongs to account A showed the full invoice. Signed out, the same address showed nothing.
    If it fails
    Any customer can read any other customer's invoices by changing an id. That is a disclosure you would have to tell every customer about.
    Fix
    Add a row rule on the invoices table that only lets an account read and change rows it owns, then repeat the request as account B and confirm it returns nothing. Under an hour.
  2. 02

    Payment handling

    Needs fix, Before launch
    Evidence
    In the repository, the subscription webhook grants the plan before checking the event signature, and nothing records which events were already handled.
    If it fails
    Anyone who finds the webhook address could grant themselves a paid plan, and a retried event would run the grant a second time.
    Fix
    Verify the Stripe signature before reading the event, store each event id once, and ignore an id you have already processed. Two to three hours.
  3. 03

    Rate limiting and abuse controls

    Needs fix, This week
    Evidence
    In the repository, the sign up handler sends a welcome email on every request and has no limit per address. Not tested with repeated sign ups, since that would send real email.
    If it fails
    A script could use up your email sending quota and fill your user table with junk accounts in an afternoon.
    Fix
    Limit sign ups per address and per email domain, and add a quiet bot trap field to the form. An afternoon.
  4. 04

    Key rotation

    Needs fix, This week
    Evidence
    The owner's settings screenshots show the Stripe secret key stored twice: once in the backend secrets and once in a scheduled job's settings. Nothing records where each key is used.
    If it fails
    If the key leaks, rotating it breaks the scheduled job without warning, so a rotation becomes an outage.
    Fix
    Keep the key in one place, have the job read it from there, and write down every key with where it lives. Under an hour.
  5. 05

    Database row rules

    Verified
    Evidence
    In the repository, row rules on customers, payments and settings each limit reads and writes to the owning account. As account B, the pages for account A's customers, payments and settings showed nothing.
  6. 06

    Sign in and account flows

    Verified
    Evidence
    Sign in, password reset and sign out behaved as expected for both test accounts. Opening a dashboard address signed out went to the sign in page.
  7. 07

    Rollback and recovery

    Verified
    Evidence
    On a shared screen, the owner restored the previous version from the builder's history in under two minutes.
  8. 08

    Error monitoring

    Not verified
    Evidence
    No monitoring access was shared, and the owner said none is set up. Left as Not verified rather than passed.
    Fix
    Connect an error monitoring service and send one deliberate error to confirm an alert reaches you within five minutes.

Fix prompt for item 1, written for Lovable

In the invoices table, add a row rule so a signed in account can only select, update and delete rows where owner_id equals its own user id. Do not change any other table. Then show me the rule you added and the query I can run as a second account to confirm it returns no rows.

Not checked in this review

  • Behaviour under heavy real traffic.
  • The internal behaviour of Stripe, the email provider and the hosting platform.
  • Anything outside the published address and the access shared.

Walkthrough

A 14 minute recording following the same order, item 1 first.

How it works

  1. You check out and fill in a short intake, about four minutes.
  2. Alex replies within 1 business day with anything he needs.
  3. The written review plus the Loom arrive within 3 business days.
  4. Your statement is updated item by item, dated, with Alex's note.
  5. A re-check 30 days later shows you the cleared list.

What Alex needs from you

Required

  • The published address of the app.
  • Your top concern, in a sentence.

Optional

  • A link to a public repository, or read access to a private one.
  • Two test accounts you create, so cross-account access can be checked by signing in as each.
  • Screenshots or exports of your database rules, payment settings, or deployment history.

Never asked for

  • Production passwords or your own account.
  • Secret keys, service role keys, or payment provider secret keys.
  • Write access to production data.

How your data is handled

  • Your intake, the written review and the walkthrough link stay in your library so you can return to them.
  • Evidence is written as what was observed and where. Record ids and personal details are left out of the review.
  • Test accounts are used only for the review. Delete them once the review is delivered.
  • Check records are kept for 90 days and then deleted. You can ask for anything tied to your email to be deleted at any time, and the request is actioned within 30 days.

The full policy is in the privacy policy.

Already ran a scanner?

Good. Bring the result to the intake.

Built-in scans and outside scanners read your code, your packages, your settings, or what a visitor can see. They are useful, and some of them go further than the free check here. What they leave open is whether your app behaves correctly for real users: whether account B can open account A's records, whether a replayed payment event grants access twice, whether you can roll back a bad release.

If your scanner already answered an item, Alex records that and moves on. If the review turns up nothing you did not already know, you do not pay.

How ShipReady differs from specific tools is laid out, with sources, on the comparison pages.

Who reviews it

Alex Cinovoj, founder and CTO of TechTide AI. 13 years in US enterprise IT, from help desk and hospital systems to MSP work and cloud engineering. Lovable Senior Champion, 9 Anthropic Academy course completions. Logs over Vibes — a new podcast from Alex Cinovoj and Shane Spencer. Coming soon. Season 1 aired as Automation Vibes (2025). Every review is written by him, not generated.

More about Alex · Reviews for agencies

Questions

Which one fits

Three answers, one suggestion, and the reason for it. Nothing is saved.

Who will make the changes?

What do you need most?

When do real users arrive?

3 of 3 answers to go.

Check your app

Free. No signup. Evidence behind every result.

Running it confirms you own this app or are authorized to test it. We only read public pages and JavaScript bundles.

ShipReady is not a penetration test or a security certification. No automated check can prove an application is secure.

Last updated October 25, 2026