I’m really excited about Blockstack and its objectives, it also seems to fill a need for the app I’m developing (managing user authentication and providing user-controlled storage). However, the actual on-boarding experience is horrific. If I’m struggling with it, so would my users and that’s a concern.
First, there’s too much ambiguous terminology being used. Figuring out what blockstack is and does is a task. Then you have to figure out how it works in practice and things get more confusing still. Is Blockstack browser necessary to use the technology? What is it, anyway? A browser like Chrome, Brave, Firefox? When you actually install it, it’s not clear what is being installed. It’s not obvious that it works with an existing Chrome browser, but isn’t an actual browser itself. I have multiple browsers installed, so I’m not sure it works across each or what it depends on. Will things work if I try to log in from any browser I use? None of this is clear from the outset.
I had created a blockstack id some time ago, which involves storing a string of words (the secret key). Fine, not a typical registration flow, but I’m thinking this will be something you use to retrieve access if you forget something about your account. Then I tried to log in at a later date and select the ‘log in with existing ID option’, expecting an ID + password combination. But instead it asked me for the secret key. Why? The screen isn’t telling me why. Once I plug that in, it wants to know my email and then it’s requesting I setup a password. Why? I have the password and ID at the ready. I haven’t done anything since I first created the ID. Why am I being asked to set a new password? Just more confusion.
So then I go along and set the password again. Am I good to go? Let’s try entering into an app. I click login with Blockstack and I get a window asking me to open the link with Office? What the actual? Reading the forum it seems like this issue was first reported a year ago. Okay, no fix shown but apparently you can click the office option and it will work regardless. But when I do, it just returns me to the same darn login screen. Clicking sign in with existing ID takes me through the same screens I went through earlier. Instead of smoothly logging in with my ID and password, it tries to send me back through entering the secret key and defining a password. I want to badly give up at this point. This shouldn’t be this hard.
Then there’s the blend of terminology used in the project. My first thought was, what the hell is app mining? Is it like bitcoin mining? Is whatever I’m going to install going to eat up computer processing time (which sounds awful)? It’s a pain trying to figure out that app mining is not remotely the same as bitcoin mining. I really think this was a poor choice of nomenclature and introduces more confusion and a bigger investment in time to just grapple with what we’re dealing with. This lack of simplicity and clarity is lacking elsewhere as well. If I’m struggling with it as an app developer, people who are just general users of apps are certainly not going to have it easy.
Lastly, since many app developers who are creating offline-first experiences will be using Electron, it was disappointing not to see a clear guide to getting set up with Electron and Blockstack. Researching this has left me even more confused.
tl;dr Please improve the on-boarding experience for both end-users and app developers by clearing away ambiguity, improving the messaging and making an easier path to adoption possible.