Introducing Nextcloud Academy: Free online courses for Nextcloud contributors

Nextcloud - Nextcloud Hub 26 Summer:

Nextcloud Hub 26 Summer:

Autonomy for Teams, Office on desktop, a fresh take on Photos

Explore what’s new in the release blog!

Read more

How do you get started building your first Nextcloud app? Our beginner’s guide is a valuable resource to better understand how Nextcloud works internally and which pitfalls you should avoid if you want to make sure your app doesn’t break when confronted with real-life use cases.

And now, there’s also Nextcloud Academy. Introduced as part of our Nextcloud Hub 26 Summer release, it contains hands-on courses for beginners as well as more experienced Nextcloud developers that take you from the basics all the way to a finished app and beyond.

There are two parallel tracks that build the same app with different architectures:

  • The PHP track for building a classic Nextcloud app running inside the server, using controllers, the OCP API, QBMapper, and migrations.
  • The ExApp track (using Python) for building an external app running as a separate Docker service through AppAPI, using FastAPI, nc_py_api, and its own SQLite/Postgres database.

From environment setup to finished Nextcloud app

The beginner modules require no prior knowledge. Before you start coding, you will be guided through setting up your development environment to make sure everything works as expected down the road.

The environment setup module in Nextcloud Academy

From there you learn how a Nextcloud app is structured: the manifest that describes it, how requests are routed to your code, and how the app hooks into Nextcloud when it loads.

Next comes the backend, where you write your first endpoints and return data, followed by a database layer so data can be stored, read, and changed. The course then moves to the frontend. You set up a Vite and Vue build, then create the interface in three steps. It uses Nextcloud’s own Vue components, so the app looks and behaves like the rest of Nextcloud.

Finally, you’ll turn the working prototype into a real app. You’ll first make sure each user sees only their own data by identifying the current user and limiting every query to their data. Then you version, sign, and package the app and submit it to the Nextcloud App Store.

You can do all of this in PHP, as a traditional app inside Nextcloud, or in Python, as a separate service connected through AppAPI. The steps and the finished app are the same either way, but the Python route adds a bit more work on verifying incoming requests and deploying with Docker.

More learning tracks to come in the future

At the time of writing, the courses are still in beta. Only the beginner tracks are available, with the intermediate and advanced tracks coming soon. Feedback is very welcome, so if you notice a mistake of find something is unclear, please file an issue on GitHub.

Ready to get started? Then head over to Nextcloud Academy to write your first lines of Nextcloud-native code!