# Playwright projects `npm run e2e` builds first (`pree2e` hook) and then drives the **production** server, not `next dev`. That choice caught a real bug: cookie flags and hydration differ between the two, and a dev-only suite never noticed a `Secure` cookie that Safari refuses on plain http. Projects: `setup` signs up the QA account and configures both models through the real UI, writing a storage state; `chromium` runs everything except the session spec; `webkit` runs only the session spec, because it is the engine that rejects a Secure cookie over `http://localhost`; `mobile` runs only the responsive checks, so a 30-second model run is never paid for twice. One worker, 180-second test timeout, and a single run takes about 55 seconds for 23 tests including a real analyst and real Jev call. Related: [[WebKit in QA]], [[Unit suites]], [[Analyst model]].