# GNU social Developer's handbook

The book in your hands was written to teach you the art of contributing to the GNU social codebase.

It starts by introducing the Modules system and architecture, then the plugin development process and finally the exciting internals of GNU social for those looking forward to making the most advanced contributions.

# What you need to dive in

This is the recommended setup, for simplicity and integration with the provided tools.

OR

• At least a webserver such as nginx and a DBMS such as postgresql.
• Depending on what you want to do, you may want to setup a queues (and caching) system such as redis.

To learn how to set all of that up, you may refer to the System Administrator's handbook.

Understand that this book assumes prior programming knowledge, if that doesn't sound like you, refer to our study resources to get started.

# The other documentations are equally relevant to a developer

The User one is intended to illustrate the various common use cases, possibilities regarding customization and introduce the existing functionalities.

The Administrator one explains the step by step of how to install and maintain a GNU social instance, be it as node of The Free Network or as an intranet social network in a company setting.

The Designer one is an in-depth overview of the design motifs, and the design language used. Useful for creating new plugins and help as a basis for new themes.

# Tests

When what you're looking for (usage instructions of anything), refer to the tests directory. The unit tests are properly commented and are very extensive, they try to cover every use scenario.