Skip to main content

Site & app audits

A site audit is a full visual and functional inventory of every public surface Drape ships: the marketing site, the brand portal, a tenant storefront, the admin console, and the iOS app. Every route is loaded, screenshotted at desktop and phone widths, exercised through the interaction states a signed-out visitor can reach, and checked for console errors, failed requests and basic accessibility hygiene.

Each audit is run twice: once against local builds of the current branches, and once against production. A finding that reproduces on the live site is a real issue for users. One that only appears on localhost is a dev-environment nice-to-have, and every finding is labelled one way or the other.

How an audit is produced​

StepToolWhat it does
Route discoveryapp/**/page.tsx in each Next.js repo, plus same-origin links found on rendered pagesBuilds the list of routes to visit
Web crawlPlaywright + Chromium (crawl.js)Loads each route at 1440×900 and 390×844, full-page screenshots, tabs / expanders / mobile menu / empty form submit / wrong-password login, records console and network errors
Reportreport.jsClassifies findings (critical, needs attention, minor, expected-from-probe), writes summary.json and a local HTML index
Production passsame crawler, config-prod.jsonSame routes on drape.to, brand.drape.to, a live tenant host and admin.drape.to
Comparisoncompare.jsPairs each local finding and route with its production counterpart and assigns the verdict
Mobile tourMaestro (audit-tour.yaml)Release simulator build, signup and login validation, onboarding, then every main, seller and brand route by deep link
Shareable reportbuild-artifact.jsOne self-contained HTML file with compressed captures, findings and verdicts

The tooling for the latest audit is downloadable from that audit's overview page so the next pass can reuse it. Two environment details matter when rerunning locally:

  • The dev API's CORS allowlist accepts plain localhost only on ports 3000 to 3003, plus any *.localhost host. Run the brand portal as brand.localhost:<port> and the admin as admin.localhost:<port>.
  • Maestro needs a Release simulator build (npx expo run:ios --configuration Release); the Expo dev client cannot be driven through flows that clear state.

Audits to date​

DateScopeHeadline
2026-11-03Marketing, brand portal, storefront, admin, iOS app; local develop vs production4 production issues (privacy/terms 404, product share image, admin login error, featured endpoint 500), the rest dev-only or hygiene