There are two sides to Libretro development: frontend, and core.
A libretro frontend is a program that can run libretro-compatible programs.
A libretro core is a program (a game/emulator/miscellaneous) that has been ported to the libretro API so that it can be used by libretro frontends.
Reference Libretro frontend development guides
Below are some guides that will help you out in the creation of your own libretro-compatible program.
Reference Libretro core development guides
Below are some guides that will help you out in the creation of your own libretro core.
Libretro – Implementing the core
This guide teaches you how to make a libretro core.
Implementing a Hardware Accelerated Libretro Core
Step-by-step libretro core development tutorials
These step-by-step tutorials eases you into the creation of a libretro core.
Creating a Vectrex Emulator as a libretro core
This guide was written by somebody who wrote a Vectrex emulator from scratch as a libretro core. This tutorial should teach you how to write a libretro core in a clear step by step procedure. Highly recommended. This is part 2 of a multi-part series. The first part of the series, which covers emulation basics, is available here.