# Developer Documentation
Brewblox is a rapidly evolving system that welcomes external contributions. To reflect this, developer documentation is split in four subcategories:
Tutorials show how to create and run simple scripts. These are useful for everyone that wants to tinker with their own system. The source code for all tutorials is also available here.
Contributing guides describe how to get started building a service, and how to use dev tools.
Reference documents describe protocols and interfaces, and are updated whenever these change.
Design decisions are documents describing past research and the context for major decisions. These are not updated: if a decision changes or is reversed, a new document is added. This ensures that not only the current state is known, but also the process that led us there.
# Useful links
# Noteworthy repositories
- brewblox-service: common code for python services
- brewblox-boilerplate: a template for new services
- brewblox-devcon-spark: the Spark service
- brewblox-firmware: the Spark controller
- brewblox-ui: the web-based GUI
- brewblox-history: the InfluxDB client
- brewblox-ctl: CLI tool for users
- brewblox-ctl-lib: release-specific libs for brewblox-ctl