Org 8.0 comes with a completely rewritten export engine which makes it easy to write new export back-ends, either from scratch, or from deriving them from existing ones.
Your two entry points are respectively
org-export-define-derived-backend. To grok these functions, you
should first have a look at ox-latex.el (for how to define a new
back-end from scratch) and ox-beamer.el (for how to derive a new
back-end from an existing one.
When creating a new back-end from scratch, the basic idea is to set the name
of the back-end (as a symbol) and an an alist of elements and export
functions. On top of this, you will need to set additional keywords like
:menu-entry (to display the back-end in the export dispatcher),
:export-block (to specify what blocks should not be exported by this
:options-alist (to let the user set export options that
are specific to this back-end.)
Deriving a new back-end is similar, except that you need to set
:translate-alist to an alist of export functions that should be used
instead of the parent back-end functions.
For a complete reference documentation, see the Org Export Reference on Worg.