my-appengineer Learn

Go-live checklist for AI-built products

Your checklist must prioritize infrastructure ownership, validated persistence, and automated QA. Ensure your app is built as a "product" type with a real database and verified payments before inviting users.

Last updated

Your checklist must prioritize infrastructure ownership, validated persistence, and automated QA. Ensure your app is built as a "product" type with a real database and verified payments before inviting users.

Do I have the right build type for real users?

If you started with a demo, you cannot upgrade it in place. A demo uses memory-only storage and has no payment integration. To move to real users, you must rebuild the application as a product type. This ensures a real database is provisioned and payments are automatically configured.

This distinction is critical because persistence and payments reach into every part of the application code. Attempting to bolt these onto a demo build usually results in a fragile system that fails under real load.

Is my infrastructure actually owned by me?

Verify that your application is not trapped in a platform sandbox. For a professional launch, your app should land in a Kubernetes cluster you own, deployed as a Helm release. This prevents lock-in and allows you to move your source code to any environment where Docker runs.

If you are concerned about monthly hosting costs, you can join your own hardware to the cluster. A machine at home can become a node in the cluster over a private network, which brings the running cost of the app close to zero.

Has the app passed real-world QA?

A manual check is not enough for AI-generated code. You need a separate QA agent to open the deployed app in a real browser and verify that every capability listed in the blueprint actually works. For a product-type build, this involves up to five iterations of testing and fixing.

If you are unsure if your app is truly ready for the public, read about /learn/what-does-production-ready-actually-mean-for-non-coding-founders.

What are the common failure points at launch?

Infrastructure failures often happen at the storage and database layers. For example, configuring multiple storage replicas on a single node can starve etcd of resources, causing the control plane to crash-loop and the cluster to stop responding. On a single node, you must use only one replica.

Database versioning is another risk. A major Postgres version jump (e.g., from 15 to 16) via a simple image tag change will cause the container to crash-loop because Postgres does not upgrade data directories automatically. Major upgrades must be handled as deliberate migrations.

How do I handle updates without downtime?

Your deployment pipeline should use helm upgrade --atomic. This ensures a zero-downtime rolling update on K3s. By comparing paths against the previous commit, the system only rebuilds and rolls out the specific services that changed. If a new release fails its health checks, it rolls back automatically rather than leaving the app in a half-broken state.

To keep the system healthy over time, install cluster tools like Velero for backups and Falco for runtime security monitoring.

my-app.engineer allows you to describe an app in chat and deploys it into a K3s cluster that you own, ensuring your source code and infrastructure remain your property.

Build an app and own the cluster it runs on