In October of 2018, our small team gathered at FarmBot HQ in California to envision what we wanted our 3rd party developer experience to be. Through a post-it note brainstorming exercise, we decided that a great developer experience should be versatile, simple, have approachable onboarding, and be based in community. Below are the specific resources and attributes that we think define each of these pillars.

Versatile

  • There are available libraries
  • The resources are modern
  • There are minimal dependencies required
  • Cross-platform/XYZ agnostic
  • Deployment is easy

Simple

  • Things are stupidly simple
  • Documentation/resources are unified
  • It is easy to authenticate and integrate
  • There is low conceptual overhead
  • There are no surprises
  • Things are explicit/intent-based

Approachable onboarding

  • When getting onboard, you feel like a kid in a candy store
  • Documentation is use-case centric (“applied”)
  • You learn by doing
  • Documentation is interactive
  • Things are discoverable
  • Low compile or no compile required
  • Great tools are available
  • Documentation is kept up to date
  • No prior knowledge is assumed

Based in community

  • The experience is engaging
  • We are inclusive
  • The experience is empowering
  • There is community support
  • Documentation is updated/no dead-ends

Rick and Connor

Our developer experience brainstorming board

Always improving

Creating this developer experience will forever be a work in progress, and we openly invite your feedback so that we may improve these resources faster for everyone. If you have any questions or comments, please let us know on GitHub or in the forum.