You are reading an outdated version of this documentation. Please check out the latest version of the developer manual.

App Development


Before you start, please check if there already is a similar app in the App Store or the GitHub organisation that you could contribute to. Also, feel free to communicate your idea and plans in the forum so other contributors might join in.

Then, please make sure you have set up a development environment:

Before starting to write an app please read the security and coding guidelines:

After this you can start with the tutorial

Once you are ready for publishing, check out the app store process:

For enhanced security it is also possible to sign your code:

App development

Take a look at the changes in this version:

Create a new app:

Inner parts of an app:


How a request is being processed:


The app’s presentation layer:


Create database tables, run Sql queries, store/retrieve configuration information and access the filesystem:

Authentication & Users

Creating, deleting, updating, searching, login and logout:

Writing a two-factor auth provider:


Listen on events like user creation and execute code:

Background Jobs

Periodically run code in the background:


An app can register both admin settings as well as personal settings:


Log to the data/nextcloud.log:

Repair steps

Repair steps can be used to run code at various stages in app installation, uninstallation, migration ...


Write automated tests to ensure stability and ease maintenance:

PHPDoc Class Documentation

Nextcloud class and function documentation: