Automating Full-Page Screenshots with Playwright in CI
9 min readHow I replaced manual landing-page screenshots with a weekly Playwright job that captures desktop and mobile views, then bundles them into a static archive site
How I replaced manual landing-page screenshots with a weekly Playwright job that captures desktop and mobile views, then bundles them into a static archive site
How I sped up CI and release pipelines for a large Next.js app: disabling inline ESLint and type checking in next build, running them as parallel jobs, linting only changed files, and fixing broken caches.
A Cloud Run service kept hitting its memory limit at startup. The cause: uv run re-syncs the environment by default, reinstalling the dev dependency group at runtime even though the image was built with --no-dev. The fix is --no-sync (and --no-install-project for better layer caching).
Moving the app off its default *.run.app URL onto a company subdomain with Cloud Run domain mappings: the domain-verification step the runbooks skip, why a zone apex takes A/AAAA records instead of a CNAME, why the cutover order matters when an OIDC audience is involved, and a 502 that looked like a broken deploy but was a TLS cert still propagating.
The cloud half of the DB: enabling GCP APIs, choosing the cheapest Cloud SQL tier and why, Private Service Connect with no public IP, serverless VPC egress, and migrating a database you cannot reach from your laptop.