Day 282: Just One More Thing

Every time I get close to actually doing the thing I’ve been telling myself to do for weeks, a little voice shows up in my head.

“Wouldn’t it be so much nicer if it you added that one feature though?”

At first I put up some resistance, saying that I’ve been doing “just one more thing” over and over again for the last four months. And then I succumb.

In a previous post, I described how Browserflow will likely have two types of people using it: “creators” and “users”. (I tried to find that post, but I’ve written so much about Browserflow at this point that I can’t find it. Woe is me.)

Creators are people who will spend a lot of time building flows in Browserflow.

Users are people who will want to simply use the flows built by creators.

Up until recently, I’ve directed most of my attention towards improving the creating experience. I want to make it as painless as possible to build flows so that (1) creators will build more flows and (2) more people will become creators. The idea is that if I make it extremely easy to build flows, more users will become creators which will be better for the Browserflow ecosystem because there will be many more flows for people to use.

As I’ve been working on the sharing flow where someone can import a shared flow to use themselves, I’ve been thinking more about the experience for “users”. That is, people who might not be interested or confident enough to build their own flows but still want to use flows that others have made. How do I make it easy for people to not only create flows, but run them?

A week ago, the little voice whispered, “What if people could run a flow from any site through a command palette?” This is the idea that I referred to in my post about the different types of automation.

So while I set this week’s goal to publish and share flows, I ended up building the thing because I’m a sucker for “just one more thing”.

And this time, it was a baller idea.

Here’s a demo of running a flow that automatically looks up an archived version of an article to bypass the paywall:

Setting aside the ethics of bypassing paywalls for a minute (this is one of the things I do that makes me feel iffy because while my individual action doesn’t make a big difference, publishers would have go out of business if everyone did this (sup kant) and I should support this business model that isn’t reliant on ads because ads are the worst and create terrible incentives that harm society but I don’t really want to subscribe to every single one of these publications every time I click on a link from Hacker News because that’s a lot of subscriptions so maybe I just shouldn’t read it but does it really matter and so much for setting aside the ethics here, eh?)

ANYWAY. With this change, a search box appears if you press Alt + J and lets you run flows extremely easily. It feels like a game changer. The use cases for Browserflow open up a ton with the decrease in friction of running a flow. Instead of being suitable mainly for one-off tasks like scraping sites, Browserflow can be used for things you might do dozens of times a day. For example, taking a screenshot of an element is just a few keypresses away compared to having to open Browserflow, look for the “Screenshot Element” flow, and either clicking on the play button or opening it in edit mode before running it.

But now that I’ve built this one thing, the assumption that I’ve had that the user would run flows from the editor popup is no longer true and there are other cases to handle:

  • What if the flow quits due to an error while running? Shouldn’t that trigger a notification or a message on the page so the user knows what happened?
  • Should I keep the state of the run (logs, variables, output, etc.) if the flow is run from a page? What’s the point of keeping that state around and fattening up Redux’s store if the user most likely won’t even look at it?

And then there are the other ideas that come to mind:

  • I should make it easy for people to let others customize flows by providing a way to set configuration variables
  • It’d be sweet to let people select options from a menu so that running a flow can have run-time configurations

And so on.

Will I ever finish the gallery?

Will I ever launch Browserflow?

Am I spending all my time building vaporware?