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:
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