---
title: "Software QA checklist before launch"
canonical: https://wavect.io/software-development-guide/software-qa-checklist-before-launch/
language: en
description: "Before you launch, the question is simple: will this survive real users, or is it a demo that breaks the first busy Monday? Production-ready means automated …"
image: "https://wavect.io/img/general/bak/open_graph_preview.jpg"
---

Process and delivery

# Software QA checklist before launch

Before you launch, the question is simple: will this survive real users, or is it a demo that breaks the first busy Monday? Production-ready means automated tests, CI/CD, monitoring, error tracking, a tested rollback, and basic security in place. If those are missing, you do not have a launch, you have a countdown to an incident.

Short answer

A pre-launch QA checklist confirms automated tests, CI/CD, monitoring, error tracking, performance, basic security, and a tested rollback are in place before real users arrive.

Best for

- Founders about to put a product in front of paying or enterprise users
- Teams moving from prototype to a real launch
- Products where downtime or a data bug costs real money or trust
- Anyone unsure whether their build is production-ready or just demo-ready

Not for

- Pure internal throwaway prototypes with no real users
- Teams that already run mature QA and just want a second pair of hands
- Products being deliberately killed, not launched

// 01

## Compare the options

There is a hard line between software that is production-ready and a demo that happens to run on your laptop. Here is what separates them.

| Area | Production-ready | Demo that breaks in production |
| --- | --- | --- |
| Tests | Automated tests cover the critical paths. | Tested by clicking through it once. |
| Deploys | CI/CD, repeatable, one button. | Manual, from someone’s machine, fingers crossed. |
| Visibility | Monitoring and error tracking alert you first. | You find out when a user emails, or tweets. |
| Under load | Tested against realistic concurrency. | Fine for one user, unknown for a thousand. |
| When it breaks | Tested rollback, back up in minutes. | Panic, manual fixes, extended outage. |
| Security | Auth, secrets, and inputs handled properly. | Hardcoded keys and trusting user input. |

// 02

## Where Wavect lands on this

Most things that go wrong at launch were predictable a week earlier. The product worked in the demo because one person used it gently. Then real traffic, real edge cases, and real attackers arrive at once, and the gaps that were invisible become outages.

QA before launch is not a phase you bolt on at the end. It is the difference between a build and a product. We took Twinsoft AI from a vibe-coded prototype to an enterprise pilot-ready state in two weeks, and the bulk of that work was exactly this: making something that demoed well actually hold up in production.

Our [software quality assurance service](/services/software-quality-assurance/) runs this checklist for you and fixes what it finds. If you only do one thing before launch, get monitoring, error tracking, and a tested rollback in place. Those three turn a silent disaster into a problem you catch and reverse in minutes.

// 03

## Cost, risk and timeline

Cost Discovery from EUR 3,500 A QA review scopes what is missing and what it takes to close the gap before launch.

Risk Silent failure Without monitoring and rollback, the first you hear of a problem is an angry user and a long outage.

Timeline Pilot-ready in 2 weeks Twinsoft AI went from prototype to enterprise pilot-ready in two weeks, most of it hardening for production.

// 04

## Where this usually goes wrong

- No automated tests, so every change risks silently breaking something that worked.
- Manual deploys from a laptop, so releases are stressful and not repeatable.
- No monitoring or error tracking, so users report outages before you notice them.
- Never load-tested, so the product folds the first time it gets busy.
- No rollback plan, so a bad deploy turns into hours of downtime.
- Secrets in the codebase and unvalidated inputs, so the first probe finds a hole.

// 05

## The checklist

Run every item before you call it a launch. If you cannot tick it, it is not done.

- Automated tests cover the critical user paths and run on every change.
- CI/CD pipeline builds, tests, and deploys without manual steps.
- Monitoring is live for uptime, latency, and key business events.
- Error tracking captures exceptions with enough context to debug them.
- Load and performance tested against realistic concurrency, not just one user.
- Security basics handled: secrets out of code, inputs validated, auth enforced.
- Rollback is tested, not assumed, and you know how fast you can reverse a deploy.
- Runbook and handover docs exist so someone other than the author can operate it.

// 06

## What this looks like in our work

We harden prototypes into products that hold up under real users and real load.

### [Twinsoft AI](/case-studies/twinsoft-ai/)
- **Status:** Live
- **Outcome:** 2 weeks - To Sellable MVP
- **Summary:** Took a vibe-coded prototype to enterprise pilot-ready, no shortcuts.
- **Stack:** Python / Flask, LLMs, Terraform

