You built it with AI. Now learn to ship it.
For websites and web apps. From your first commit to a deployed app that passes the checks real teams run.
One loop, from first commit to launch.
Build, verify, learn, launch. Every pass through the loop makes your app safer and you more confident.
1import { Resend } from "resend";2 3// The key comes from the environment,4// never from the code itself.5export function mailer(env: Env) {6 return new Resend(env.RESEND_API_KEY);7}Step 1 of 4 · Build
Keep using your AI tool.
Claude Code, Codex, or Cursor connect to Launchwright on your own subscription. Ask for what you want, and your tool calls Launchwright to set it up the way real teams do.
setup_ciset_secretconnect_database1on: pull_request2 3jobs:4 test:5 runs-on: ubuntu-latest6 steps:7 - uses: actions/checkout@v48 - run: npm ci && npm test9 # Smoke test the preview deploy10 - run: npx playwright testStep 2 of 4 · Verify
Every change is checked before it's live.
Each pull request runs your tests in GitHub Actions, deploys a preview, and runs a Playwright smoke test against it. Production only changes when everything is green.
setup_cideploy --preview1# Preview deploys2 3A preview is a private copy of your app,4built from your branch.5 6You test here first, so a mistake never7reaches your real users.Step 3 of 4 · Learn
Every step comes with a short lesson.
Each tool call returns the result and a lesson: what happened, and why. You get the full explanation the first time and one line after that. Your progress comes from the work you actually do.
every tool call1-- Destructive: this deletes data.2-- Production deploys wait for your approval.3 4ALTER TABLE bookings DROP COLUMN phone;Step 4 of 4 · Launch
Launch when the checks say you're ready.
Readiness checks run on your own repo. Production deploys wait for your approval in the dashboard, so nothing goes live by accident.
check_readinessdeploySample output. launchwright v0.1 is still being built.
Your progress,
at a glance.
The dashboard counts what you build and learn on your own project. No quizzes, just the work you ship.
Readiness checks
8/8
All passed on your last preview deploy.
Skills learned
5/8
Level 1. Next up: Deploy.
Lessons done
12
Now on: Preview deploys.
Tool calls
47
Each one came with a short lesson.
Sample data. launchwright v0.1 is still being built.
Your path
to production.
Eight skills in three stages, learned on your own project with managed free tiers. Each skill shows up when your project needs it.
Stage 01Start here
Foundation
Set up your project the way teams do.
- 01
Git
Branches, commits, and pull requests without the fear.
- 02
Env & secrets
Why API keys never belong in your code.
- 03
Database
Neon or Supabase, migrations, and backups.
- 01
Stage 02
Ship safely
Catch problems before your users do.
- 04
CI/CD
GitHub Actions that test before you deploy.
- 05
Testing
Unit tests and Playwright smoke tests.
- 06
Deploy
Preview deploys, production, and rollback.
- 04
Stage 03
Operate
Keep it running and keep it safe.
- 07
Monitoring
Logs, errors, and uptime checks.
- 08
Security
Auth, security headers, and the Data Privacy Act (RA 10173).
- 07
Level 2 · Not in the pilot
Your own VPS
Run apps on a server you control.
LinuxSSHNginxDockerTLSBackupsRollback
Know when you're ready to launch.
Eight checks run in GitHub Actions on your own repo. Each one tells you what's wrong, why it matters, and how to fix it with your AI tool.
Launch readiness · my-first-app Sample
7/8
7 of 8 checks passed
Run #48 · on every push
No secrets in repo
Why it matters
A key committed to Git stays in its history, even after you delete the file.
How to fix
Every commit is scanned. Move keys into your cloud's secret store with set_secret.
Environment config
Why it matters
A missing variable can crash production while everything works on your laptop.
How to fix
check_env compares what your code reads with what each environment has.
CI pipeline with tests
Why it matters
Tests that only run on your laptop don't protect your main branch.
How to fix
setup_ci adds a GitHub Actions workflow that runs on every pull request.
Playwright E2E on preview deploy
Why it matters
A green build can still show a blank page.
How to fix
A smoke test runs against a real preview URL before you merge.
src/app/api/bookings/route.tsAuth on API routes
Why it matters
/api/bookings answers anyone who asks, including people who aren't logged in. Anyone could read your customers' bookings.
How to fix
Ask your AI tool to run check_readiness --fix auth. Review the change in the pull request before you merge.
Suggested fix · ask your AI tool
you Fix the failing auth check, then show me the diff.
Database migrations
Why it matters
Schema changes made by hand can't be repeated or rolled back.
How to fix
Migrations live in your repo and run in CI, in order.
HTTPS and security headers
Why it matters
Headers like Content-Security-Policy block whole classes of attacks at no cost.
How to fix
Your live URL's response headers are checked on every deploy.
Uptime check
Why it matters
You should hear about an outage before your users do.
How to fix
Your production URL is checked regularly and you're alerted when it's down.
Your accounts. Your app. Your call.
Launchwright does the work in your accounts, with the least access it needs. Here's what you see in your dashboard.
- 1
Your credentials
Encrypted, least-privilege, and never shown to your AI.
- 2
Your infrastructure
Your GitHub, Cloudflare, and database. We never host your app.
- 3
Your approval
Anything risky waits for you. Every action is logged.
my-first-app
Security
Connected accounts
Your app runs here. It stays yours, even if you leave.
- Disconnect
GitHub Owner: you
github.com/juan/my-first-app · Repo contents, Actions
- Disconnect
Cloudflare Owner: you
my-first-app.workers.dev · Workers, DNS
- Disconnect
Neon Owner: you
my-first-app / main · One project only
Secrets
Encrypted. Your AI can use them, never read them.
DATABASE_URL••••••••AI: use onlyRESEND_API_KEY••••••••AI: use onlySESSION_SECRET••••••••AI: use only
Claude Code asked to read DATABASE_URL · Blocked
Needs your approval
Risky actions wait for you.
Deploy my-first-app (main) to production
Requested by Claude Code via deploy
Builds main and replaces what your users see on my-first-app.com. If the smoke test fails afterwards, it rolls back on its own.
Audit log
Every tool call: what ran, when, and what it touched.
- 10:42
check_envread 6 variablesDone - 10:43
set_secretRESEND_API_KEY, value hiddenDone - 10:45
deploypreview #48Done - 10:47
deployproduction deploy of mainWaiting
Sample dashboard. Accounts, keys, and logs are examples.
Join the free pilot.
Free for the first 10 learners. You ship your own website or web app, and we show you how each part works.
You use your own AI tool and free-tier cloud accounts. If you go past a free tier, that provider bills you, not us.
- One project, all the way to launch
- The full Level 1 learning path
- Readiness checks on your own repo
- Works with your own AI tool and cloud accounts
After the pilot, a free Starter plan stays open to everyone.
Your application
About 4 minutes
- 1
Apply
Five short questions about you and your project.
- 2
We review
We read every application and email you.
- 3
Start building
Connect your AI tool and ship a preview.
Questions?
How does the pilot work?
Apply with your email. The pilot has 10 seats, and we review every application. If you're in, we'll email you a link to get started.
Do I need to pay for an AI tool?
You use the AI tool you already have (Claude Code, Codex, Cursor, and others) on your own subscription. It connects to Launchwright.
Where is my app hosted?
On your own accounts: GitHub for code, Cloudflare for hosting, and Neon or Supabase for the database. We never host your app, so it stays yours.
Are my credentials safe?
Tokens are encrypted and access is least-privilege. The AI never sees your raw credentials, and production deploys need your approval in the dashboard.
Does passing all 8 checks mean my app is secure?
No check can promise that. The 8 checks are a solid baseline that catches common mistakes, like leaked secrets or open API routes. They can't prove your app has no bugs.
Can I ship a mobile app?
Not yet. Launchwright is for websites and web apps that run in the browser. Native iOS and Android apps aren't supported.
Which frameworks are supported?
At launch: Next.js, Vite (React or Vue), Astro, and Hono. PHP/Laravel, Python, and Docker come with Level 2.
I'm a beginner. Can I do this?
Yes. Launchwright is built for students, beginners, career shifters, and people coming from vibe coding. The first time you meet a concept, you get the full explanation.
Want in? Apply for the pilot