Good tutorials to learn the fundamentals Nextcloud builds upon

Programming languages (PHP, Javascript, Rust, Python)

For improving your programming in a variety of languages there is one place I can recommend:

It’s a non profit community that builds and maintains an awesome set of exercises, tutorials and background information.

Javascript

https://learnjavascript.online is a good place to get started.

Vue

Cypress

Git and Github

https://skills.github.com is a good starting point based on template repositories that include the instructions for every tutorial.

Html

8 Likes

Thanks for the resources you shared. :smiley:

It would be great to build on this. A fundamentals video/tutorial outlining the structure and topology of Nextcloud would be great.

The tutorials I have seen so far don’t actually teach you these fundamentals. They are very lightweight and involve a lot of cut and paste. No groundwork is formed .

How to get a users permissions, How do i use the frameworks CSS in my apps, Can we use permissions in routes. Whats the explanation of namespaces OCS, OCA, OCP.

From what I have discovered so far is that Nextcloud is quite complex, and a lot of prior knowledge is assumed. I know PHP, but not that familiar with JavaScript, vue.js, webpack, npm, nvm, sass.

This increases my learning curve considerably. I have an Symfony application which i want to encapsulate as an app in Nextcloud. I used the concept of ORM’s, quuerybuilders, Migrations, MVC, Entities. I just need map or overview of nextcloud so I can find my way around. The PHP backend i think I’m about 75% there.

The front end is another matter, I will have to dig deep on this. Im looking at the 3rdParty folder and wondering if I could reduce my learning curve and pull in Twig https://twig.symfony.com/ and use this as the template engine for my App.

3 Likes

The two main resources I’m aware of are:

  1. Develop for Nextcloud (scroll down to the tutorials section)

  2. The Developer Docs: Nextcloud developer documentation — Nextcloud latest Developer Manual latest documentation

Also some of key pieces of NC are split out as apps so you can learn from visiting their individual repositories on GitHub (and poking around on the Nextcloud organization maintained repositories in general).

1 Like

Hello Deakus, hope you are well. How is this project going? What new discoveries have you made?
I am part of a volunteer team developing FOSS for people in Recovery from Mental health, Substance Use, and Trauma. We are using Nextcloud with OpenProject for our collaboration and PM.

As part of our research and discovery process we want to explore and understand NC’s architecture and development. We want to do this for several reasons.

  1. we want to learn about software architecture in general
  2. we want to fully understand NC and how our team can best utilize it for the success of our team and project
  3. explore creating simple apps for NC that we find useful and can benifit the community
  4. explore the possibilities of using NC to nest many of our software on

We are looking for people like yourself that is interested in the development of NC, to meet with our development team for a group discovery meeting. Please let me know if you are interested. We are meeting this week and next. Thank you

If you are interested in learning more about or project please check out our project page…

1 Like

Dear @anon63099092

That sounds really interesting. I had a look at your project description. If you need help on getting started with developing Nextcloud apps I’d be happy to try and help.

I can also jump on a call but I am based in Europe - so CEST timezone.

Are you meeting all week or only at a particular time?

@Daphne is also a good person to contact in case you have more concrete ideas of what kind of documentation would be helpful.

Cheers,
Max

2 Likes

Hello Max, thamk you so much! I am in great need of help. I juste returned the email. I hope you or someone sees it. Thank you!

Apologies for the late reply on this topic (19 months), but from my end not a lot has changed.
However NextCloud has changed quite some during that time, especially the new drive to include additional programming languages and the new OCS openapi.

We still have 3 name spaces, OCA ( Your own app) , OCP (the nextcloud platform, I think) and the OCS

OCS has been updated

https://docs.nextcloud.com/server/latest/developer_manual/_static/openapi.html#/

I have even tried hiring a software development team which did not work out. So it has been parked for a few months whilst I concentrated on other projects. However with 2025 approaching it is back on my radar once again.

Fundamentally Nextcloud development still remains a treasure hunt. You know there is gold there from the updates and releases of new NextCloud versions, and the new features being announced.

Build with Nextcloud! New developer features in Nextcloud Hub 8
https://www.youtube.com/watch?v=N07jiINET90

But you have to mine for it.

Combine this with the heavy reliance on vue.js and the associated tools just to render your output, NextCloud is an expensive (but yet very compelling) development environment.

If typical requirements for a application

  • User authentication and RBAC
  • User input validation & form handling
  • Databases /ORM input output and migration management
  • File handling
  • Event and exception management (not just in frontend web SPA)

This is especially expensive for me as I don’t JavaScript that well.

The documentation and tutorials require inherent knowledge.

The tutorials are at best useful for testing that your development environment is working. As a learning exercise it has minimal impact. This is because the objective is to see it running rather than explain the actual development fundamentals as to WHY this is working.

