# HomeSpan Overview *Note: This page references a lot of HomeKit HAP terminology. If you are new to HomeKit development, you may want to start by first reviewing the [HomeKit Primer](HomeKitPrimer.md) page.* HomeSpan is an Arduino-style C++ library designed for ESP32 devices to take on the role of a *HAP Accessory Server*, which allows the device to be paired to, and communicate with, any *HAP Client*, such as Apple's Home App on an iPhone, iPad, or Mac. There are three primary functions of HomeSpan. The first is to implement all the required HomeKit protocols needed for you to define and then expose one or more HAP Accessory Objects, each with their own HAP Services and HAP Characteristics Need to discuss development environment Need to discuss micro-controller usage to connect to real-world devices (not to connect to other web servers) Need to discuss control button and status led Need to discuss configuring using the CLI and the WiFi Access Point Overview of programming paradigm Point to the tutorials Point to the HomeSpan Library Reference