June 18, 2020, 7:20 a.m.

The first WebCheck update!

Quickstrom

Hi everyone,

It’s been a week since a launched the site and this newsletter. There’s been a lot of positive feedback and great ideas already. Thank you all for signing up!

I’ve been working on the user-facing language for writing specifications. It’s based on PureScript, but with different language semantics, essentially making it a restricted, propositional, linear temporal logic. It might be that it evolves into a first-order logic later on. In any case, the interpreter now works on the specifications I’ve defined previously, finding the same bugs.

PureScript

A language based on PureScript might seem a bit daunting for newcomers. But it lets WebCheck rely on PureScript’s great type system and developer tooling already available. I originally planned on writing a custom DSL, but it would take weeks or months to get it even barely usable. I believe this is a great starting point.

There are no effects in WebCheck specifications, so you don’t have to learn about monads and whatnot. A specification is essentially a boolean expression, and DOM queries are pure expressions. It’ll be more like writing a rather large conditional expression.

Further, using PureScript makes it easy reuse existing packages in WebCheck. Already, the following packages, and a bunch more, are available:

  • prelude
  • numbers
  • strings
  • arrays
  • foldable-traversable
  • transformers

The plan is to integrate a PureScript editor in the WebCheck SaaS, with documentation, troubleshooting tools, and so on. I’m very much looking forward to building this stuff!

Licensing

I’ve also worked on licensing, as I want to open source the core parts of WebCheck, even there’s a closed-source commercial service on top. If you’re interested in what’s going on here, I have a draft that explains my current plan. Ping me on Twitter and I’ll send you a link.

Next Steps

This weekend is going to be busy with Midsummer holiday, but next week I’m going to focus on:

  • improving the TodoMVC specification
  • internal refactoring and clean-up
  • running with other browsers than headless Firefox
  • start on the web GUI

Have a nice weekend!

Oskar

You just read issue #1 of Quickstrom. You can also browse the full archives of this newsletter.

Share on Facebook Share on Twitter Share via email
Brought to you by Buttondown, the easiest way to start and grow your newsletter.