Quickstrom

Subscribe
Archives
June 18, 2020

The first WebCheck update!

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

Don't miss what's next. Subscribe to Quickstrom:
This email brought to you by Buttondown, the easiest way to start and grow your newsletter.