Skip to content
Switch branches/tags
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Backers on Open Collective Sponsors on Open Collective Gitter BSD license Build Status

The Grow-IoT project is managed as a mono-repo with a bunch of seperately published packages such as:

See our basic Raspberry pi example to get started with devices.

Installing Grow-IoT

You need to install Meteor first (if you haven't already).

You will also need to install yarn, which we use to manage all the packages that comprise Grow-IoT!

You will also need to install yarn, which we use to manage all the packages that comprise Grow-IoT! See the yarn website for platform specific installation instructions.

Then clone the repo and enter the new directory:

git clone
cd Grow-IoT

Finally install the needed software dependencies:


Start the Grow-IoT server with the meteor command:


And that's it! Visit http://localhost:3000 with your browser of choice; you should now have the application running.

Connecting devices (or virtual things)

Create a new device (click the '+' button) and create a device. Enter "test" for both the uuid and token. Then run the mock device driver (in a seperate terminal):

node packages/Grow.js/examples/test-grow-hub.js

You can find the ui component for this device in imports/app/components/things/Device/Device.jsx.

Connecting sensors and actuators

In the packages directory, we've started 2 libraries to help you connect sensors and actuators and create grow systems out of them.

  • Thing.js: A general purpose internet of things library... basically a fancy event emitter
  • Grow.js: extends the Thing class with a bunch of useful things for growers like scheduling, registering listeners and alerts, etc.

Hardware examples live in those packages' examples folder. Corresponding UI components live in imports/things/.

See Thing.js for more info on creating and connecting devices.

Adding custom components

To do so:

  1. Make a new CustomComponent.jsx file in imports/things/' or npm install package-name if the component is published on npm.
  2. Open imports/app/components/things/index.js.
  3. import CustomComponent from './CustomComponent'
  4. Lastly, add CustomComponent to the exported components object.

Example devices and grow systems:


In the repo you'll find the following directories and files:

File/Folder Provides
.meteor Meteor stuff, well documented in other places.
.sandstorm stuff
ai AI and Machine learning code
client Imports things and starts the React app.
docs Project documentation
imports API, App, and thing web component examples live here
packages Grow.js, Thing.js, and other standalone packages live here.
public Fonts and other static, public assets live here.
tests Unit and Thread conformance tests
server Imports the server code.
test Tests

Our wiki also contains a growing assortment of useful info, including:


There's a lot to do.


Grow-IoT is released under the 2-Clause BSD License, sometimes referred to as the "Simplified BSD License" or the "FreeBSD License".