The Chrome Web Store Feels 5 Years Old05 Nov 2015
I initially wanted to write this post about my experience building a simple Google Chrome extension, EmotiClean, and with putting it on the Chrome Web Store. However, my initial excitement from building it wore off quickly as I had to use the outdated interface of the web store, specifically the developer dashboard. In this post I will try to outline and articulate my frustrations and attempt to provide better solutions. I might even add a few “dream features” at the end. Let’s get started.
Using the Chrome Web Store, I had one thought running through my mind: “This feels like it hasn’t been updated since 2010.” Here’s the blog post from when Google announced the Chrome Web Store. Most importantly, it’s date stamped May 19, 2010. As great as I felt that I nailed the date on the head, I was disappointed that it was true. Well, I guess I can’t say that I know for a fact that Google hasn’t updated the Web Store since 2010, but it’s clearly outdated. Digging a little deeper, I decided to fire up the good old Wayback Machine. The earliest entry for the url chrome.google.com/webstore is from May 2013. Here’s a screenshot of what it looked like then:
For reference, here’s a screenshot of what it looks like now:
As you can see, very minimal UI changes. The general layout remains the same. I guess I shouldn’t dwell too much on the general UI because it’s really not that bad.
Let’s get into my specific criticisms.
The actual extension page is a modal. I’m almost ragequitting right now. If you’re not familiar, modals are usually used in a good UI as a popup of sorts. Maybe a confirmation message, maybe if you’re entering a date into a form. I’m no UX wizard. This stackoverlow post has a few good tips on when to use modals. I think it’s clear enough that the main content of the page you’re viewing should not be displayed in a modal. Imagine if in your email, to view an email, it opened it in a modal on top of your inbox. Does that make sense to anybody? If it does please comment and tell me why.
Inside the modal, there are four main tabs: Overview, Reviews, Support, and Related. I’ll break down what’s in each tab.
Overview gives primary focus to a set of screenshots. The idea appears that these show off what the app looks like in use. I think you can also link a youtube video of the app in use. I have a personal belief that a screenshot is one of the worst ways you could demonstrate functionality of a program. Screenshots can be enhanced by a brief description of what you’re looking at and that makes them much more useful, but the Chrome Web Store doesn’t support that. To make matters worse, the images automatically cycle inside of the modal tab. I think Google would do well to remove that altogether and just let me scroll when I’m good and ready, but I could also see why that may be a good UX choice. Another annoyance is the only way to cycle the photos is by mousing over the dots above. Arrow keys don’t work, neither does clicking the left/right side of the photo. The overview tab also contains some general information about the app, like version number and size. Seemingly, the most important element here is the description. This is where a developer can write about their app, what it does, how it works, etc. You should be well aware with general app store descriptions, it’s basically the same as the Play Store or Apple App Store. What’s confusing is that the description seems to be the least important element on the page! Literally the text is so small it’s hardly readable. Also, links don’t work here. In my case my app is open source, so I wanted to have a link to the Github repo. It’s still there, but you’re going to have to copy-paste it. I would love for the overview tab to at least give as much priority to the description as it does to the screenshots. But really, you’d have tons of real estate if you didn’t render the whole thing IN A MODAL!
Going on, next we have the reviews tab. It’s pretty self explanatory. You can rate an app out of 5 stars (half stars are not allowed). You can sort the reviews by either the most helpful or the most recent. To give the helpful rating, you can click someone else’s review and say it’s helpful, kind of like Amazon. It works well enough I guess.
The support tab is kind of interesting. It’s kind of like the reviews tab, but you’re supposed to send feedback to the developer. You can ask a question, report a problem, or make a suggestion. I kind of like this aspect. Generally with app stores feedback is given in the review itself, but here you have a more direct channel to the developer. The developer can also respond to questions here for all to see. Looking at reviews in the Google Play store, people tend to rate an app 1 star if there’s a small problem. I feel like having the feedback tab will prevent users from rating an app low just because they have a suggestion to make. As much as I like this and hope it works, I don’t think it does. Users do what they do and I still think most will leave a low rating if they had a problem and it’s still up to the developer to respond and try to pick up the pieces. At least the Chrome ecosystem isn’t even close to as fragmented as the Android ecosystem, so you don’t have to worry about a user leaving a low rating just because your app doesn’t work on their 5 year old phone. Overall my verdict here is that I like the idea, but I don’t think it will work, so get rid of it.
Finally there is the related tab. This acts similar to the way it works in the Play store: it just shows apps that are similar. So for an extension like uBlock, it will show a bunch of other ad blockers. Also on the related tab is a section for more from the developer. Again, very similar to the way it works on the Play store: it just shows other apps the developer has made. What’s unfortunate is that unlike the Play store, a developer doesn’t have a page that will show all their apps or give a little bio. I wish that existed. Also, most of the suggested apps seem to be irrelevant. I don’t know if that’s just because I don’t care about other similar apps, or if the Chrome Web Store isn’t diverse enough to have good suggestions.
Now lets go back to how much I hate the modal. On the left and right you’ll notice there are arrows. Clicking these makes it show another app’s modal. It appears that it will show the modal for the app next in the search results. This is totally unhelpful, and bordering on insane. Does Google honestly think their search algorithm isn’t good enough to show you what you searched for first? And if I really wanted to see what other apps came up in the search results, why wouldn’t I just close the modal and open them myself? Why would I want to blindly cycle through random apps with no rhyme or reason? It makes no sense to me. I literally can’t even.
There are four categories in the Chrome Web Store: apps, games, extensions, and themes. Apps and games are really the same thing. A game is an app, except that it’s a game. Uhhh that sounds dumb, but you get the point. Extensions are probably what most people use. uBlock is an extension, as is my EmotiClean. I’m not totally sure what the distinction is but I can take a guess. An app is really just a website packed into a little format Chrome likes and maybe works well offline. An extension is more like a little script that runs in the background. What’s annoying to me is that apps have a normal app icon like we’re all used to, but extensions have a little tiny icon embedded into a puzzle piece. At least that’s how it works in the web store, but once you have it installed it shows the full icon in your local extensions page. I have no clue why Google thought it was important to distinguish between apps and extensions. Who cares what the difference is? I just wish an extension looked like a normal app instead of some little plugin or something. It just seems unnecessary. Lastly, we come to themes. Self explanatory. Seems like when Chrome first came out themes were the hot stuff, but I haven’t touched a theme in years. Like any theme gallery, you’ll find lots of copyright infringement, Bob Marley, and bikini babes. Forget about it.
Now I’d like to talk about the actual developer experience. Signing up for a developer account was easy enough, but a little confusing. Somewhere I was told I’d have to pay a fee to sign up, but I never did. The main hub for your activity is the developer dashboard. Here you can add new apps/extensions, update existing ones, and other things. There are some features that I think are nice here, like the ability to have tester accounts (so you can let specific people test your app before it’s public), and the ability to allow multiple accounts to publish on your behalf (great if you work with a team). However, I think the dashboard is where the web store shows it’s age the most. I would be shocked if I found out this page has been updated since the store went live.
As you can see, I have two apps in my dashboard, both titled EmotiClean. Why do I have two you might ask? I have no idea! I think one came from when I was testing out uploading my extension. The problem is I can’t remove or delete the bad extension. It’s just there, unpublished, looking sad. If you know how I can remove it, I’d love hear how it’s done.
Apps are uploaded as a zip file. Easy enough, I guess. The icon used in the store doesn’t seem to be the same icons specified in the manifest file. That is to say that the icons in the manifest show up under your locally installed extensions, but the web store won’t automatically pull it. You must manually upload an icon image separate from the zip file of your app. Next, you can upload screenshots of your app. These are the images that show up in the overview tab. They can either be 1280x800 or 640x400 exactly. Not a pixel too big or too small. All I’m saying is that it would be nice if the web store would let me crop the image after uploading it. Currently it just fails. Also, once you choose an image to upload, it will start the upload process, but give you no indication that this is what’s going on. Suddenly, the page refreshes and you’re able to upload the next screenshot.
I can also upload promotional tile images. These are what show up in search results and when the web store features apps. There are a total of three, each their own size with the same limitations that the screenshots have. They must be the exact size. Again, a cropping tool or some indication of upload status would be nice.
You can specify a website that your app comes from. These are registered via webmaster tools, but in my case the sites I had bought from Google Domains showed up automatically, as did my long forgotten Google Sites pages. Initially this led me to believe that the store had been updated for compatibility with Google Domains, but thinking about it further I realized this was more a feature of Google Domains integrating with webmaster tools. So at least Google Domains works well I guess.
Lastly, there are options for specifying a language of your app, regions you want the app to be available in, and other general options like a mature content tag and an analytics id. Other than choosing a category for my app, I don’t think I had to mess with any of these settings.
At the very bottom there are four buttons: Discard Draft, save draft and return to dashboard, preview changes, and publish changes. This is the first time on the page the thing you’re working on is refereed to as a draft. So I guess discard draft ditches everything you’ve done and reloads the form as it was before you made changes. Save draft does just that: saves what you’ve done so far and sends you back to the dashboard, so you can continue working on it later. Preview changes takes you to a mock page for the app in the store so you can give everything a once over before making it go live. Publish changes makes the changes in your draft go live.
As far as improvements to the publishing and drafting process go, I don’t have many. I would like to see the changes be saved as you go so you don’t have to click “save draft”. I’d also like some way from the dashboard to see if you have a draft or not, and a way to remove the draft altogether. I feel like the the publish button should be removed, so you have to preview it before publishing it. Then on the preview page there would be a publish button. Having said all that, the current system isn’t that bad, but the draft process combined with the terrible image uploading makes this page feel very 2010.
Once I was finally able to click publish, I was taken back to the dashboard. Unfortunately I don’t have any images of this process. My app had a status of “pending” or “under review” or something like that for about a half hour. I have no idea what was going on during that process. After that, my app had a status of “published”. Attempting to view my app on the store didn’t work though. The name of the app in the dashboard is linked to it’s entry in the store and clicking on that link took me to a page that said something like “The app does not exist or is no longer available”. This seems fairly par for the course, but it was frustrating that as far as the dashboard told me, my app was live and ready to go. In reality, it was not. Why not leave the Sat’s as “pending” until all the refreshing has happened that will allow me to actually view my app on the store? It was needlessly frustrating for me to have my app in the netherworld, neither published or unpublished. I wasn’t sure if something was actually wrong, or if I just needed to wait. As a bare minimum, when the app is first published maybe have a little notice saying “It may take up to 24 hours for your app to appear in the store.”
Since I’m on the subject of web store links, let’s talk about that. The URLs for Chrome Apps are HORRIBLE. Here is the actual URL for my extension: https://chrome.google.com/webstore/detail/emoticlean/eocdedidpfdncgnfadiknoncllmeohcd?hl=en-US&gl=US. Let’s tear this apart piece by piece.
First, we have chrome.google.com/webstore. This is the direct link for the Chrome Web Store. Why? Why does chrome have to live as a subdomain of google.com? More frustratingly, chrome.com actually redirects to chrome.google.com! Why not let the Chrome browser live under it’s own domain? Sure, it’s a product of Google, but so is GMail and you don’t have to go to mail.google.com/inbox in order to check your email. When I share or tell others about my extension, I literally tell them to google “chrome web store” because it’s faster and easier than navigating to chrome.google.com/webstore. In my perfect world, the url would be simply store.chrome.com or chrome.com/store. At least it’s not store.chrome.google.abc.xyz!
Next we have /detail. Navigating to https://chrome.google.com/webstore/detail takes you to this page:
I’m no genius, but maybe instead of just having the page fail, take me to the Web Store homepage? I get that this is an edge case, but it just seems like you should show as few error pages as possible in an app.
Next we have /emoticlean. Cool, seems like we’re on track here! Let’s go ahead and navigate to https://chrome.google.com/webstore/detail/emoticlean. Guess what that page is? No, it’s not the modal page for my app on the web store. It’s the same error page as before! What is the purpose of /emoticlean/ in the url if it doesn’t do anything? Why? Sure there could be multiple apps named emoticlean, but something has to give.
Now we have the most inexplicable part of the url: /eocdedidpfdncgnfadiknoncllmeohcd. We are now at the point where we can navigate to https://chrome.google.com/webstore/detail/emoticlean/eocdedidpfdncgnfadiknoncllmeohcd and have it actually take us to the modal for my extension. This is totally unacceptable in my opinion. If I want to share a link to my extension with someone, I have to send them https://chrome.google.com/webstore/detail/emoticlean/eocdedidpfdncgnfadiknoncllmeohcd? That’s 85 characters. At this point, if I want to share the link it’s in my best interest to shorten it with goo.gl and share that link instead. Again, I’m not a genius but I believe that the engineers at Google are. There is no excuse for this! If you think there is, please educate me.
Last up, we have the URL query string: ?hl=en-US&gl=US. Looks like it’s just saying speak US English and I’m in the US. I’m not totally against this, primarily because I can remove it from the URL and the URL still works. That being said, it may be nice if instead of URL parameters this information was stored as a cookie or session data.
A complaint isn’t much good unless a suggestion comes along with it, so how do I propose Google fix the web store URLs? I would love it if they followed a Github like link. My extension would have this as a link: store.chrome.com/catskull/emoticlean. Maybe even remove the store. and have the app be smart enough to detect if a user name or extension was passed into the URL. That way I could simply type chrome.com/catsull/emoticlean.
I mentioned before, but I’ll say it again here: I’d also really like a page dedicated to a developer. I could have my own little gallery of apps and extensions I’ve made. That would just be nice.
Maybe you think I’m overreacting to all of this. The web store isn’t that bad. It works. It handles app updates very well. Well, most of the time. I published a new version of my extension and to get it working properly I had to uninstall and reinstall it. Ouch. That being said, at least it updated automatically and fairly quickly after I published the changes. I can’t say how nice that is.
I think the reason I’m so frustrated by all of this is because there is a place that solves almost every complaint I have with the Web Store, and guess what? It’s even made by Google! That’s right, I’m talking about the Google Play Store. While it’s URLs aren’t much better than the Chrome Web Store’s, it does have coherent app pages, handles reviews and suggestions very well, and even has a page dedicated to a developer! It wasn’t always like that though. Anybody remember the Android Market? It started as just Android apps. Then they added eBooks. Then they added Music. Finally, in 2012 Google combined all of these seperate stores into one nice place: the Google Play Store. It seems almost natural that Google would have included the Chrome Web Store as part of that merger. As we know, it wasn’t. It almost breaks my heart that it wasn’t because it would have been so easy, and so nice to do.
This transitions nicely to a place where my frustration almost turns to rage. You’ve probably seen the news, but if you haven’t recently a Wall Street Journal article claimed that Google was preparing to merge Chrome OS and Android into one OS. That news was met with nearly universal disdain. Fortunately, Google refuted those claims in a blog post. I don’t doubt that Google is committed to Chrome OS. Why? Because it makes them tons of money. Don’t get me wrong, Chrome OS is so good is so many ways it’s almost hard to believe. What I’m not totally convinced on is how committed Google is to Chrome. At the end of the day, Google is a business that wants to make money. As much as their marketing team wants you to believe they’re a bunch of philanthropists, the fact that they’re a publicly traded cooperation that has to answer to shareholders proves that at the end of the day they really care about money. I’m not trying to say this is a bad thing, but as a user who has used Chrome literally since the day it came out, before the web store, or extensions, or even before it supported FTP, I’m frustrated. I follow many members of the Chrome dev team on Twitter. They’re doing great things and taking big initiatives to keep the web open and secure, while at the same time progressing it. I think that’s why I’m so frustrated. I don’t expect Google to put as much time into the Chrome Web Store as they put into Chrome OS, but I do expect them to put some time into it.
Even more, the very blog post that refutes the Chrome OS-Android merger highlights a feature of Chrome OS: ARC. The ability to run Android apps on Chrome OS. I can’t keep it straight, but I don’t think this feature is available on standard Chrome browsers yet. It seems like I read somewhere that this feature was coming to standard Chrome. But it’s a fact that Android apps on Chrome OS is a feature Google is pursuing. What better time than now to finally kill the Chrome Web Store and put it in it’s rightful place: the Google Play Store. Even in the Chrome Web Store itself there is a section for “Available on Android” that highlights Chrome apps that also have Android apps. Sure, maybe it will be confusing to have Chrome apps alongside Android apps, but surely not much more confusing than having devices there too. It would be a simple distinction. More than anything, it seems like Google is invested in the Play Store. While they may not be focused on improving Chrome apps and extensions, hopefully at least the UI improvements would transition over.
I think it’s time for Google to let the Chrome Web Store out of the cellar and bring it into the light. But if you disagree, please let me know why! You can reach me on twitter @davidwdegraw, email me at firstname.lastname@example.org, or just comment here.