The tutorials consist of:

  • Make a skeleton app file and extract it
  • Delete the following files, you don’t need them
  • Go to this blog post copy and paste the following files

if it does not work, you can always go the forums or community chat

Its quite frustrating. It’s like looking into a window and you see all these people having a fantastic party and they are waving you to come in, but you cant find the door to get in.

All tools/apps I have written currently are in Symfony. Symfony has the opposite problem there are large number of tutorials have been created, the documentation is strong with plenty of examples which explains fundamental architecture and highly modular.

There are even free and paid for screencasts explaining the fundamentals and architecture of the framework.

https://symfonycasts.com/screencast/symfony

https://symfony.com/doc/current/index.html

If Symfony is so good, why migrate to NextCloud ?

I wanted to use NextCloud because of the the eco system, fantastic applications core and contributed, which would sit nicely alongside the apps I have written in Symfony.

In fact, I’m now considering sitting alongside NextCloud rather than within it.

I’m willing to pay for NextCloud dev consultancy to create an integration framework. Must be able to work to a project definition, no perpetual time and materials

hi, I’m sorry to read you are struggling with getting started. Are there concrete things we can do about it in the upcoming months?
Are there specific tutorials you are missing?
Are there specific documentation pages you believe need an update?

It’s always hard to get started in a new environment but usually people seem to get around it by using a tutorial or the code of an application from someone else from the apps.nextcloud.com as a basis.
We also have these days a way to make some apps in any programming language, this way is called AppAPI and there is a hello-world tutorial for that available too on nextcloud.com/developer
Kind regards, Daphne
(I work at Nextcloud)

Hi, happy to hear that i am not the only one struggling. Maybe i was born too early, and i used to read the manual before start coding :wink:
Or maybe, like deaukus, i need some overview about the structure, the architecture and the “why”. For example about the namespaces.
As long as i don’t find any answer on these, i will stay on the “Helloworld” level.
On the other hand, not everyone is a developper and a lot of people is needed to translate, to test, to declare bugs, to file enhancements, to write documentation, …
As far as i know, all these activities don’t have an appropriate tutorial or knowledge base. Maybe something to think of.
Kind regards, Luc

For translation and adding tests, and also for testing fixes on GitHub for server, we also have a tutorial on Develop for Nextcloud: App development tutorials

The Hello World tutorial provides an overview of the structure of an app

Hello,

I am currently following the tutorials in the “Developing a simple interface-only app” , and in the “2 Write the frontend scripts.md” file in the “Step 2: Install npm packages” when I do the “npm i”, the prompt gave me a bunch of warnings, stating some incompabilities including for versions for Vue and Eslint among other.

The next paragraph in the tutorial explain about fixing a few missing dependencies, but it is not working anymore, I still get incompatibility warnings.

Is it because the tutorial is still using Vue 2 whereas the Nextcloud version I am using is the latest one (version 23, which perhaps supports Vue 3 instead of Vue 2)?

With my limited understanding of Vue, I’m currently stuck, what should I do to remedy this?

My goal is to develop a Vue 3 or Svelte 5 application inside Nextcloud environment. Please help, thank you.

Ich think the tutorials are currently still assuming Vue 2, because a large part of the Nextcloud ecosystem is still on Vue 2. We’ll likely see a huge effort to migrate to vue 3 this year.

@marcelklehr thank you for the response.

Double checking on the Nextcloud versions, I found that the latest stable release is actually version 30, not version 23, as I previously assume. I was following the first part of the tutorials: “Install the Nextcloud development environment on Windows” using Windows, WSL and Docker, and ends up with version 23 in my local system. I can go through the “Hello World” tutorial with this setup, but when I got to the parts that use Vue, I ran into troubles.

So perhaps the main take aways:

  • Try to upgrade my local version to 30 instead of version 23.
  • Try not to use Vue in Nextcloud (for now) because support for it is an still ongoing effort.
  • A large part of the tutorials are using Vue 2, which is no longer supported, therefore I reckon I should not be following the tutorials either for now.

If I cannot use Vue and the tutorials in nextcloud.com, could anyone please advise me a good tutorial somewhere that I can follow to develop an app in Nextcloud? It doesn’t have to be Vue, it can be Svelte, React, Angular, or any other things that will work with Nextcloud. Or should I be focusing on developing in PHP or Python instead of using Javascript framework/libraries inside Nextcloud environment?

Thank you in advance.

Yes, Nextcloud 30 is currently the latest major version. If you want to benefit from the official tutorials, I recommend to just use Vue 2 for now. We’re also still using it after all, and an upgrade to Vue 3 is supposed to be rather straightforward. It may be end of life, but it still works fine.