What's the hardest part in building an internet-connected product (or say IoT product)? It is the complexity of development process, you gotta work on such a huge and diverse technology stack that building such products is a huge mess in the first place and then later comes the scaling (building multiple copies of your product for selling). This is the primary reason why so many IoT startups fail. I understand this because I have been there.
I started Grandeur with my friends when I was a sophomore and was pursuing electrical engineering. It started like a project. We were in love with home automation and wanted to make our home smart (like Jarvis in Iron Man). We built a smart socket board – with relay switches, regulators, and bluetooth modules – through which all connected appliances could be controlled with a laptop on bluetooth and we replaced the one in our dorm. Then we built some for friends and then some friends of friends and that's how it grew out to be much more than just a project.
We got excited about it and turned it into a business venture and got it incorporated. We wanted to sell our product to a wider audience. This is where we realized that this isn't it, yet. We needed an app so that our users could control their appliances remotely (that's the value addition in the end). We wanted to do it over internet instead of bluetooth (because pairing and managing bluetooth devices wasn't so cool in 2016 - BLE modules weren't so popular and widely available at that time). So we needed a server as well. But it wasn't our thing, we were the hardware guys and it took us an entire year just to figure out our stack (the app, communication in real time, and database). By then we were like done financially, burned up before getting our products to the market. This hit us hard and we decided to do something about it.
ONE YEAR LATER...
A backend as a service platform for IoT so that developers and startups could build, scale, and manage all aspects of their IoT products from one place.
Developing an IoT product spans over various technologies. You need your own hardware because that's what you are gonna sell, you need an app (dashboard) for smooth monitoring and control, a real-time web communication medium and you need a database to keep logs, persist states, and sync everything up. This is what makes building such products incredibly hard and it takes massive amount of money and time to get into your market.
Doing it all by yourself is neither feasible nor scalable, which is why various technology companies tried to address this problem. All the major cloud computing companies (Google, AWS, Azure) came up with their own IoT solutions. Companies like Wia and Particle came up but it is still quite a bit of mess. Why? Because these companies and services solved just one or two aspects of the IoT product development so you still end up with mixing and matching many services together to help you with your entire stack.
As an overview, it works this way:
You create an account at Grandeur and then create a new project. Project works like your workspace with a unique ID which we call the API Key. Each project can have multiple users and multiple devices and each user can own/pair more than one devices. It is illustrated as below:
A user is an entity that defines the person using your product, aka. your customer. A customer buys your hardware device, installs your app from android/iOS app store or from your website, signs up on the app, and pairs the device they bought with their account using the app. Pairing binds that device with the user's account and now they can control/monitor that device. Pairing process is similar to declaring the ownership of a device and a device can only be paired if it is not already paired to some other user. While you have full control over your project and its users and devices, your customer has scope limited to its own profile and to devices paired with it. A customer can sign up from your app that you build using the App SDK or you can add a user directly from the dashboard.
Devices are the things around which the IoT product development revolves. Each device comes with a storage space where its realtime data is stored as key-value pairs. To read a device data, paired user would get data from there and can send update that data as well which would then be updated to the hardware device. And you can register your new batch of devices from dashboard.
To take a start, login to Grandeur dashboard web application with your account and create a new project just like this
Then using the client SDKs, we can start building our first application with which we will send data to a device.
What is next?
This is a product by makers for the makers. It is very easy to start: just follow our docs or watch our tutorials. But don't worry, this is just the beginning. We are coming up with a series of tutorials on it, so stay tweaked. Catch up with us on discord or you can always write us at firstname.lastname@example.org.