41554 blogs · [ { "id": "01a08c5e-61ea-7124-a3c7-4af6e215bcdb", "title": "Open browser bookmarks in a new tab (Part 2)", "url": "https://vitalets.github.io/posts/browser-extensions/open-bookmarks-new-tab-part-2/", "published_at": "2026-08-28T00:00:00+00:00" }, { "id": "01a08c5e-61ea-7124-a3c7-4af6e24529f2", "title": "Why I Prefer BDD over SDD for Agentic Development", "url": "https://vitalets.github.io/posts/bdd-agentic-workflow/", "published_at": "2026-07-10T00:00:00+00:00" }, { "id": "01a08c5e-61ea-7124-a3c7-4af6e294b9b1", "title": "Playwright in Pictures: How Fixtures Work", "url": "https://vitalets.github.io/posts/playwright-in-pictures/how-fixtures-work/", "published_at": "2026-06-25T00:00:00+00:00" }, { "id": "01a08c5e-61ea-7124-a3c7-4af6e355e50d", "title": "Playwright in Pictures: Why Workers Restart?", "url": "https://vitalets.github.io/posts/playwright-in-pictures/why-worker-restarts/", "published_at": "2026-05-01T10:38:53+00:00" }, { "id": "01a08c5e-61ea-7124-a3c7-4af6e36f059f", "title": "Playwright in Pictures: Fully Parallel Mode", "url": "https://vitalets.github.io/posts/playwright-in-pictures/fully-parallel/", "published_at": "2026-04-29T09:03:25+00:00" }, { "id": "01a08c5e-61ea-7124-a3c7-4af6e4609406", "title": "Turbopack: A Better Way to Inline SVG in Next.js 16", "url": "https://vitalets.github.io/posts/nextjs/turbopack-inline-svg/", "published_at": "2025-11-19T18:50:28+00:00" }, { "id": "01a08c5e-61ea-7124-a3c7-4af6e4b60edc", "title": "Authentication in Playwright: You Might Not Need Project Dependencies", "url": "https://vitalets.github.io/posts/playwright/authentication-without-project-dependencies/", "published_at": "2025-10-24T09:21:08+00:00" }, { "id": "01a08c5e-61ea-7124-a3c7-4af6e554dadc", "title": "Global Cache: Make Playwright BeforeAll Run Once for All Workers", "url": "https://vitalets.github.io/posts/playwright/global-cache-beforeall/", "published_at": "2025-08-12T08:30:04+00:00" }, { "id": "01a08c5e-61ea-7124-a3c7-4af6e5c42dc0", "title": "Fix the Most Annoying MS Teams Bug: Reveal Hidden Tabs While Presenting", "url": "https://vitalets.github.io/posts/browser-extensions/reveal-hidden-tabs-ms-teams/", "published_at": "2025-05-14T14:27:23+00:00" }, { "id": "01a08c5e-61ea-7124-a3c7-4af6e689262d", "title": "Open bookmarks in a new tab by default — easier said than done", "url": "https://vitalets.github.io/posts/browser-extensions/open-bookmarks-new-tab/", "published_at": "2025-05-01T09:51:22+00:00" }, { "id": "01a08c5e-61ea-7124-a3c7-4af6e72168a2", "title": "Request-Mocking-Protocol: A New Approach to Mocking Server-Side Requests in E2E Testing", "url": "https://vitalets.github.io/posts/testing/request-mocking-protocol/", "published_at": "2025-03-13T10:44:43+00:00" }, { "id": "01a08c5e-61ea-7124-a3c7-4af6e77b3f8b", "title": "\"Fix with AI\" Button in Playwright HTML Report", "url": "https://vitalets.github.io/posts/playwright/fix-with-ai-html-report/", "published_at": "2025-01-13T18:01:13+00:00" }, { "id": "01a08c5e-61ea-7124-a3c7-4af6e7bb0d3a", "title": "Show Metadata in Playwright HTML Report: A Complete Guide", "url": "https://vitalets.github.io/posts/playwright/show-metadata-html-report/", "published_at": "2024-12-19T18:06:14+00:00" }, { "id": "01a08c5e-61ea-7124-a3c7-4af6e7d6d8fc", "title": "Supercharge Your E2E Tests with Playwright-Network-Cache", "url": "https://vitalets.github.io/posts/playwright/playwright-network-cache/", "published_at": "2024-10-08T06:10:09+00:00" }, { "id": "01a08c5e-61ea-7124-a3c7-4af6e8599b42", "title": "Setting up Subpath Import Aliases in a TypeScript Project", "url": "https://vitalets.github.io/posts/typescript/subpath-import-aliases/", "published_at": "2024-09-01T17:23:27+00:00" }, { "id": "01a08c5e-61ea-7124-a3c7-4af6e8999fc4", "title": "Returning JSX from React Server Actions", "url": "https://vitalets.github.io/posts/nextjs/returning-jsx-server-actions/", "published_at": "2024-08-30T16:09:31+00:00" }, { "id": "01a08c5e-61ea-7124-a3c7-4af6e90596f4", "title": "Solving a problem of duplicate steps in Cucumber BDD testing", "url": "https://vitalets.github.io/posts/bdd/cucumber-duplicate-steps/", "published_at": "2024-08-08T08:05:25+00:00" }, { "id": "01a08c5e-61ea-7124-a3c7-4af6e9fc5e43", "title": "Introducing Playwright-magic-steps: Simplify your Test Automation Workflow", "url": "https://vitalets.github.io/posts/playwright/playwright-magic-steps/", "published_at": "2024-07-18T08:20:42+00:00" }, { "id": "01a08c5e-61ea-7124-a3c7-4af6ea3d8215", "title": "✨ Generate BDD tests with ChatGPT and run them with Playwright", "url": "https://vitalets.github.io/posts/bdd/chatgpt-playwright-bdd/", "published_at": "2023-09-18T09:43:18+00:00" }, { "id": "01a08c5e-61ea-7124-a3c7-4af6eaed6336", "title": "What's wrong with Promise.allSettled() and Promise.any()❓", "url": "https://vitalets.github.io/posts/javascript/promise-allsettled-any/", "published_at": "2019-07-17T10:36:23+00:00" } ] posts Claim your blog
Back to vitalets.github.io
Blog · corpus.blog/blogs/vitalets.github.io/posts

vitalets.github.io

vitalets.github.io

2026

2025

2024

2023

2019