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

7 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