### [LivLive](/case-studies/livlive/)
- **Status:** Live
- **Outcome:** +1,000 - Concurrent Users
- **Summary:** AR-RWA platform: $2M+ raised through the product, 1,000+ concurrent users, six weeks flat.
- **Stack:** Solidity, Typescript, React

These are selected projects, not our full portfolio. We have shipped 75+ products since 2018.

// 07

## When this fits, and when it does not

// 01

### When Wavect is the right fit

- You are about to launch and want certainty it will survive real users.
- You have a prototype that demos well and now needs to be production-ready.
- You need someone to run the QA work, not just hand you a checklist.
- Downtime or a data bug would cost you real money or a key customer.

// 02

### When we are not the fit

- Your build is an internal throwaway with no real users to protect.
- You already run mature QA and only need extra hands.
- You want a paper audit with no one to fix what it finds.
- You are decommissioning the product rather than launching it.

If you want this checklist run and the gaps closed before you launch, our QA service does exactly that.

// 08

## Related services & reading

- [SERVICE Software Quality Assurance](/services/software-quality-assurance/)
- [SERVICE Software Development](/services/software-development/)
- [SERVICE MVP Development](/services/mvp-development/)
- [GUIDE Vibe-coded prototype to production](/software-development-guide/vibe-coded-prototype-to-production/)
- [GUIDE Software handover checklist](/software-development-guide/software-handover-checklist/)
- [GUIDE What is a Discovery phase](/software-development-guide/what-is-a-discovery-phase/)
- [CASE STUDY Twinsoft AI](/case-studies/twinsoft-ai/)
- [CASE STUDY LivLive](/case-studies/livlive/)

// 09

## FAQs

### What should a pre-launch QA checklist cover?

At minimum: automated tests on the critical paths, a CI/CD pipeline, live monitoring, error tracking, load and performance testing, security basics, and a tested rollback. Documentation so someone other than the author can operate it rounds it out. If any of those is missing, you are not ready to launch.

### How do I know if my software is production-ready or just a demo?

Ask whether it survives without the person who built it watching. Production-ready software has automated tests, alerts when something breaks, and a rollback you have actually tested. A demo works because one person used it gently and nothing went wrong the one time they tried.

### What is the single most important thing before launch?

Monitoring, error tracking, and a tested rollback. Together they turn a silent disaster into a problem you catch and reverse in minutes. If you only have time for one area before launch, make it this one.

### Can you fix what the QA review finds, or just report it?

We fix it. Our software quality assurance service runs the checklist and closes the gaps it surfaces. A report no one acts on does not make your launch any safer.

### How long does it take to make a prototype production-ready?

It depends on the gaps, but it is often weeks, not months. We took Twinsoft AI from a vibe-coded prototype to enterprise pilot-ready in two weeks, and most of that was the hardening this checklist covers.

