Mosaic gives back to the Alexa open source community

Cheng He
4 min readAug 18, 2016

Meet Mosaic

Mosaic is a chatbot for your connected devices. It allows you to connect your smart devices and digital service together in one place. Using the Echo, Facebook Messenger, Slack and SMS, Mosaic makes interacting with your devices as easy as chatting with a friend.

I still remember the moment when I first unboxed the Echo and started playing around with several of its features; I was totally amazed by the experience. The second day I began looking at the development documents and the more I read the more excited I got, it became clear to me that Alexa, Alexa Skills Kit (ASK) and Alexa Voice Service (AVS) are the future.

Two days later I built my first Alexa skill on AWS Lambda by following the official “alexa-skills-kit-color-expert ” template which used the Echo to control a LIFX smart light bulb in my home. It powered it on and off, changed the colors, brightness and scenes. At that time, there were only five skills in the Alexa app and the Alexa Developer Forums helped us a lot to find resources and explore new things.

Open source community

A couple of months later, we saw more and more skills were being published in the Alexa app, but most of the skills were just the type that would answer questions. We thought why aren’t there any skills to perform tasks that help users manage their connected life? So, based on my first skill that was controlling a single light bulb, we started aggregating more devices and services on top of it and began crafting the product.

Back in October 2015, there wasn’t an Alexa Skills Kit for Node.js, which has just been released in July 2016. We were lucky enough to find Matt Kruse’s Node.js module for Alexa which happened to be the first Node.js module built for Alexa. The module is really easy to use and simplified the request handling and response generating a lot. It provides convenience methods to more easily build the response, handle session objects, add voice/visual cards and even SSML tags. We are very grateful to Matt and the open source community for the Alexa platform as they really helped us.

Cool things we have built

With us actively developing Mosaic, our team became contributor to alexa-app. We even helped to pull out the Alexa utterance section from that project and build an individual module called alexa-utterance, which allows you to generate many sample utterances from the schema definition in the alexa-app. It is really powerful and you can check it out here.

When we found out that HTTPS requests from Alexa needed to be verified if we hosted the skill on our own servers, we built another module called alexa-verifier to simplify the validation process of HTTPS requests from Alexa.

To give back to the open source community that helped us so much, we shared the two modules we built with them. One of our developers Mike Reinstein developed both those modules and we’re very thankful for his hard work. As of March 2016, our open source modules have been referenced in the Big Nerd Ranch series on the Alexa blog.

Another cool thing we built during the development process is the Alexa service simulator. The reason we built it was because we gradually felt it was getting complicated to develop features, deploy them to our servers and then test them. To simplify the development process, we built our own simulator in the service code to simulate the Alexa request to the skill server which is running locally. To use it, we just type the utterance into the terminal to debug the code locally without any hassle of deploying code on the server and testing it with the voice or skill’s service simulator. Once the request has been served, we get the JSON output back in the simulator terminal. We hope one day, to pull this module from our service code and share it with the community as well.

Multi-platform

Sometime around January, we found a lot of use cases were actually context based. Instead of just using the voice interface with their connected devices and services though Alexa, under certain contexts, text based chatting turned out to be much more convenient to end users to get things done. With that in mind we started hacking on our first text based chatbot on Slack. We currently have chatbots on Facebook Messenger, Slack and SMS, as well as one voice chatbot on Alexa, the Mosaic skill to help users interact with their connected life.

Connect with us

Mosaic is a very dedicated team and are passionate about working on the technology that helps people to interact with their growing number of connected devices and services. It’s been an awesome experience working with Alexa and we’re excited to be a part of it.

--

--