Skip to main content

Nextcloud App Template

A starting point for building Nextcloud apps following ConductionNL conventions — a manifest-first Vue 2 frontend rendered by CnAppRoot, an OpenRegister data layer, a Dashboard widget, an admin settings panel, an AI Chat Companion tool provider, and the full PHP + frontend quality pipeline.

What is this?

This is the template every new Conduction app is scaffolded from. It ships:

  • A manifest-driven UI — pages, navigation, and dependencies are declared in src/manifest.json; the shell (CnAppRoot) reads the manifest at boot and renders index / detail / dashboard / settings pages without per-page Vue files.
  • A Dashboard widget — a working ExampleWidget (PHP IWidget class + webpack entry + NcDashboardWidget renderer) you copy and rename.
  • Admin settings — a settings panel wired through NcAppSettingsDialog, backed by an OpenRegister settings register.
  • An MCP tool providerExampleToolProvider exposes the app's capabilities to the in-app AI Chat Companion over MCP.
  • OpenRegister integrationmanifest.dependencies lists openregister, so the dependency-check phase ensures it is installed before the UI mounts. Remove the entry if your app does not need it.
  • The quality pipeline — PHPCS, PHPMD, Psalm, PHPStan, ESLint, Stylelint, plus manifest/register/JSON-strict validators.
  • This documentation site — Docusaurus on @conduction/docusaurus-preset, the journeydoc tutorial scaffold, and a Playwright docs-capture project for screenshots (ADR-030).

Getting started

Clone the template, rename app-template to your slug, and build:

cd /var/www/html/custom_apps
git clone https://codeberg.org/Conduction/nextcloud-app-template.git app-template
cd app-template
npm install && npm run build
php occ app:enable app-template

OpenRegister must be installed first unless you remove the dependency from src/manifest.json, appinfo/info.xml, and openspec/app-config.json.

  • New here? Start with the User guide — open the app for the first time.
  • Setting things up? See the Admin guide — manage the app's settings.

Free and open source under the EUPL-1.2 license. For support, contact support@conduction.nl.