Last reviewed: 2026-06-26 by [Kevin Riedl](/team/kevin-riedl/) [wiki ↗](https://www.wikidata.org/wiki/Q139796365)

## Structured Data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/#organization",
      "@type": [
        "Organization",
        "ProfessionalService",
        "LocalBusiness"
      ],
      "employee": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "founder": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "legalRepresentative": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "name": "Wavect GmbH",
      "subjectOf": {
        "@id": "https://wavect.io/verified-claims.json#dataset",
        "@type": "Dataset",
        "creator": {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        },
        "description": "A machine-readable registry of quantitative and qualitative claims published by Wavect, with review dates, localized page appearances and public third-party citations where available.",
        "inLanguage": "en",
        "isAccessibleForFree": true,
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "name": "Wavect verified publication claims",
        "url": "https://wavect.io/verified-claims.json"
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/team/kevin-riedl/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Kevin Riedl",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796365",
        "https://www.linkedin.com/in/wsdt",
        "https://github.com/wsdt"
      ],
      "url": "https://wavect.io/team/kevin-riedl/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/team/christof-jori/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Christof Jori",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796367",
        "https://www.linkedin.com/in/jocr77/",
        "https://github.com/jo-chris"
      ],
      "url": "https://wavect.io/team/christof-jori/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/#website",
      "@type": "WebSite",
      "inLanguage": [
        "en",
        "de",
        "es",
        "zh"
      ],
      "name": "Wavect",
      "potentialAction": {
        "@type": "SearchAction",
        "query-input": "required name=search_term_string",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://wavect.io/search/?q={search_term_string}"
        }
      },
      "publisher": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/software-development-guide/software-qa-checklist-before-launch/#webpage",
      "@type": "WebPage",
      "dateModified": "2026-06-26",
      "inLanguage": "en",
      "isPartOf": {
        "@id": "https://wavect.io/#website",
        "@type": "WebSite"
      },
      "lastReviewed": "2026-06-26",
      "url": "https://wavect.io/software-development-guide/software-qa-checklist-before-launch/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/software-development-guide/software-qa-checklist-before-launch/#article",
      "@type": "Article",
      "about": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "author": {
        "@id": "https://wavect.io/team/kevin-riedl/#person",
        "@type": "Person",
        "name": "Kevin Riedl",
        "url": "https://wavect.io/team/kevin-riedl/"
      },
      "dateModified": "2026-06-26",
      "datePublished": "2026-06-26",
      "description": "Before you launch, the question is simple: will this survive real users, or is it a demo that breaks the first busy Monday? Production-ready means automated tests, CI/CD, monitoring, error tracking, a tested rollback, and basic security in place. If those are missing, you do not have a launch, you have a countdown to an incident.",
      "headline": "Software QA checklist before launch",
      "inLanguage": "en",
      "isPartOf": {
        "@id": "https://wavect.io/#website",
        "@type": "WebSite"
      },
      "lastReviewed": "2026-06-26",
      "mainEntityOfPage": "https://wavect.io/software-development-guide/software-qa-checklist-before-launch/#webpage",
      "mentions": [
        {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        },
        {
          "@type": "Service",
          "name": "Software Quality Assurance",
          "url": "https://wavect.io/services/software-quality-assurance/"
        },
        {
          "@type": "Service",
          "name": "Software Development",
          "url": "https://wavect.io/services/software-development/"
        },
        {
          "@type": "Service",
          "name": "MVP Development",
          "url": "https://wavect.io/services/mvp-development/"
        }
      ],
      "name": "Software QA checklist before launch",
      "publisher": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "reviewedBy": {
        "@id": "https://wavect.io/team/kevin-riedl/#person",
        "@type": "Person",
        "name": "Kevin Riedl",
        "url": "https://wavect.io/team/kevin-riedl/"
      },
      "speakable": {
        "@type": "SpeakableSpecification",
        "cssSelector": [
          ".cmp-hero__headline",
          ".cmp-hero__lead"
        ]
      },
      "url": "https://wavect.io/software-development-guide/software-qa-checklist-before-launch/"
    },
    {
      "@type": "BreadcrumbList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "item": "https://wavect.io/",
          "name": "Home",
          "position": 1
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/software-development-guide/",
          "name": "Software development guide",
          "position": 2
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/software-development-guide/software-qa-checklist-before-launch/",
          "name": "Software QA checklist before launch",
          "position": 3
        }
      ]
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "At minimum: automated tests on the critical paths, a CI/CD pipeline, live monitoring, error tracking, load and performance testing, security basics, and a tested rollback. Documentation so someone other than the author can operate it rounds it out. If any of those is missing, you are not ready to launch."
      },
      "name": "What should a pre-launch QA checklist cover?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Ask whether it survives without the person who built it watching. Production-ready software has automated tests, alerts when something breaks, and a rollback you have actually tested. A demo works because one person used it gently and nothing went wrong the one time they tried."
      },
      "name": "How do I know if my software is production-ready or just a demo?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Monitoring, error tracking, and a tested rollback. Together they turn a silent disaster into a problem you catch and reverse in minutes. If you only have time for one area before launch, make it this one."
      },
      "name": "What is the single most important thing before launch?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "We fix it. Our software quality assurance service runs the checklist and closes the gaps it surfaces. A report no one acts on does not make your launch any safer."
      },
      "name": "Can you fix what the QA review finds, or just report it?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "It depends on the gaps, but it is often weeks, not months. We took Twinsoft AI from a vibe-coded prototype to enterprise pilot-ready in two weeks, and most of that was the hardening this checklist covers."
      },
      "name": "How long does it take to make a prototype production-ready?"
    }
  ],
  "speakable": {
    "@type": "SpeakableSpecification",
    "cssSelector": [
      ".faq-question",
      ".faq-answer"
    ]
  }
}
```
