The Busy Developer's Guide to Publishing Your App Into the Chrome Web Store

You're busy, I'm busy, let's get right to it.  I'm writing this blog post for a buddy of mine who has an awesome app that would do great in the Chrome Web Store.  He's crazy busy, so he needs the "just tell me what to do" guide, so here we are.

Wait, what, you haven't heard of the Chrome Web Store?  Are you a web developer that writes awesome web apps and wishes there was a great consumer marketplace to distribute and sell your apps?  Yup, that's the Chrome Web Store.  That's what I thought, you want in on this.

We're going to assume you already have your app.  If not, go build an amazing HTML5 app.  I'll wait.

Got your app?  Good, let's go.
  1. Create a Google Account.  You might even have one, and you don't need a GMail account.  This Google Account will be used to publish your app, so you might want to create a role account, not tied to a specific person.
  2. Create a directory and name it something like my-app-rocks.
  3. Write a manifest file describing your app.  In fact, use the template below, and swap out the details.  You can do a bit more with the manifest, like request extended permissions, but this is about getting your app into the store ASAP, so copy and paste here is your friend.


    {
      "name": "YOUR AWESOME APP NAME",
      "description": "IT MAKES DOUBLE RAINBOWS",
      "version": "1",
      "app": {
        "urls": [
          "*://YOUR.APP.COM/URL"
        ],
        "launch": {
          "web_url": "http://YOUR.APP.COM/START/PAGE"
        }
      },
      "icons": {
        "128": "icon_128.png"
      }
    }


    • the app/urls should end with either a / or a path. for example, don't end your url with just .com
    • web_url should point to "inside" your app, not your app's front page. The front page is usually some marketing or intro page, and you can assume the user already knows this stuff.
    • You only need to list the app/urls for your app's pages, don't worry about CDNs for your assets or AJAX calls, or whatever.
  4. Place this manifest file into my-app-rocks directory.
  5. Create a 128x128 PNG icon for your app. The Chrome Web Store docs have helpful guidance on image creation and usage.
  6. Place this icon into the my-app-rocks directory.  Make sure it's named icon_128.png, matching the name from the manifest file.
  7. Create at least one great screenshot of your app.  This does NOT go into my-app-rocks.
  8. Verify your domain with the Google Webmaster Tools.  Why?  I thought you were crazy busy?  OK, domain verification allows you to prove that you own the domain, which allows you to prove that you are publishing the "official" app for this domain.  Also, we recommend verifying your domain via DNS.  Plus, you should verify this domain with the same Google Account you intend to publish your app with.
  9. Zip up my-app-rocks to create a my-app-rocks.zip.
  10. Go the the Chrome Developer Dashboard. Sign in with the same Google Account that you verified your domain with.
  11. Click "Add New Item" and upload the my-app-rocks.zip.
  12. Enter the following required information:
    1. upload the 128 icon again (I have no idea why you need to do this).
    2. upload the screenshot of your app.
    3. choose a language.
    4. link the app to your verified domain.
    5. choose a category.
  13. Publish.
  14. Pay the $5 registration fee.
  15. Ok, now actually Publish.
  16. Done!  Yay!
Bonus Points:
  1. Integrate with OpenID and auto create your user's account.  Single Sign-On FTW!!
  2. Upload multiple app screenshots.
  3. Link to a YouTube video for your store page.
  4. Add Analytics to your store page and app.
  5. Upload a background image for your store page.
Hope this helps.  This process should really only take 30 min if you have your icon ready.  So go upload and see you in the Chrome Web Store!

Once you're in the store, there's lots more Chrome Web Store resources and documentation to review once you're not so busy.
6 comments

Popular posts from this blog

Converting Array to List in Scala

I ported a JavaScript app to Dart. Here's what I learned.

Minification is not enough, you need tree shaking