FarmBot Software Developers

FarmBot Software Development

Target audience: software developers. For end-users, see FarmBot Software Documentation.

Subscribe to our developer newsletter and take our survey

Click here to subscribe to our developer-specific email newsletter to stay up-to-date on new features, tools, libraries, and more. And then please take this short (1 minute) survey to help us improve our 3rd party developer experience. :beers+: Cheers!

Public beta

The FarmBot developer documentation hub is still under active development. This documentation is available for public review and feedback. We encourage you to start a discussion in the Farmbot Forum with questions and comments.

Frequently asked questions

I’m a software developer. Where can I download FarmBot source code?

Like most open source projects, we host our software on GitHub. Here are the most popular source code links:

  • Web App (Ruby, Typescript) - Cloud storage, REST API and user interface.
  • FarmBot OS (Elixir) - Embedded operating system that runs on the Raspberry Pi. The “glue” between the API, frontend and firmware.
  • Firmware (C++) - Arduino source code. Controls stepper motors, pins, etc.

Does the web API support ARM-based processors?

Not at this time. The only software that supports Raspberry Pi is FarmBot OS

What language is FarmBot written in?

FarmBot is comprised of many different software systems and the language used varies across projects. Generally speaking, we use a combination of C++, Ruby, Elixir, and TypeScript.

Do I need to know Elixir to program FarmBot?

No. FarmBot provides a system for plugins known as "Farmware". Farmware may be written in other languages, such as Python. See Farmware documentation for details.

An alternative approach is to write a standalone application that interacts with FarmBot externally via REST API calls or FarmBot JS.

Should I clone FarmBot OS on GitHub or use the image?

You almost certainly want the image. The only exception is if you plan on modifying the FarmBot OS source code.

Which tool does FarmBot Inc use for ___?

Please see the subsection "Software Development Tools Used By FarmBot".