Best known for its ability to serve as the cluster DNS of Kubernetes, CoreDNS is a flexible and extensible DNS server with a focus on service discovery. The flexibility and extensibility of CoreDNS comes from its unique plugin-based architecture and its easy-to-use Corefile configurations. In this session, we will take a close look at the CoreDNS extension points for developers. We will learn how to build custom DNS applications based on CoreDNS, including: building a custom CoreDNS binary that includes external plugins; building a specialized binary that uses CoreDNS as a library; building your own CoreDNS plugin. We will also update the current state and the road map of CoreDNS for the near future.