GNOME Developer Documentation ============================= Welcome to the GNOME platform! This documentation provides essential information and resources for those developing software with and for the GNOME platform. It is also a portal to other sources of GNOME developer documentation that are available elsewhere. Content overview ---------------- The documentation on this site is organized into three main sections: * :doc:`Platform introduction `: an introduction to the GNOME platform. This describes the main platform components, development tools and programming languages that can be used. * :doc:`Guidelines `: detailed development information, including programming and integration guidelines. * :doc:`Tooling `: useful tools for newcomer and experienced developers * :doc:`Tutorials `: shorter pages on common topics, with step-by-step instructions. * :doc:`Specifications `: formal description of formats, IPC interfaces, and other interoperable parts of the GNOME platform .. seealso:: Older guides and API references that used to be hosted on developer.gnome.org are now archived `on a separate website `__. Additional resources -------------------- Additional external development resources for the GNOME platform include: * `GNOME Human Interface Guidelines `__: user experience design guidelines * `Discussion forums `__: a great place to ask for help and advice Platform tools -------------- The following tools are used by the GNOME platform and have their own websites and documentation: .. list-table:: :widths: 20 50 30 :header-rows: 1 * - Tool - Role - Documentation * - `GNOME Builder `__ - GNOME platform IDE - `builder.readthedocs.io `__ * - `Flatpak `__ - App packaging and distribution - `docs.flatpak.org `__ * - `Meson `__ - Build system - `mesonbuild.com `__ Contributing ------------ If you want to contribute to the GNOME developer documentation, you can find it `on GitLab `__. .. toctree:: :maxdepth: 1 :hidden: :caption: Contents introduction guidelines tools tutorials specifications