About two months ago I purchased my Amazon Echo and I must admit that it has been one of the most exciting pieces of technology I’ve seen in the last few years.
I noticed more and more people talking about the Amazon Echo and mentioning the “App Store” for Alexa Skills:
I love my Amazon Echo as a user and I was waiting for an opportunity to build something useful, and exactly a month ago I found it.
On one of my random commutes on the Caltrain I noticed people missed the train because they arrived at the last moment. One of the reasons is the lack of a simple place to see a real-time schedule. I messaged my friend and we started prototyping a solution, after quick prototyping and a working POC we decided it is possible to build a better solution and because we will need a server to process all the real-time data, we will leverage this knowledge to build an Alexa Skill and a Slack bot later.
The app was launched last week. While a lot of people criticize the Apple App Store review process, it was really fast and Apple helped us ship two fast bug-fixes and improvements quickly (David Smith & Marco Arment — Under the Radar #19 #20 #21).
A few weeks before the iOS app was ready we started working on the Alexa Skill. The idea was to build a simple one interaction to check when the next train is, with specified “from” and “to” stations.
Making a quick prototype was really easy. The inputs to the API are “from” and “to” stations and the outputs are time left in minutes and if the train is late.
To make an Alexa Skill you will probably need to do the following 2 or 3 steps:
- Add a new skill on the Amazon Apps & Services Developer Portal.
- AWS Lambda function (I tried without it but eventually gave up).
- Some kind of API that will do your wanted logic (You might do it on the Lambda).
The strange thing here is that when you send your skill for review, Amazon can only review and lock #1 which includes all of the settings for your skill, the supported commands, some keywords and the information about your skill.
While people might argue that you can send an app to Apple for review and later change it completely from your backend. It is uncommon for people to do so. With Amazon Alexa Skills, you can update your response at any time. I am unsure if they monitor your updates and review them later.
When we had something working we shipped it for review and went back to work on the iOS app while we waited for a response from Amazon.
After few days we got rejection email #1:
We fixed it and we got rejection email #2:
And rejection email #3:
Eventually the review process improved the skill, but it was funny getting 2–3 random problems after 3–4 days of review.
About a week ago it was finally approved!
Finally we got it in. Now the question was where will people find it?
To install a skill people need to have the Alexa app on their phone, this app is not a native app but some kind of web app and it’s really hard to navigate and use. While the capabilities of the Echo are remarkable, the app experience is very poor.
One important missing thing in the skills store is selling skills, currently everything is free. You can use your login and handle everything by yourself, but without a real business model for developers, I can’t see skills as a real game changer. Only small skills like ours and add ons for already existing services are possible.
A few days later, while the skill was already live in the skills store, we got the following email:
In some ways this email made sense, but why would it happen after it was already live?
I just want to mention the fact that 3 business days had already passed and we got the new skill running while the old one is still live. At this point, people will find 2 skills and won’t understand what is going on.
The funny story here is that the submission with the different name was rejected on the first try because of a new reason:
After fixing that, the skill was approved and now you can find both “Caltrain” and “Next Train for Caltrain” in the skills store.
I’m not trying to say anything bad here, I am just trying to share the process we faced to help other developers develop more skills. Amazon Alexa Skill review process will probably mature and get better and the Alexa Skill store will eventually improve.
I do want to mention something good about it, after the 5th rejection email we wanted to stop working on the skill. Why would we work so hard if no one was using it? It turns out someone was using it!
I guess that this tweet was the most important piece of evidence here. People actually use the Amazon Echo and if you build something useful they will find it somehow, and for each rejection and struggle you have on the way the only thing you need to think about is your users and their best interests. Not about anything else!
Please feel free to comment, tweet or email me.