by seiyanuta



Getting Started | API Refernce | Change Log |Tryout Server | CI

MakeStack is a software stack for connected devices for super-rapid prototyping that includes:

  • Focus on Developer Experience: Easy-to-use Node.js API.
  • Batteries-included: Remote app/os update, remote config management, sending command to device, etc.
  • Integrations: Incoming/Outgoing Webhook, IFTTT, Slack, and Datadog.
  • A minimalized Linux: smaller than 32MB including the root file system!
  • Desktop app: An Electron-based desktop app.
  • Full-featured Backend: A Rails and Vue.js based server backend.
  • CLI SDK: A Node.js SDK with CLI frontend to manage apps & devices.
  • Node-RED device side programming: Enjoy physical computing without coding!
  • Plugins: Of course we have!
  • Free from vendor lock-in: Fully open sourced :)

Sample Code

// Load APIs (
const { Timer, Config, publish } = require('makestack')

// Plugins.
const AQM0802A = require('@makestack/aqm0802a')
const HDC1000 = require('@makestack/hdc1000')

// Initialize device drivers.
const display = new AQM0802A()
const sensor = new HDC1000()

Config.onChange('messages', msg => {
  // print() sends a log message to the server.
  print(`Updating the display message to ${msg}.`)

  // Update the display.

// Send temperature and humidity sensed by HDC1000.
Timer.interval(5, () => {
  publish('t', sensor.readTemperature())
  publish('h', sensor.readHumidity())

Code Status


Build Status

Npm Dependencies

Component Dependencies devDependencies Runtime dependencies Status dependencies Status Supervisor dependencies Status dependencies Status SDK dependencies Status dependencies Status Desktop dependencies Status dependencies Status Web UI dependencies Status dependencies Status


CC0 or MIT. See