Zotero uses Citation Style Language (CSL) styles and the citeproc-js CSL processor for creating citations and bibliographies.
For information on how to use existing CSL styles with Zotero, see Citation Styles.
For basic instructions on how to edit CSL styles for Zotero, see the Step-by-step guide. More documentation can be found at http://citationstyles.org/citation-style-language/documentation/.
A mapping of Zotero item types and variables to CSL is available here. A Zotero extension to create and export the current mapping from a local Zotero installation can be found here.
Citation styles can be hosted on the Citation Style Language Repository. Follow these instructions to have your style added to the repository.
If you decide to host CSL styles online yourself, serving them with the “vnd.citationstyles.style+xml” MIME type allows programs such as Zotero to automatically recognize and install your styles.
citeproc-node is a wrapper for citeproc-js for server-side rendering of citations and bibliographies.