 Let's dig in. One of the most popular and common inquiries I get is about headless testing. It's something that everybody seems to be really interested in. And so there's a couple of different ways that are recommended to get started with doing it. And so, but let's talk about the benefits real quick for those of you that aren't familiar. So there can be speed benefits because you're not dealing with latency potentially of connecting across the internet to a grid or remotely to a grid and dealing with potential spin up times. And then potentially it's less maintenance because you're not maintaining like a robust complex array of browsers and machines. And then you still also get the benefit of screenshotting. So effectively you get, you know, it's kind of a nice trade off. So easier to maintain a little bit faster in some cases and you still get screenshots. So you can get screenshots when there's failures. And then there's actually a lot of different headless browsers and I'm going to talk about two different approaches. But at this link here is a list of kind of every available headless browser with all different kinds of rendering engines and so on and so forth. And I'll make sure to post my slides to the comp engine after the talk's over because it's just a chock full of links and some code examples. So the first one is using a virtual frame buffer and it's called XVFB is the common one that people use. And each tip has a link to where it is on the web. Unfortunately, the only ones that are available on the web right now are just Ruby but all the code from all these tips has been open sourced so it's easy to get access to. But XVFB is, apologies for the tiny font, it's short for X virtual frame buffer and it's an in memory display. And so it really only works on Unix like operating systems so Linux and Unix derivatives and it enables you to run graphical applications without a display. And so while also preserving the ability to take screenshots. So you'd use it because it's ideal for running small test suites on a headless machine. So if you have like spun up a Linux machine and running Jenkins and you wanna stand up Firefox or Chrome, you could quickly just use XVFB to have it actually pipe out, run a browser in a virtual frame buffer, take screenshots if there's failures and then shut everything down. So that's pretty much the use case for this. And option one for doing this is you'd have to start XVFB on a specific display port and then you would background that process and then you would tell the terminal which session to use for that display port and then you would run your test. So basically you're creating the virtual frame buffer connecting the session to it and then running your test and it magically finds where that is. And then it'll keep, in this approach it'll keep XVFB running until you actually close down the application. Alternatively there's actually a binary for XVFB called XVFB dash run that enables you to use that prepend it for the command you're gonna launch. So it'll start the session, do all the stuff for you with a display port, run the tests and then it'll actually close XVFB when it's done.