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.

Free pilot for 10 learners

One loop, from first commit to launch.

Build, verify, learn, launch. Every pass through the loop makes your app safer and you more confident.

my-first-app
TSsrc/lib/email.ts
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}
TerminalProblemsOutput
you Add email sign-ups with Resend.
$ set_secret RESEND_API_KEY
✓ Saved to Cloudflare as a secret
✓ Value hidden from the AI
LESSON · Secrets
API keys live in your cloud's secret store,
never in your code or your Git history.

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_database
YML.github/workflows/ci.yml
1on: 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 test
TerminalProblemsOutput
$ deploy --preview
✓ Tests passed (24)
✓ Preview deployed
✓ Smoke test passed on the preview
pr-12.my-first-app.workers.dev

Step 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 --preview
MDlessons/preview-deploys.md
1# 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.
TerminalProblemsOutput
LESSON · Preview deploys · first time
A preview is a private copy of your app,
built from this branch. You test here, so a
mistake never reaches your real users.
LESSON · Preview deploys · fifth time
Preview passed. Safe to merge.

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 call
SQLmigrations/0007_drop_phone.sql
1-- Destructive: this deletes data.2-- Production deploys wait for your approval.3 4ALTER TABLE bookings DROP COLUMN phone;
TerminalProblemsOutput
$ deploy --production
! Production deploy needs your approval
… Waiting for your approval in the dashboard
✓ Approved by you
✓ Live at my-first-app.com

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_readinessdeploy
⎇ main✓ CI passingLaunchwright connected

Sample 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.

  1. 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.

  2. 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.

  3. 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).

  4. 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

Passed

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.

Passed

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.

Passed

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.

Passed

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.

Action neededsrc/app/api/bookings/route.ts

Auth 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.

Passed

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.

Passed

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.

Passed

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.

Sample

my-first-app

Security

Least-privilege access on

Connected accounts

Your app runs here. It stays yours, even if you leave.

  • 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

    Disconnect

Secrets

Encrypted. Your AI can use them, never read them.

  • DATABASE_URL••••••••AI: use only
  • RESEND_API_KEY••••••••AI: use only
  • SESSION_SECRET••••••••AI: use only

Claude Code asked to read DATABASE_URL · Blocked

Needs your approval

Risky actions wait for you.

1 pending

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.

ApproveReject

Audit log

Every tool call: what ran, when, and what it touched.

  1. 10:42check_env read 6 variablesDone
  2. 10:43set_secret RESEND_API_KEY, value hiddenDone
  3. 10:45deploy preview #48Done
  4. 10:47deploy production deploy of mainWaiting

Sample dashboard. Accounts, keys, and logs are examples.

Applications open10 seats

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

A few short questions about you and what you want to ship. We use it to pick people we can actually help.

We email you a 6-digit code to confirm it's you. Then 5 short steps, about 3 minutes. See the privacy policy.

  1. 1

    Apply

    Five short questions about you and your project.

  2. 2

    We review

    We read every application and email you.

  3. 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