GitHub Browser check synchronization goes into public beta


One of our goals here at Checkly is to make it easier for developers to ship excellent software. But let’s face it, getting features out is only a tiny fraction of the story. Fast-moving development teams also break things. And the more things you build, the more things can go wrong. And trust me, they will.

This is where API and end-to-end monitoring helps. Define automated test suites that check all your properties constantly and guarantee that everything’s up and running. All the time. And if not, you, and not your users, will know about an issue immediately so that you can move fast and resolve problems.

Especially synthetic monitoring, using headless Chrome, enables you to step into your users’ shoes and test critical interaction flows on a schedule with JavaScript. But where do you store and write this JavaScript?

So far, Checkly has allowed you to write your headless browser scripts right in the Checkly UI or use Infrastructure as Code (IaC) providers such as Terraform and Pulumi to put your monitoring setup in code and control it the same way as your infrastructure.

But not everybody uses IaC in their projects. So the question is: is there another way to use Checkly and have your browser automation scripts in code?

We have some news for you!

Say “Hi” to GitHub Sync

We worked hard on a new feature that allows you to automatically synchronize your Browser checks from GitHub. With Checkly’s GitHub Sync you can now develop your Playwright or Puppeteer scripts locally, link them with Checkly and keep them updated via Git.

Your application and monitoring code stay in sync and the feature allows you to streamline your development workflows. Update your Browser checks on GitHub like all your other code.

If you want to learn more about it, here’s a quick explainer video.

But let me share some highlights about the new feature.

Define your code sync strategies

We learned that fetching new code after a "git push" (“Sync on commit”) might work for some but not all of our users.

Consider a scenario in which you push updated application and monitoring code to GitHub. Your Git commit triggers a production build that takes ten minutes to succeed. If Checkly now fetches your Browser check code right away, your application and monitoring setup are out of sync for ten minutes. This state can result in needless alerts. And to avoid waking people up for no reason we implemented another syncing strategy – “Sync on deployment”.

This syncing strategy holds the file synchronization until a deployment finishes and only then your Browser checks are fetched and updated. Your monitoring code “goes live” with your application code so that nobody has to check false alarms.

But there’s more!

Reuse code and load local file dependencies

My absolute favorite feature is that GitHub Sync allows you to use local dependencies. Let’s look at an example.

Suppose you have multiple Browser checks that monitor and test different areas of your website. And while these checks test different functionality they’ll probably share configuration and utility functions. Maybe you want to run all of them with a particular user agent header or they all perform the same login step. These situations scream for keeping things DRY (Don’t repeat yourself) and extracting logic.

With GitHub Sync you can place shared logic into separated files and "require" them using JavaScript. When Checkly then syncs your Browser checks it resolves all your local dependencies. Structure your code the same way you do on your machine.

Do you want to see it in action? We’re dogfooding this approach on and you can find a setup with local dependencies on GitHub.

Give us your feedback

As you’ve probably noticed, I’m very excited about GitHub Sync and I’d love to hear what you think. Head over to the GitHub Sync docs to learn more or give us your feedback on GitHub.

I can’t wait to hear what you think and happy syncing!


Recent posts

Don’t miss any updates

No fluff, all relevant product updates & long form content. 🍍