CINXE.COM

Develop for Nextcloud: App development tutorials

<!DOCTYPE html> <html class="no-js" lang="en-US"> <head><meta charset="UTF-8"><script>if(navigator.userAgent.match(/MSIE|Internet Explorer/i)||navigator.userAgent.match(/Trident\/7\..*?rv:11/i)){var href=document.location.href;if(!href.match(/[?&]nowprocket/)){if(href.indexOf("?")==-1){if(href.indexOf("#")==-1){document.location.href=href+"?nowprocket=1"}else{document.location.href=href.replace("#","?nowprocket=1#")}}else{if(href.indexOf("#")==-1){document.location.href=href+"&nowprocket=1"}else{document.location.href=href.replace("#","&nowprocket=1#")}}}}</script><script>(()=>{class RocketLazyLoadScripts{constructor(){this.v="2.0.2",this.userEvents=["keydown","keyup","mousedown","mouseup","mousemove","mouseover","mouseenter","mouseout","mouseleave","touchmove","touchstart","touchend","touchcancel","wheel","click","dblclick","input","visibilitychange"],this.attributeEvents=["onblur","onclick","oncontextmenu","ondblclick","onfocus","onmousedown","onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onscroll","onsubmit"]}async t(){this.i(),this.o(),/iP(ad|hone)/.test(navigator.userAgent)&&this.h(),this.u(),this.l(this),this.m(),this.k(this),this.p(this),this._(),await Promise.all([this.R(),this.L()]),this.lastBreath=Date.now(),this.S(this),this.P(),this.D(),this.O(),this.M(),await this.C(this.delayedScripts.normal),await this.C(this.delayedScripts.defer),await this.C(this.delayedScripts.async),this.T("domReady"),await this.F(),await this.j(),await this.I(),this.T("windowLoad"),await this.A(),window.dispatchEvent(new Event("rocket-allScriptsLoaded")),this.everythingLoaded=!0,this.lastTouchEnd&&await new Promise((t=>setTimeout(t,500-Date.now()+this.lastTouchEnd))),this.H(),this.T("all"),this.U(),this.W()}i(){this.CSPIssue=sessionStorage.getItem("rocketCSPIssue"),document.addEventListener("securitypolicyviolation",(t=>{this.CSPIssue||"script-src-elem"!==t.violatedDirective||"data"!==t.blockedURI||(this.CSPIssue=!0,sessionStorage.setItem("rocketCSPIssue",!0))}),{isRocket:!0})}o(){window.addEventListener("pageshow",(t=>{this.persisted=t.persisted,this.realWindowLoadedFired=!0}),{isRocket:!0}),window.addEventListener("pagehide",(()=>{this.onFirstUserAction=null}),{isRocket:!0})}h(){let t;function e(e){t=e}window.addEventListener("touchstart",e,{isRocket:!0}),window.addEventListener("touchend",(function i(o){Math.abs(o.changedTouches[0].pageX-t.changedTouches[0].pageX)<10&&Math.abs(o.changedTouches[0].pageY-t.changedTouches[0].pageY)<10&&o.timeStamp-t.timeStamp<200&&(o.target.dispatchEvent(new PointerEvent("click",{target:o.target,bubbles:!0,cancelable:!0})),event.preventDefault(),window.removeEventListener("touchstart",e,{isRocket:!0}),window.removeEventListener("touchend",i,{isRocket:!0}))}),{isRocket:!0})}q(t){this.userActionTriggered||("mousemove"!==t.type||this.firstMousemoveIgnored?"keyup"===t.type||"mouseover"===t.type||"mouseout"===t.type||(this.userActionTriggered=!0,this.onFirstUserAction&&this.onFirstUserAction()):this.firstMousemoveIgnored=!0),"click"===t.type&&t.preventDefault(),this.savedUserEvents.length>0&&(t.stopPropagation(),t.stopImmediatePropagation()),"touchstart"===this.lastEvent&&"touchend"===t.type&&(this.lastTouchEnd=Date.now()),"click"===t.type&&(this.lastTouchEnd=0),this.lastEvent=t.type,this.savedUserEvents.push(t)}u(){this.savedUserEvents=[],this.userEventHandler=this.q.bind(this),this.userEvents.forEach((t=>window.addEventListener(t,this.userEventHandler,{passive:!1,isRocket:!0})))}U(){this.userEvents.forEach((t=>window.removeEventListener(t,this.userEventHandler,{passive:!1,isRocket:!0}))),this.savedUserEvents.forEach((t=>{t.target.dispatchEvent(new window[t.constructor.name](t.type,t))}))}m(){this.eventsMutationObserver=new MutationObserver((t=>{const e="return false";for(const i of t){if("attributes"===i.type){const t=i.target.getAttribute(i.attributeName);t&&t!==e&&(i.target.setAttribute("data-rocket-"+i.attributeName,t),i.target.setAttribute(i.attributeName,e))}"childList"===i.type&&i.addedNodes.forEach((t=>{if(t.nodeType===Node.ELEMENT_NODE)for(const i of t.attributes)this.attributeEvents.includes(i.name)&&i.value&&""!==i.value&&(t.setAttribute("data-rocket-"+i.name,i.value),t.setAttribute(i.name,e))}))}})),this.eventsMutationObserver.observe(document,{subtree:!0,childList:!0,attributeFilter:this.attributeEvents})}H(){this.eventsMutationObserver.disconnect(),this.attributeEvents.forEach((t=>{document.querySelectorAll("[data-rocket-"+t+"]").forEach((e=>{e.setAttribute(t,e.getAttribute("data-rocket-"+t)),e.removeAttribute("data-rocket-"+t)}))}))}k(t){Object.defineProperty(HTMLElement.prototype,"onclick",{get(){return this.rocketonclick},set(e){this.rocketonclick=e,this.setAttribute(t.everythingLoaded?"onclick":"data-rocket-onclick","this.rocketonclick(event)")}})}S(t){function e(e,i){let o=e[i];e[i]=null,Object.defineProperty(e,i,{get:()=>o,set(s){t.everythingLoaded?o=s:e["rocket"+i]=o=s}})}e(document,"onreadystatechange"),e(window,"onload"),e(window,"onpageshow");try{Object.defineProperty(document,"readyState",{get:()=>t.rocketReadyState,set(e){t.rocketReadyState=e},configurable:!0}),document.readyState="loading"}catch(t){console.log("WPRocket DJE readyState conflict, bypassing")}}l(t){this.originalAddEventListener=EventTarget.prototype.addEventListener,this.originalRemoveEventListener=EventTarget.prototype.removeEventListener,this.savedEventListeners=[],EventTarget.prototype.addEventListener=function(e,i,o){o&&o.isRocket||!t.B(e,this)&&!t.userEvents.includes(e)||t.B(e,this)&&!t.userActionTriggered||e.startsWith("rocket-")?t.originalAddEventListener.call(this,e,i,o):t.savedEventListeners.push({target:this,remove:!1,type:e,func:i,options:o})},EventTarget.prototype.removeEventListener=function(e,i,o){o&&o.isRocket||!t.B(e,this)&&!t.userEvents.includes(e)||t.B(e,this)&&!t.userActionTriggered||e.startsWith("rocket-")?t.originalRemoveEventListener.call(this,e,i,o):t.savedEventListeners.push({target:this,remove:!0,type:e,func:i,options:o})}}T(t){"all"===t&&(EventTarget.prototype.addEventListener=this.originalAddEventListener,EventTarget.prototype.removeEventListener=this.originalRemoveEventListener),this.savedEventListeners=this.savedEventListeners.filter((e=>{let i=e.type,o=e.target||window;return"domReady"===t&&"DOMContentLoaded"!==i&&"readystatechange"!==i||("windowLoad"===t&&"load"!==i&&"readystatechange"!==i&&"pageshow"!==i||(this.B(i,o)&&(i="rocket-"+i),e.remove?o.removeEventListener(i,e.func,e.options):o.addEventListener(i,e.func,e.options),!1))}))}p(t){let e;function i(e){return t.everythingLoaded?e:e.split(" ").map((t=>"load"===t||t.startsWith("load.")?"rocket-jquery-load":t)).join(" ")}function o(o){function s(e){const s=o.fn[e];o.fn[e]=o.fn.init.prototype[e]=function(){return this[0]===window&&t.userActionTriggered&&("string"==typeof arguments[0]||arguments[0]instanceof String?arguments[0]=i(arguments[0]):"object"==typeof arguments[0]&&Object.keys(arguments[0]).forEach((t=>{const e=arguments[0][t];delete arguments[0][t],arguments[0][i(t)]=e}))),s.apply(this,arguments),this}}if(o&&o.fn&&!t.allJQueries.includes(o)){const e={DOMContentLoaded:[],"rocket-DOMContentLoaded":[]};for(const t in e)document.addEventListener(t,(()=>{e[t].forEach((t=>t()))}),{isRocket:!0});o.fn.ready=o.fn.init.prototype.ready=function(i){function s(){parseInt(o.fn.jquery)>2?setTimeout((()=>i.bind(document)(o))):i.bind(document)(o)}return t.realDomReadyFired?!t.userActionTriggered||t.fauxDomReadyFired?s():e["rocket-DOMContentLoaded"].push(s):e.DOMContentLoaded.push(s),o([])},s("on"),s("one"),s("off"),t.allJQueries.push(o)}e=o}t.allJQueries=[],o(window.jQuery),Object.defineProperty(window,"jQuery",{get:()=>e,set(t){o(t)}})}P(){const t=new Map;document.write=document.writeln=function(e){const i=document.currentScript,o=document.createRange(),s=i.parentElement;let n=t.get(i);void 0===n&&(n=i.nextSibling,t.set(i,n));const a=document.createDocumentFragment();o.setStart(a,0),a.appendChild(o.createContextualFragment(e)),s.insertBefore(a,n)}}async R(){return new Promise((t=>{this.userActionTriggered?t():this.onFirstUserAction=t}))}async L(){return new Promise((t=>{document.addEventListener("DOMContentLoaded",(()=>{this.realDomReadyFired=!0,t()}),{isRocket:!0})}))}async I(){return this.realWindowLoadedFired?Promise.resolve():new Promise((t=>{window.addEventListener("load",t,{isRocket:!0})}))}M(){this.pendingScripts=[];this.scriptsMutationObserver=new MutationObserver((t=>{for(const e of t)e.addedNodes.forEach((t=>{"SCRIPT"!==t.tagName||t.noModule||t.isWPRocket||this.pendingScripts.push({script:t,promise:new Promise((e=>{const i=()=>{const i=this.pendingScripts.findIndex((e=>e.script===t));i>=0&&this.pendingScripts.splice(i,1),e()};t.addEventListener("load",i,{isRocket:!0}),t.addEventListener("error",i,{isRocket:!0}),setTimeout(i,1e3)}))})}))})),this.scriptsMutationObserver.observe(document,{childList:!0,subtree:!0})}async j(){await this.J(),this.pendingScripts.length?(await this.pendingScripts[0].promise,await this.j()):this.scriptsMutationObserver.disconnect()}D(){this.delayedScripts={normal:[],async:[],defer:[]},document.querySelectorAll("script[type$=rocketlazyloadscript]").forEach((t=>{t.hasAttribute("data-rocket-src")?t.hasAttribute("async")&&!1!==t.async?this.delayedScripts.async.push(t):t.hasAttribute("defer")&&!1!==t.defer||"module"===t.getAttribute("data-rocket-type")?this.delayedScripts.defer.push(t):this.delayedScripts.normal.push(t):this.delayedScripts.normal.push(t)}))}async _(){await this.L();let t=[];document.querySelectorAll("script[type$=rocketlazyloadscript][data-rocket-src]").forEach((e=>{let i=e.getAttribute("data-rocket-src");if(i&&!i.startsWith("data:")){i.startsWith("//")&&(i=location.protocol+i);try{const o=new URL(i).origin;o!==location.origin&&t.push({src:o,crossOrigin:e.crossOrigin||"module"===e.getAttribute("data-rocket-type")})}catch(t){}}})),t=[...new Map(t.map((t=>[JSON.stringify(t),t]))).values()],this.N(t,"preconnect")}async $(t){if(await this.G(),!0!==t.noModule||!("noModule"in HTMLScriptElement.prototype))return new Promise((e=>{let i;function o(){(i||t).setAttribute("data-rocket-status","executed"),e()}try{if(navigator.userAgent.includes("Firefox/")||""===navigator.vendor||this.CSPIssue)i=document.createElement("script"),[...t.attributes].forEach((t=>{let e=t.nodeName;"type"!==e&&("data-rocket-type"===e&&(e="type"),"data-rocket-src"===e&&(e="src"),i.setAttribute(e,t.nodeValue))})),t.text&&(i.text=t.text),t.nonce&&(i.nonce=t.nonce),i.hasAttribute("src")?(i.addEventListener("load",o,{isRocket:!0}),i.addEventListener("error",(()=>{i.setAttribute("data-rocket-status","failed-network"),e()}),{isRocket:!0}),setTimeout((()=>{i.isConnected||e()}),1)):(i.text=t.text,o()),i.isWPRocket=!0,t.parentNode.replaceChild(i,t);else{const i=t.getAttribute("data-rocket-type"),s=t.getAttribute("data-rocket-src");i?(t.type=i,t.removeAttribute("data-rocket-type")):t.removeAttribute("type"),t.addEventListener("load",o,{isRocket:!0}),t.addEventListener("error",(i=>{this.CSPIssue&&i.target.src.startsWith("data:")?(console.log("WPRocket: CSP fallback activated"),t.removeAttribute("src"),this.$(t).then(e)):(t.setAttribute("data-rocket-status","failed-network"),e())}),{isRocket:!0}),s?(t.fetchPriority="high",t.removeAttribute("data-rocket-src"),t.src=s):t.src="data:text/javascript;base64,"+window.btoa(unescape(encodeURIComponent(t.text)))}}catch(i){t.setAttribute("data-rocket-status","failed-transform"),e()}}));t.setAttribute("data-rocket-status","skipped")}async C(t){const e=t.shift();return e?(e.isConnected&&await this.$(e),this.C(t)):Promise.resolve()}O(){this.N([...this.delayedScripts.normal,...this.delayedScripts.defer,...this.delayedScripts.async],"preload")}N(t,e){this.trash=this.trash||[];let i=!0;var o=document.createDocumentFragment();t.forEach((t=>{const s=t.getAttribute&&t.getAttribute("data-rocket-src")||t.src;if(s&&!s.startsWith("data:")){const n=document.createElement("link");n.href=s,n.rel=e,"preconnect"!==e&&(n.as="script",n.fetchPriority=i?"high":"low"),t.getAttribute&&"module"===t.getAttribute("data-rocket-type")&&(n.crossOrigin=!0),t.crossOrigin&&(n.crossOrigin=t.crossOrigin),t.integrity&&(n.integrity=t.integrity),t.nonce&&(n.nonce=t.nonce),o.appendChild(n),this.trash.push(n),i=!1}})),document.head.appendChild(o)}W(){this.trash.forEach((t=>t.remove()))}async F(){try{document.readyState="interactive"}catch(t){}this.fauxDomReadyFired=!0;try{await this.G(),document.dispatchEvent(new Event("rocket-readystatechange")),await this.G(),document.rocketonreadystatechange&&document.rocketonreadystatechange(),await this.G(),document.dispatchEvent(new Event("rocket-DOMContentLoaded")),await this.G(),window.dispatchEvent(new Event("rocket-DOMContentLoaded"))}catch(t){console.error(t)}}async A(){try{document.readyState="complete"}catch(t){}try{await this.G(),document.dispatchEvent(new Event("rocket-readystatechange")),await this.G(),document.rocketonreadystatechange&&document.rocketonreadystatechange(),await this.G(),window.dispatchEvent(new Event("rocket-load")),await this.G(),window.rocketonload&&window.rocketonload(),await this.G(),this.allJQueries.forEach((t=>t(window).trigger("rocket-jquery-load"))),await this.G();const t=new Event("rocket-pageshow");t.persisted=this.persisted,window.dispatchEvent(t),await this.G(),window.rocketonpageshow&&window.rocketonpageshow({persisted:this.persisted})}catch(t){console.error(t)}}async G(){Date.now()-this.lastBreath>45&&(await this.J(),this.lastBreath=Date.now())}async J(){return document.hidden?new Promise((t=>setTimeout(t))):new Promise((t=>requestAnimationFrame(t)))}B(t,e){return e===document&&"readystatechange"===t||(e===document&&"DOMContentLoaded"===t||(e===window&&"DOMContentLoaded"===t||(e===window&&"load"===t||e===window&&"pageshow"===t)))}static run(){(new RocketLazyLoadScripts).t()}}RocketLazyLoadScripts.run()})();</script> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="profile" href="https://gmpg.org/xfn/11"> <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> <style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style> <link rel="alternate" hreflang="en" href="https://nextcloud.com/developer/" /> <link rel="alternate" hreflang="fr" href="https://nextcloud.com/fr/develop/" /> <link rel="alternate" hreflang="de" href="https://nextcloud.com/de/developer/" /> <link rel="alternate" hreflang="es" href="https://nextcloud.com/es/developer/" /> <link rel="alternate" hreflang="it" href="https://nextcloud.com/it/developer/" /> <link rel="alternate" hreflang="x-default" href="https://nextcloud.com/developer/" /> <!-- This site is optimized with the Yoast SEO plugin v24.4 - https://yoast.com/wordpress/plugins/seo/ --> <title>Develop for Nextcloud: App development tutorials</title> <meta name="description" content="These app development tutorials will help you easily write new Nextcloud applications, extend existing features or integrate other software." /> <link rel="canonical" href="https://nextcloud.com/developer/" /> <meta property="og:locale" content="en_US" /> <meta property="og:type" content="article" /> <meta property="og:title" content="Develop for Nextcloud: App development tutorials" /> <meta property="og:description" content="These app development tutorials will help you easily write new Nextcloud applications, extend existing features or integrate other software." /> <meta property="og:url" content="https://nextcloud.com/developer/" /> <meta property="og:site_name" content="Nextcloud" /> <meta property="article:publisher" content="https://www.facebook.com/Nextclouders/" /> <meta property="article:modified_time" content="2025-02-17T09:00:06+00:00" /> <meta property="og:image" content="https://nextcloud.com/c/uploads/2023/01/nextcloud-developer-featured-image.jpg" /> <meta property="og:image:width" content="1200" /> <meta property="og:image:height" content="675" /> <meta property="og:image:type" content="image/jpeg" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:site" content="@nextclouders" /> <script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://nextcloud.com/developer/","url":"https://nextcloud.com/developer/","name":"Develop for Nextcloud: App development tutorials","isPartOf":{"@id":"https://nextcloud.com/#website"},"primaryImageOfPage":{"@id":"https://nextcloud.com/developer/#primaryimage"},"image":{"@id":"https://nextcloud.com/developer/#primaryimage"},"thumbnailUrl":"https://nextcloud.com/c/uploads/2023/01/nextcloud-developer-featured-image.jpg","datePublished":"2022-04-05T16:39:31+00:00","dateModified":"2025-02-17T09:00:06+00:00","description":"These app development tutorials will help you easily write new Nextcloud applications, extend existing features or integrate other software.","breadcrumb":{"@id":"https://nextcloud.com/developer/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://nextcloud.com/developer/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https://nextcloud.com/developer/#primaryimage","url":"https://nextcloud.com/c/uploads/2023/01/nextcloud-developer-featured-image.jpg","contentUrl":"https://nextcloud.com/c/uploads/2023/01/nextcloud-developer-featured-image.jpg","width":1200,"height":675,"caption":"Develop for Nextcloud"},{"@type":"BreadcrumbList","@id":"https://nextcloud.com/developer/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://nextcloud.com/"},{"@type":"ListItem","position":2,"name":"Developer"}]},{"@type":"WebSite","@id":"https://nextcloud.com/#website","url":"https://nextcloud.com/","name":"Nextcloud","description":"Regain control over your data","publisher":{"@id":"https://nextcloud.com/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://nextcloud.com/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https://nextcloud.com/#organization","name":"Nextcloud","url":"https://nextcloud.com/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://nextcloud.com/#/schema/logo/image/","url":"https://nextcloud.com/c/uploads/2022/10/nextcloud-logo-blue-transparent.svg","contentUrl":"https://nextcloud.com/c/uploads/2022/10/nextcloud-logo-blue-transparent.svg","width":"1024","height":"1024","caption":"Nextcloud"},"image":{"@id":"https://nextcloud.com/#/schema/logo/image/"},"sameAs":["https://www.facebook.com/Nextclouders/","https://x.com/nextclouders","https://www.linkedin.com/company/10827569/","https://youtube.com/nextcloud","https://www.instagram.com/nextclouders/"]}]}</script> <!-- / Yoast SEO plugin. --> <link rel="alternate" type="application/rss+xml" title="Nextcloud &raquo; Feed" href="https://nextcloud.com/feed/" /> <link rel="alternate" type="application/rss+xml" title="Nextcloud &raquo; Comments Feed" href="https://nextcloud.com/comments/feed/" /> <link rel="alternate" type="application/rss+xml" title="Podcast Feed: The Nextcloud Podcast (MP3 Feed)" href="https://nextcloud.com/de/feed/mp3/" /> <style id='wp-emoji-styles-inline-css' type='text/css'> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 0.07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } </style> <link rel='stylesheet' id='wp-block-library-css' href='https://nextcloud.com/wp-includes/css/dist/block-library/style.css?ver=6.7.1' type='text/css' media='all' /> <style id='classic-theme-styles-inline-css' type='text/css'> /** * These rules are needed for backwards compatibility. * They should match the button element rules in the base theme.json file. */ .wp-block-button__link { color: #ffffff; background-color: #32373c; border-radius: 9999px; /* 100% causes an oval, but any explicit but really high value retains the pill shape. */ /* This needs a low specificity so it won't override the rules from the button element if defined in theme.json. */ box-shadow: none; text-decoration: none; /* The extra 2px are added to size solids the same as the outline versions.*/ padding: calc(0.667em + 2px) calc(1.333em + 2px); font-size: 1.125em; } .wp-block-file__button { background: #32373c; color: #ffffff; text-decoration: none; } </style> <style id='global-styles-inline-css' type='text/css'> :root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} :root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} </style> <link rel='stylesheet' id='wpml-blocks-css' href='https://nextcloud.com/p/sitepress-multilingual-cms/dist/css/blocks/styles.css?ver=4.6.15' type='text/css' media='all' /> <link rel='stylesheet' id='wpml-menu-item-0-css' href='https://nextcloud.com/c/sitepress-multilingual-cms/templates/language-switchers/menu-item/style.min.css?ver=1' type='text/css' media='all' /> <link rel='stylesheet' id='style-bootstrap-css' href='https://nextcloud.com/c/themes/nextcloud-theme/dist/css/bootstrap.min.css?ver=1702023611' type='text/css' media='all' /> <link rel='stylesheet' id='css-slick-css' href='https://nextcloud.com/c/themes/nextcloud-theme/dist/css/slick.css?ver=1702023611' type='text/css' media='all' /> <link rel='stylesheet' id='css-style-css' href='https://nextcloud.com/c/themes/nextcloud-theme/dist/css/theme.min.css?ver=1739779496' type='text/css' media='all' /> <link rel='stylesheet' id='style-css' href='https://nextcloud.com/c/themes/nextcloud-theme/style.css?ver=1702023612' type='text/css' media='all' /> <link rel='stylesheet' id='selectizeStyle-css' href='https://nextcloud.com/c/themes/nextcloud-theme/dist/css/select2.min.css?ver=6.7.1' type='text/css' media='all' /> <link rel='stylesheet' id='js_composer_front-css' href='https://nextcloud.com/p/js_composer/assets/css/js_composer.min.css?ver=8.2' type='text/css' media='all' /> <link rel='stylesheet' id='vc_font_awesome_5_shims-css' href='https://nextcloud.com/p/js_composer/assets/lib/vendor/node_modules/@fortawesome/fontawesome-free/css/v4-shims.min.css?ver=8.2' type='text/css' media='all' /> <link rel='stylesheet' id='vc_font_awesome_5-css' href='https://nextcloud.com/p/js_composer/assets/lib/vendor/node_modules/@fortawesome/fontawesome-free/css/all.min.css?ver=8.2' type='text/css' media='all' /> <script type="text/javascript" src="https://nextcloud.com/wp-includes/js/jquery/jquery.js?ver=3.7.1" id="jquery-core-js" data-rocket-defer defer></script> <script type="text/javascript" src="https://nextcloud.com/wp-includes/js/jquery/jquery-migrate.js?ver=3.4.1" id="jquery-migrate-js" data-rocket-defer defer></script> <script type="text/javascript" id="stripe_nfpluginsettings-js-extra"> /* <![CDATA[ */ var stripe_nfpluginsettings = {"clearLogRestUrl":"https:\/\/nextcloud.com\/wp-json\/ninja-forms-stripe\/v1\/debug-log\/delete-all","clearLogButtonId":"stripe_clear_debug_logger","downloadLogRestUrl":"https:\/\/nextcloud.com\/wp-json\/ninja-forms-stripe\/v1\/debug-log\/get-all","downloadLogButtonId":"stripe_download_debug_logger","_wpnonce":"f9eafdaa46"}; /* ]]> */ </script> <script type="rocketlazyloadscript" data-rocket-type="text/javascript" data-rocket-src="https://nextcloud.com/p/ninja-forms-stripe/assets/js/nfpluginsettings.js?ver=3.2.8" id="stripe_nfpluginsettings-js" data-rocket-defer defer></script> <script type="text/javascript" id="wpml-cookie-js-extra"> /* <![CDATA[ */ var wpml_cookies = {"wp-wpml_current_language":{"value":"en","expires":1,"path":"\/"}}; var wpml_cookies = {"wp-wpml_current_language":{"value":"en","expires":1,"path":"\/"}}; /* ]]> */ </script> <script type="rocketlazyloadscript" data-rocket-type="text/javascript" data-rocket-src="https://nextcloud.com/p/sitepress-multilingual-cms/res/js/cookies/language-cookie.js?ver=4.6.15" id="wpml-cookie-js" defer="defer" data-wp-strategy="defer"></script> <script type="rocketlazyloadscript" data-rocket-type="text/javascript" data-rocket-src="https://nextcloud.com/c/themes/nextcloud-theme/dist/js/bootstrap.bundle.min.js?ver=1" id="bootstrap-js" data-rocket-defer defer></script> <script type="rocketlazyloadscript" data-rocket-type="text/javascript" data-rocket-src="https://nextcloud.com/c/themes/nextcloud-theme/dist/js/slick.min.js?ver=1" id="slick-js-js" data-rocket-defer defer></script> <script type="text/javascript" src="https://nextcloud.com/c/themes/nextcloud-theme/dist/js/jquery.magnific-popup.min.js?ver=1" id="magnific-js-js" data-rocket-defer defer></script> <script type="text/javascript" src="https://nextcloud.com/c/themes/nextcloud-theme/dist/js/jquery.sticky-sidebar.min.js?ver=1" id="sticky-sidebar-js-js" data-rocket-defer defer></script> <script type="rocketlazyloadscript" data-rocket-type="text/javascript" data-rocket-src="https://nextcloud.com/c/themes/nextcloud-theme/dist/js/owl.carousel.min.js?ver=1" id="owl-carousel-js-js"></script> <script type="text/javascript" id="nc_loadmore-js-extra"> /* <![CDATA[ */ var nc_loadmore_strings = {"loading":"Loading...","ajaxurl":"https:\/\/nextcloud.com\/wp-admin\/admin-ajax.php"}; /* ]]> */ </script> <script type="rocketlazyloadscript" data-rocket-type="text/javascript" data-rocket-src="https://nextcloud.com/c/themes/nextcloud-theme/dist/js/nc_loadmore.js?ver=1" id="nc_loadmore-js" data-rocket-defer defer></script> <script type="rocketlazyloadscript" data-rocket-type="text/javascript" data-rocket-src="https://nextcloud.com/c/themes/nextcloud-theme/dist/js/typed.min.js?ver=6.7.1" id="typed-js"></script> <script type="rocketlazyloadscript" data-rocket-type="text/javascript" data-rocket-src="https://nextcloud.com/c/themes/nextcloud-theme/dist/js/purify.min.js?ver=1" id="purify-js-js" data-rocket-defer defer></script> <script type="text/javascript" src="https://nextcloud.com/c/themes/nextcloud-theme/dist/js/nc_cookies.js?ver=1" id="nc-cookie-banner-js"></script> <script type="text/javascript" id="cookie_banner_script-js-extra"> /* <![CDATA[ */ var cookie_banner_strings = {"allow_selection":"Allow selection","reject_all":"Reject all"}; /* ]]> */ </script> <script type="text/javascript" src="https://nextcloud.com/c/themes/nextcloud-theme/dist/js/cookie_banner_script.js?ver=1" id="cookie_banner_script-js" data-rocket-defer defer></script> <link rel="https://api.w.org/" href="https://nextcloud.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://nextcloud.com/wp-json/wp/v2/pages/2452" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://nextcloud.com/xmlrpc.php?rsd" /> <link rel='shortlink' href='https://nextcloud.com/?p=2452' /> <link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://nextcloud.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fnextcloud.com%2Fdeveloper%2F" /> <link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://nextcloud.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fnextcloud.com%2Fdeveloper%2F&#038;format=xml" /> <meta name="generator" content="WPML ver:4.6.15 stt:1,4,3,27,2;" /> <meta name="cdp-version" content="1.4.9" /><meta name="theme-color" content="#0082c9"><meta name="twitter:image" content="https://nextcloud.com/c/uploads/2023/01/nextcloud-developer-featured-image.jpg" /><meta name="generator" content="Powered by WPBakery Page Builder - drag and drop page builder for WordPress."/> <link rel="icon" href="https://nextcloud.com/c/uploads/2022/03/favicon.png" sizes="32x32" /> <link rel="icon" href="https://nextcloud.com/c/uploads/2022/03/favicon.png" sizes="192x192" /> <link rel="apple-touch-icon" href="https://nextcloud.com/c/uploads/2022/03/favicon.png" /> <meta name="msapplication-TileImage" content="https://nextcloud.com/c/uploads/2022/03/favicon.png" /> <style type="text/css" id="wp-custom-css"> .grecaptcha-badge { opacity:0;} </style> <style type="text/css" data-type="vc_shortcodes-default-css">.vc_do_icon{margin-bottom:35px;}.vc_do_btn{margin-bottom:22px;}.vc_do_btn{margin-bottom:22px;}.vc_do_btn{margin-bottom:22px;}.vc_do_btn{margin-bottom:22px;}</style><style type="text/css" data-type="vc_shortcodes-custom-css">.vc_custom_1673358395269{background-image: url(https://nextcloud.com/wp-content/uploads/2023/01/nextcloud-developer-program.jpg?id=87837) !important;}.vc_custom_1664437609113{margin-top: 0px !important;margin-bottom: 0px !important;background-image: url(https://nextcloud.com/wp-content/uploads/2022/08/nextcloud-logo-icon-light-bg.svg?id=53508) !important;}.vc_custom_1676477258270{margin-top: 0px !important;margin-bottom: 0px !important;}.vc_custom_1673339680031{margin-top: 0px !important;margin-bottom: 0px !important;}.vc_custom_1673439915574{padding-top: 3rem !important;padding-bottom: 3rem !important;}.vc_custom_1668675817919{padding-bottom: 0px !important;}.vc_custom_1668761753143{margin-top: 0px !important;margin-bottom: 0px !important;}.vc_custom_1668761753143{margin-top: 0px !important;margin-bottom: 0px !important;}.vc_custom_1663589051447{padding-top: 3rem !important;padding-bottom: 3rem !important;}.vc_custom_1673337287383{margin-top: 2rem !important;margin-bottom: 0px !important;}.vc_custom_1663052125396{padding-right: 3rem !important;padding-left: 3rem !important;}.vc_custom_1663052125396{padding-right: 3rem !important;padding-left: 3rem !important;}.vc_custom_1676477675284{margin-top: 1.5rem !important;}.vc_custom_1673439235906{margin-bottom: 2rem !important;padding-right: 3rem !important;padding-left: 3rem !important;}.vc_custom_1673358815540{margin-top: 2rem !important;margin-bottom: 2rem !important;}.vc_custom_1663598629396{margin-bottom: 2rem !important;}.vc_custom_1673340293413{margin-top: 2rem !important;margin-bottom: 2rem !important;}.vc_custom_1673340505154{margin-top: 2rem !important;margin-bottom: 2rem !important;}.vc_custom_1673346551000{margin-top: 2rem !important;margin-bottom: 2rem !important;}.vc_custom_1673347046279{margin-top: 2rem !important;margin-bottom: 2rem !important;}.vc_custom_1673356330050{margin-top: 2rem !important;}.vc_custom_1673450991953{margin-top: 3rem !important;}.vc_custom_1673338646228{margin-bottom: 0px !important;}.vc_custom_1673344892055{margin-bottom: 0px !important;}</style><noscript><style> .wpb_animate_when_almost_visible { opacity: 1; }</style></noscript><noscript><style id="rocket-lazyload-nojs-css">.rll-youtube-player, [data-lazy-src]{display:none !important;}</style></noscript><meta name="generator" content="WP Rocket 3.18.1.5" data-wpr-features="wpr_delay_js wpr_defer_js wpr_lazyload_images wpr_minify_css wpr_desktop wpr_preload_links" /></head> <body class="page-template-default page page-id-2452 wp-custom-logo lang-en wpb-js-composer js-comp-ver-8.2 vc_responsive"> <div data-rocket-location-hash="37a1157c49d89fd129f1a018e3c8fcc8" id="hidden_header_anchor"></div> <header data-rocket-location-hash="e04c00ea993cb3304b963d743293eef7" class="with-promo-banner" id="header"> <a href="#main" class="skip">Skip to main content</a> <div data-rocket-location-hash="13453828a8d12e06cce4641724454fbb" class="top-banner-vote"> <div data-rocket-location-hash="a07ea42f7826adb30ee53f29399bc39c" class="container"> <div data-rocket-location-hash="ca722c0fa35488ed8b185d1aa84c8a90" class="row"> <div class="col-12"> <div class="owl-carousel promo_banner_carousel"> <div class="item"> <div class="nc-awards-banner"> <div class="cloudcomputing-logo"> <a tabindex="-1" href="https://nextcloud.com/hub10/" title="Global launch " target="_blank"> <img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Global launch " data-lazy-src="https://nextcloud.com/c/uploads/2025/01/nc-hub10-logo.svg"><noscript><img src="https://nextcloud.com/c/uploads/2025/01/nc-hub10-logo.svg" alt="Global launch "></noscript> </a> </div> <div class="awards-text"> <a tabindex="-1" href="https://nextcloud.com/hub10/" title="Global launch " target="_blank"> <p>Global launch</p> </a> </div> <div class="btn-awards"> <a tabindex="-1" href="https://nextcloud.com/hub10/" title="Global launch " target="_blank" class="c-btn btn-top btn-small btn-with-icon"> Sign up now <i class="fa fa-angle-right right"></i> </a> </div> </div> </div> <div class="item"> <div class="nc-awards-banner"> <div class="cloudcomputing-logo"> <a tabindex="-1" href="https://nextcloud.com/summit/" title="Nextcloud Summit 2025" target="_blank"> <img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="NC-Summit-logo" data-lazy-src="https://nextcloud.com/c/uploads/2025/01/NC-Summit-logo.svg" /><noscript><img src="https://nextcloud.com/c/uploads/2025/01/NC-Summit-logo.svg" alt="NC-Summit-logo" /></noscript> </a> </div> <div class="awards-text"> <a tabindex="-1" href="https://nextcloud.com/summit/" title="Nextcloud Summit 2025" target="_blank"> <p>Nextcloud <strong>Summit 2025</strong></p> </a> </div> <div class="btn-awards"> <a tabindex="-1" href="https://nextcloud.com/summit/" title="Nextcloud Summit 2025" target="_blank" class="c-btn btn-top btn-small btn-with-icon"> Register now <i class="fa fa-angle-right right"></i> </a> </div> </div> </div> <div class="item"> <div class="nc-awards-banner"> <div class="cloudcomputing-logo"> <a tabindex="-1" href="https://nextcloud.com/blog/nextcloud-talk-our-open-source-answer-to-microsoft-teams/" title="The open source answer to Microsoft Teams" target="_blank"> <img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Nextcloud Talk" data-lazy-src="https://nextcloud.com/c/uploads/2022/10/nc-talk-icon-blue.svg" /><noscript><img src="https://nextcloud.com/c/uploads/2022/10/nc-talk-icon-blue.svg" alt="Nextcloud Talk" /></noscript> </a> </div> <div class="awards-text"> <a tabindex="-1" href="https://nextcloud.com/blog/nextcloud-talk-our-open-source-answer-to-microsoft-teams/" title="The open source answer to Microsoft Teams" target="_blank"> <p>The <strong>open source answer</strong> to Microsoft Teams</p> </a> </div> <div class="btn-awards"> <a tabindex="-1" href="https://nextcloud.com/blog/nextcloud-talk-our-open-source-answer-to-microsoft-teams/" title="The open source answer to Microsoft Teams" target="_blank" class="c-btn btn-top btn-small btn-with-icon"> Learn more <i class="fa fa-angle-right right"></i> </a> </div> </div> </div> </div> <script type="rocketlazyloadscript"> jQuery(document).ready(function ($) { var promo_banner_carousel = $('.promo_banner_carousel'); promo_banner_carousel.owlCarousel({ loop:true, autoplayTimeout: 3000, autoplay: true, margin:50, dots: false, nav:true, responsive:{ 0:{ items:1 }, 600:{ items:1 }, 800:{ items:1 }, 1000:{ items:1 } }, onDragged: owl_stop_autoplay, autoplayHoverPause:true }); promo_banner_carousel.on('click', function(e) { owl_stop_autoplay(); }); function owl_stop_autoplay() { promo_banner_carousel.trigger('stop.owl.autoplay'); } }); </script> </div> </div> </div> </div> <div data-rocket-location-hash="bf92edd3a641c8d225ea7877b77f3749" class="container index.php" data-disabled-top-banner="" id=""> <div data-rocket-location-hash="baaaa8653beedfd23b2dc65cba91a900" class="row"> <div class="col-12"> <div class="header-holder"> <div class="logo-holder"> <a href="https://nextcloud.com/" class="custom-logo-link" rel="home" itemprop="url" title="Nextcloud"><img width="1" height="1" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E" class="custom-logo" alt="Nextcloud logo" itemprop="logo" decoding="async" data-lazy-src="https://nextcloud.com/c/uploads/2023/02/logo_nextcloud_white.svg" /><noscript><img width="1" height="1" src="https://nextcloud.com/c/uploads/2023/02/logo_nextcloud_white.svg" class="custom-logo" alt="Nextcloud logo" itemprop="logo" decoding="async" /></noscript></a> </div> <div class="phone-menu"> <div class="bar1"></div> <div class="bar2"></div> <div class="bar3"></div> </div> <div class="header-items"> <div id="menu-primary-menu-container" class="menu-primary-menu-container"><ul id="menu-primary-menu" class="primary-menu"><li id="menu-item-910" class="megamenu products menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-910"><a href="#" data-ps2id-api="true">Products</a> <ul class="sub-menu"> <li id="menu-item-194875" class="hub menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-194875"><a href="https://nextcloud.com/hub/" data-ps2id-api="true"><img class="navcon" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Nextcloud Hub" data-lazy-src="https://nextcloud.com/c/uploads/2024/02/nc-hub-icons-square.svg"/><noscript><img class="navcon" src="https://nextcloud.com/c/uploads/2024/02/nc-hub-icons-square.svg" alt="Nextcloud Hub"/></noscript><span>Nextcloud Hub</span></a> <ul class="sub-menu"> <li id="menu-item-915" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-915"><a href="https://nextcloud.com/files/" data-ps2id-api="true"><img class="navcon" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Nextcloud Files" data-lazy-src="https://nextcloud.com/c/uploads/2022/09/nc-files-icon.svg"/><noscript><img class="navcon" src="https://nextcloud.com/c/uploads/2022/09/nc-files-icon.svg" alt="Nextcloud Files"/></noscript><span>Nextcloud Files<small>File Sync and Share</small></span></a></li> <li id="menu-item-903" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-903"><a href="https://nextcloud.com/talk/" data-ps2id-api="true"><img class="navcon" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Nextcloud Talk" data-lazy-src="https://nextcloud.com/c/uploads/2022/10/nc-talk-icon-blue.svg"/><noscript><img class="navcon" src="https://nextcloud.com/c/uploads/2022/10/nc-talk-icon-blue.svg" alt="Nextcloud Talk"/></noscript><span>Nextcloud Talk<small>Calls, chat and video conferencing</small></span></a></li> <li id="menu-item-900" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-900"><a href="https://nextcloud.com/groupware/" data-ps2id-api="true"><img class="navcon" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Nextcloud Groupware" data-lazy-src="https://nextcloud.com/c/uploads/2022/10/nc-groupware-icon-blue.svg"/><noscript><img class="navcon" src="https://nextcloud.com/c/uploads/2022/10/nc-groupware-icon-blue.svg" alt="Nextcloud Groupware"/></noscript><span>Nextcloud Groupware<small>Calendar, Contacts &amp; Mail</small></span></a></li> <li id="menu-item-67439" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-67439"><a href="https://nextcloud.com/office/" title="Nextcloud Office" data-ps2id-api="true"><img class="navcon" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Nextcloud Office" data-lazy-src="https://nextcloud.com/c/uploads/Nextcloud-Office-icon.svg"/><noscript><img class="navcon" src="https://nextcloud.com/c/uploads/Nextcloud-Office-icon.svg" alt="Nextcloud Office"/></noscript><span>Nextcloud Office<small>Real time document collaboration</small></span></a></li> <li id="menu-item-235592" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-235592"><a href="https://nextcloud.com/assistant/" data-ps2id-api="true"><img class="navcon" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Nextcloud Assistant" data-lazy-src="https://nextcloud.com/c/uploads/2024/06/assistant-logo-blue.svg"/><noscript><img class="navcon" src="https://nextcloud.com/c/uploads/2024/06/assistant-logo-blue.svg" alt="Nextcloud Assistant"/></noscript><span>Nextcloud Assistant<small>Private and local AI assistant</small></span></a></li> </ul> </li> <li id="menu-item-244799" class="roundcube menu-item menu-item-type-post_type menu-item-object-page menu-item-244799"><a href="https://nextcloud.com/roundcube/" data-ps2id-api="true"><img class="navcon" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Roundcube" data-lazy-src="https://nextcloud.com/c/uploads/2024/08/Roundcube_logo_icon.svg"/><noscript><img class="navcon" src="https://nextcloud.com/c/uploads/2024/08/Roundcube_logo_icon.svg" alt="Roundcube"/></noscript><span>Roundcube<small>The most popular on premise webmail</small></span></a></li> <li id="menu-item-82799" class="microsoft menu-item menu-item-type-post_type menu-item-object-page menu-item-82799"><a href="https://nextcloud.com/microsoft-integrations/" data-ps2id-api="true"><img class="navcon" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Microsoft integrations" data-lazy-src="https://nextcloud.com/c/uploads/2024/12/Microsoft_logo-blue.svg"/><noscript><img class="navcon" src="https://nextcloud.com/c/uploads/2024/12/Microsoft_logo-blue.svg" alt="Microsoft integrations"/></noscript><span>Microsoft integrations<small>Outlook, Sharepoint, Teams and more</small></span></a></li> </ul> </li> <li id="menu-item-911" class="megamenu products menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-911"><a href="#" data-ps2id-api="true">Solutions</a> <ul class="sub-menu"> <li id="menu-item-899" class="enterprise hub menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-899"><a href="https://nextcloud.com/enterprise/" data-ps2id-api="true"><img class="navcon" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Nextcloud Enterprise" data-lazy-src="https://nextcloud.com/c/uploads/2022/10/nc-enterprise-icon.svg"/><noscript><img class="navcon" src="https://nextcloud.com/c/uploads/2022/10/nc-enterprise-icon.svg" alt="Nextcloud Enterprise"/></noscript><span>Nextcloud Enterprise<small>For mission-critical use</small></span></a> <ul class="sub-menu"> <li id="menu-item-32151" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-32151"><a href="https://nextcloud.com/government/" data-ps2id-api="true"><img class="navcon" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Public sector" data-lazy-src="https://nextcloud.com/c/uploads/2023/01/nc-government-blue-icon.svg"/><noscript><img class="navcon" src="https://nextcloud.com/c/uploads/2023/01/nc-government-blue-icon.svg" alt="Public sector"/></noscript><span>Public sector<small>Enterprise for the public sector</small></span></a></li> <li id="menu-item-55470" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-55470"><a href="https://nextcloud.com/enterprises/" data-ps2id-api="true"><img class="navcon" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Enterprises" data-lazy-src="https://nextcloud.com/c/uploads/2024/12/nc-enterprises-blue-icon-3.svg"/><noscript><img class="navcon" src="https://nextcloud.com/c/uploads/2024/12/nc-enterprises-blue-icon-3.svg" alt="Enterprises"/></noscript><span>Enterprises<small>Enterprise for organizations</small></span></a></li> <li id="menu-item-55469" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-55469"><a href="https://nextcloud.com/service-providers/" data-ps2id-api="true"><img class="navcon" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Service providers" data-lazy-src="https://nextcloud.com/c/uploads/2023/01/nc-service-providers-blue-icon.svg"/><noscript><img class="navcon" src="https://nextcloud.com/c/uploads/2023/01/nc-service-providers-blue-icon.svg" alt="Service providers"/></noscript><span>Service providers<small>Enterprise for service providers</small></span></a></li> <li id="menu-item-32150" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-32150"><a href="https://nextcloud.com/education/" data-ps2id-api="true"><img class="navcon" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Education" data-lazy-src="https://nextcloud.com/c/uploads/2023/01/nc-education-blue-icon.svg"/><noscript><img class="navcon" src="https://nextcloud.com/c/uploads/2023/01/nc-education-blue-icon.svg" alt="Education"/></noscript><span>Education<small>Enterprise for universities and schools</small></span></a></li> <li id="menu-item-152082" class="pricing highlighted menu-item menu-item-type-post_type menu-item-object-page menu-item-152082"><a href="https://nextcloud.com/pricing/" title="Pricing" data-ps2id-api="true"><img class="navcon" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Pricing" data-lazy-src="https://nextcloud.com/c/uploads/2024/12/pricing-tags-icon.svg"/><noscript><img class="navcon" src="https://nextcloud.com/c/uploads/2024/12/pricing-tags-icon.svg" alt="Pricing"/></noscript><span>Pricing<small>Nextcloud Enterprise plans and pricing</small></span></a></li> </ul> </li> <li id="menu-item-194876" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-194876"><a href="https://nextcloud.com/athome/" data-ps2id-api="true"><img class="navcon" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Nextcloud at home" data-lazy-src="https://nextcloud.com/c/uploads/2022/10/nc-icon-at-home.svg"/><noscript><img class="navcon" src="https://nextcloud.com/c/uploads/2022/10/nc-icon-at-home.svg" alt="Nextcloud at home"/></noscript><span>Nextcloud at home<small>For families, students &amp; you</small></span></a></li> </ul> </li> <li id="menu-item-199373" class="megamenu resources menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-199373"><a href="#" data-ps2id-api="true">Resources</a> <ul class="sub-menu"> <li id="menu-item-274755" class="mm_col first_item_hidden menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-274755"><a href="#" data-ps2id-api="true">Col1</a> <ul class="sub-menu"> <li id="menu-item-1700" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1700"><a href="https://nextcloud.com/blog/" data-ps2id-api="true"><img class="navcon" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Blog" data-lazy-src="https://nextcloud.com/c/uploads/2024/12/bullhorn-solid.svg"/><noscript><img class="navcon" src="https://nextcloud.com/c/uploads/2024/12/bullhorn-solid.svg" alt="Blog"/></noscript><span>Blog<small>Nextcloud news and articles</small></span></a></li> <li id="menu-item-224440" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-224440"><a href="https://nextcloud.com/events/" data-ps2id-api="true"><img class="navcon" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Events" data-lazy-src="https://nextcloud.com/c/uploads/2024/12/NC-events-icon.svg"/><noscript><img class="navcon" src="https://nextcloud.com/c/uploads/2024/12/NC-events-icon.svg" alt="Events"/></noscript><span>Events<small>All in-person and virtual Nextcloud events</small></span></a></li> <li id="menu-item-202866" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-202866"><a href="https://nextcloud.com/webinars/" data-ps2id-api="true"><img class="navcon" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Webinars" data-lazy-src="https://nextcloud.com/c/uploads/2024/12/NC-webinar-icon-blue.svg"/><noscript><img class="navcon" src="https://nextcloud.com/c/uploads/2024/12/NC-webinar-icon-blue.svg" alt="Webinars"/></noscript><span>Webinars<small>All upcoming webinars and recordings</small></span></a></li> <li id="menu-item-1704" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1704"><a href="https://nextcloud.com/whitepapers/" data-ps2id-api="true"><img class="navcon" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Success stories" data-lazy-src="https://nextcloud.com/c/uploads/2024/12/nc-success-stories-icon.svg"/><noscript><img class="navcon" src="https://nextcloud.com/c/uploads/2024/12/nc-success-stories-icon.svg" alt="Success stories"/></noscript><span>Success stories<small>Success stories and case studies</small></span></a></li> <li id="menu-item-251776" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-251776"><a href="https://nextcloud.com/whitepapers/#whitepapers" data-ps2id-api="true"><img class="navcon" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Whitepapers" data-lazy-src="https://nextcloud.com/c/uploads/2024/12/nc-whitepapers-icon-blue.svg"/><noscript><img class="navcon" src="https://nextcloud.com/c/uploads/2024/12/nc-whitepapers-icon-blue.svg" alt="Whitepapers"/></noscript><span>Whitepapers<small>Download our whitepapers</small></span></a></li> <li id="menu-item-251777" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-251777"><a href="https://nextcloud.com/whitepapers/#data-sheets" data-ps2id-api="true"><img class="navcon" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Data sheets" data-lazy-src="https://nextcloud.com/c/uploads/2024/02/data-sheets-icon-1.svg"/><noscript><img class="navcon" src="https://nextcloud.com/c/uploads/2024/02/data-sheets-icon-1.svg" alt="Data sheets"/></noscript><span>Data sheets<small>See all data sheets</small></span></a></li> <li id="menu-item-15127" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15127"><a href="https://nextcloud.com/podcast/" data-ps2id-api="true"><img class="navcon" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Podcast" data-lazy-src="https://nextcloud.com/c/uploads/2024/12/NC-podcast-icon.svg"/><noscript><img class="navcon" src="https://nextcloud.com/c/uploads/2024/12/NC-podcast-icon.svg" alt="Podcast"/></noscript><span>Podcast<small>Latest Nextcloud Podcast episodes</small></span></a></li> <li id="menu-item-274760" class="features menu-item menu-item-type-post_type menu-item-object-page menu-item-274760"><a href="https://nextcloud.com/features/" data-ps2id-api="true"><img class="navcon" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Features" data-lazy-src="https://nextcloud.com/c/uploads/2024/12/nc-features-icon.svg"/><noscript><img class="navcon" src="https://nextcloud.com/c/uploads/2024/12/nc-features-icon.svg" alt="Features"/></noscript><span>Features<small>A complete list of features</small></span></a></li> </ul> </li> <li id="menu-item-274757" class="mm_col first_item_hidden menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-274757"><a href="#" data-ps2id-api="true">Col2</a> <ul class="sub-menu"> <li id="menu-item-274805" class="link_w_shortcode featured_nav_item menu-item menu-item-type-custom menu-item-object-custom menu-item-274805"><a href="#" data-ps2id-api="true"><div class="featured_label">Featured</div><span class="hidden">276209</span><div class="nav-preview-news-item featured_blog" id="276209" style=""><div class="post-box-shortcode-preview"><div class="post-box-shortcode-preview-inner"><div class="post-img" style=""><a href="https://nextcloud.com/blog/nextcloud-2024-wrap-up/?ref=top_megamenu_preview" title="Nextcloud powering the digital workspace of tomorrow: 2024 in review"><img width="1024" height="576" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%20576'%3E%3C/svg%3E" class="feat_img wp-post-image" alt="Nextcloud powering the digital workspace of tomorrow - 2024 in review" decoding="async" fetchpriority="high" data-lazy-srcset="https://nextcloud.com/c/uploads/2024/12/Nextcloud-powering-the-digital-workspace-of-tomorrow-2024-in-review-1024x576.png 1024w, https://nextcloud.com/c/uploads/2024/12/Nextcloud-powering-the-digital-workspace-of-tomorrow-2024-in-review-300x169.png 300w, https://nextcloud.com/c/uploads/2024/12/Nextcloud-powering-the-digital-workspace-of-tomorrow-2024-in-review-768x432.png 768w, https://nextcloud.com/c/uploads/2024/12/Nextcloud-powering-the-digital-workspace-of-tomorrow-2024-in-review-1536x864.png 1536w, https://nextcloud.com/c/uploads/2024/12/Nextcloud-powering-the-digital-workspace-of-tomorrow-2024-in-review.png 1921w" data-lazy-sizes="(max-width: 1024px) 100vw, 1024px" data-lazy-src="https://nextcloud.com/c/uploads/2024/12/Nextcloud-powering-the-digital-workspace-of-tomorrow-2024-in-review-1024x576.png" /><noscript><img width="1024" height="576" src="https://nextcloud.com/c/uploads/2024/12/Nextcloud-powering-the-digital-workspace-of-tomorrow-2024-in-review-1024x576.png" class="feat_img wp-post-image" alt="Nextcloud powering the digital workspace of tomorrow - 2024 in review" decoding="async" fetchpriority="high" srcset="https://nextcloud.com/c/uploads/2024/12/Nextcloud-powering-the-digital-workspace-of-tomorrow-2024-in-review-1024x576.png 1024w, https://nextcloud.com/c/uploads/2024/12/Nextcloud-powering-the-digital-workspace-of-tomorrow-2024-in-review-300x169.png 300w, https://nextcloud.com/c/uploads/2024/12/Nextcloud-powering-the-digital-workspace-of-tomorrow-2024-in-review-768x432.png 768w, https://nextcloud.com/c/uploads/2024/12/Nextcloud-powering-the-digital-workspace-of-tomorrow-2024-in-review-1536x864.png 1536w, https://nextcloud.com/c/uploads/2024/12/Nextcloud-powering-the-digital-workspace-of-tomorrow-2024-in-review.png 1921w" sizes="(max-width: 1024px) 100vw, 1024px" /></noscript></a></div><div class="post-body"><a href="https://nextcloud.com/blog/nextcloud-2024-wrap-up/?ref=top_megamenu_preview" title="Nextcloud powering the digital workspace of tomorrow: 2024 in review"><div class="shortcode_label">Featured blog</div><h4>Nextcloud powering the digital workspace of tomorrow: 2024 in review</h4></a> <ul class="meta_details"> <li> <i class="far fa-folder-open"></i> Blog, Community, General </li> </ul> </div></div><div class="see_all"><a href="https://nextcloud.com/blog/" title="">All news and articles</a></div></div></div></a></li> <li id="menu-item-932" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-932"><a target="_blank" href="https://apps.nextcloud.com/" data-ps2id-api="true"><img class="navcon" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="App Store" data-lazy-src="https://nextcloud.com/c/uploads/2022/08/nextcloud-logo-icon.svg"/><noscript><img class="navcon" src="https://nextcloud.com/c/uploads/2022/08/nextcloud-logo-icon.svg" alt="App Store"/></noscript><span>App Store<small>Hundreds of Nextcloud apps</small></span></a></li> <li id="menu-item-929" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-929"><a href="https://nextcloud.com/support/" data-ps2id-api="true"><img class="navcon" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Documentation" data-lazy-src="https://nextcloud.com/c/uploads/2023/01/nc-education-blue-icon.svg"/><noscript><img class="navcon" src="https://nextcloud.com/c/uploads/2023/01/nc-education-blue-icon.svg" alt="Documentation"/></noscript><span>Documentation<small>Admin, user and developer manuals</small></span></a></li> <li id="menu-item-927" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-927"><a href="https://nextcloud.com/faq/" data-ps2id-api="true"><img class="navcon" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="FAQ" data-lazy-src="https://nextcloud.com/c/uploads/2024/12/NC-faq-icon-2-1.svg"/><noscript><img class="navcon" src="https://nextcloud.com/c/uploads/2024/12/NC-faq-icon-2-1.svg" alt="FAQ"/></noscript><span>FAQ<small>Nextcloud Enterprise FAQ</small></span></a></li> <li id="menu-item-925" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-925"><a target="_blank" href="https://portal.nextcloud.com/" data-ps2id-api="true"><img class="navcon" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Support Portal" data-lazy-src="https://nextcloud.com/c/uploads/2024/12/NC-customer-support-portal-icon.svg"/><noscript><img class="navcon" src="https://nextcloud.com/c/uploads/2024/12/NC-customer-support-portal-icon.svg" alt="Support Portal"/></noscript><span>Support Portal<small>Customer access to Enterprise support</small></span></a></li> <li id="menu-item-286257" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-286257"><a href="https://nextcloud.com/migration/" data-ps2id-api="true"><img class="navcon" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Migration guide" data-lazy-src="https://nextcloud.com/c/uploads/2025/02/nc-icon-migration-guide.svg"/><noscript><img class="navcon" src="https://nextcloud.com/c/uploads/2025/02/nc-icon-migration-guide.svg" alt="Migration guide"/></noscript><span>Migration guide<small>Nextcloud migration guide</small></span></a></li> </ul> </li> </ul> </li> <li id="menu-item-912" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-ancestor current-menu-parent menu-item-has-children menu-item-912"><a href="#" data-ps2id-api="true">Community</a> <ul class="sub-menu"> <li id="menu-item-933" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-933"><a href="https://nextcloud.com/contribute/" data-ps2id-api="true">How to contribute</a></li> <li id="menu-item-934" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-934"><a target="_blank" href="https://github.com/nextcloud" data-ps2id-api="true">Code on GitHub</a></li> <li id="menu-item-935" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-935"><a target="_blank" href="https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fnextcloud%2Fserver%2Fissues%2Fnew%2Fchoose" data-ps2id-api="true">Report a bug</a></li> <li id="menu-item-926" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-926"><a target="_blank" href="https://help.nextcloud.com/" data-ps2id-api="true">Community support</a></li> <li id="menu-item-936" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item menu-item-936"><a href="https://nextcloud.com/developer/" aria-current="page" data-ps2id-api="true">Developer program</a></li> <li id="menu-item-938" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-938"><a href="https://nextcloud.com/contribute/code-of-conduct/" data-ps2id-api="true">Code of Conduct</a></li> <li id="menu-item-939" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-939"><a href="https://nextcloud.com/include/" data-ps2id-api="true">Nextcloud Include</a></li> </ul> </li> <li id="menu-item-913" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-913"><a href="https://nextcloud.com/about/" data-ps2id-api="true">About</a> <ul class="sub-menu"> <li id="menu-item-941" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-941"><a href="https://nextcloud.com/about/" data-ps2id-api="true">About us</a></li> <li id="menu-item-949" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-949"><a href="https://nextcloud.com/compare/" data-ps2id-api="true">Comparison with others</a></li> <li id="menu-item-199374" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-199374"><a href="https://nextcloud.com/press/" data-ps2id-api="true">Press</a></li> <li id="menu-item-944" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-944"><a href="https://nextcloud.com/security/" data-ps2id-api="true">Security</a></li> <li id="menu-item-1701" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1701"><a href="https://nextcloud.com/team/" data-ps2id-api="true">Team</a></li> <li id="menu-item-1702" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1702"><a href="https://nextcloud.com/jobs/" data-ps2id-api="true">Jobs</a></li> <li id="menu-item-15129" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15129"><a href="https://nextcloud.com/partners/" data-ps2id-api="true">Partners</a></li> <li id="menu-item-950" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-950"><a href="https://nextcloud.com/search/" data-ps2id-api="true">Search our site</a></li> </ul> </li> <li id="menu-item-914" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-914"><a href="https://nextcloud.com/instant-trial/" data-ps2id-api="true">Instant trial</a></li> <li id="menu-item-954" class="nav-btn download menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-954"><a href="https://nextcloud.com/install/" data-ps2id-api="true">Download</a> <ul class="sub-menu"> <li id="menu-item-956" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-956"><a href="https://nextcloud.com/install/#install-clients" title="Desktop &#038; mobile apps" data-ps2id-api="true"><img class="navcon" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Desktop &#038; mobile apps" data-lazy-src="https://nextcloud.com/c/uploads/2024/02/nc-clients-icon-blue.svg"/><noscript><img class="navcon" src="https://nextcloud.com/c/uploads/2024/02/nc-clients-icon-blue.svg" alt="Desktop &#038; mobile apps"/></noscript><span>Desktop &#038; mobile apps<small>Windows , macOS, Linux, Android, iOS</small></span></a></li> <li id="menu-item-959" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-959"><a href="https://nextcloud.com/install/#instructions-server" title="Nextcloud server" data-ps2id-api="true"><img class="navcon" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Nextcloud server" data-lazy-src="https://nextcloud.com/c/uploads/2024/02/nc-gear-icon-blue.svg"/><noscript><img class="navcon" src="https://nextcloud.com/c/uploads/2024/02/nc-gear-icon-blue.svg" alt="Nextcloud server"/></noscript><span>Nextcloud server<small>For self-hosting on your server</small></span></a></li> <li id="menu-item-1703" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1703"><a href="https://nextcloud.com/sign-up/" title="Sign up now" data-ps2id-api="true"><img class="navcon" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Sign up now" data-lazy-src="https://nextcloud.com/c/uploads/2024/02/nc-pencil-icon-blue.svg"/><noscript><img class="navcon" src="https://nextcloud.com/c/uploads/2024/02/nc-pencil-icon-blue.svg" alt="Sign up now"/></noscript><span>Sign up now<small>Get free account at a provider</small></span></a></li> </ul> </li> <li id="menu-item-wpml-ls-3-en" class="menu-item wpml-ls-slot-3 wpml-ls-item wpml-ls-item-en wpml-ls-current-language wpml-ls-menu-item wpml-ls-first-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item menu-item-has-children menu-item-wpml-ls-3-en"><a href="https://nextcloud.com/developer/" title="English" data-ps2id-api="true"><img class="wpml-ls-flag" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="" data-lazy-src="https://nextcloud.com/c/uploads/flags/Flag_of_the_United_Kingdom.svg" /><noscript><img class="wpml-ls-flag" src="https://nextcloud.com/c/uploads/flags/Flag_of_the_United_Kingdom.svg" alt="" /></noscript><span class="wpml-ls-native" lang="en">English</span></a> <ul class="sub-menu"> <li id="menu-item-wpml-ls-3-fr" class="menu-item wpml-ls-slot-3 wpml-ls-item wpml-ls-item-fr wpml-ls-menu-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item menu-item-wpml-ls-3-fr"><a href="https://nextcloud.com/fr/develop/" title="Fran莽ais" data-ps2id-api="true"><img class="wpml-ls-flag" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="" data-lazy-src="https://nextcloud.com/p/sitepress-multilingual-cms/res/flags/fr.png" /><noscript><img class="wpml-ls-flag" src="https://nextcloud.com/p/sitepress-multilingual-cms/res/flags/fr.png" alt="" /></noscript><span class="wpml-ls-native" lang="fr">Fran莽ais</span></a></li> <li id="menu-item-wpml-ls-3-de" class="menu-item wpml-ls-slot-3 wpml-ls-item wpml-ls-item-de wpml-ls-menu-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item menu-item-wpml-ls-3-de"><a href="https://nextcloud.com/de/developer/" title="Deutsch" data-ps2id-api="true"><img class="wpml-ls-flag" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="" data-lazy-src="https://nextcloud.com/p/sitepress-multilingual-cms/res/flags/de.png" /><noscript><img class="wpml-ls-flag" src="https://nextcloud.com/p/sitepress-multilingual-cms/res/flags/de.png" alt="" /></noscript><span class="wpml-ls-native" lang="de">Deutsch</span></a></li> <li id="menu-item-wpml-ls-3-es" class="menu-item wpml-ls-slot-3 wpml-ls-item wpml-ls-item-es wpml-ls-menu-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item menu-item-wpml-ls-3-es"><a href="https://nextcloud.com/es/developer/" title="Espa帽ol" data-ps2id-api="true"><img class="wpml-ls-flag" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="" data-lazy-src="https://nextcloud.com/p/sitepress-multilingual-cms/res/flags/es.png" /><noscript><img class="wpml-ls-flag" src="https://nextcloud.com/p/sitepress-multilingual-cms/res/flags/es.png" alt="" /></noscript><span class="wpml-ls-native" lang="es">Espa帽ol</span></a></li> <li id="menu-item-wpml-ls-3-it" class="menu-item wpml-ls-slot-3 wpml-ls-item wpml-ls-item-it wpml-ls-menu-item wpml-ls-last-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item menu-item-wpml-ls-3-it"><a href="https://nextcloud.com/it/developer/" title="Italiano" data-ps2id-api="true"><img class="wpml-ls-flag" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="" data-lazy-src="https://nextcloud.com/p/sitepress-multilingual-cms/res/flags/it.png" /><noscript><img class="wpml-ls-flag" src="https://nextcloud.com/p/sitepress-multilingual-cms/res/flags/it.png" alt="" /></noscript><span class="wpml-ls-native" lang="it">Italiano</span></a></li> </ul> </li> </ul></div> </div> </div> </div> </div> </div> </header><div data-rocket-location-hash="3a153016e13aae0a7518eb82eec84fa1" class="wrapper" id="main"> <div data-rocket-location-hash="62a2ce9d4e468b3ec1dea54bca77e07d" class="wpb-content-wrapper"><section data-rocket-location-hash="909099f8fbac916cd605293678bd4381" class="vc_section titlebar at_home vc_custom_1673358395269 vc_section-has-fill"><div class="overlay-gradient"></div><div data-rocket-location-hash="504ea679be4187ce2c96ad18a3ea8a38" class="container"><div class="vc_row wpb_row vc_row-fluid vc_row-o-content-middle vc_row-flex"><div class="wpb_column vc_column_container vc_col-sm-6"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="vc_empty_space" style="height: 75px"><span class="vc_empty_space_inner"></span></div> <div class="wpb_text_column wpb_content_element page-title centerMobile" > <div class="wpb_wrapper"> <h1>Develop for Nextcloud</h1> </div> </div> <div class="wpb_text_column wpb_content_element vc_custom_1673337287383 page-subtitle centerMobile" > <div class="wpb_wrapper"> <p>Write new applications, extend Nextcloud<br /> or integrate other software</p> </div> </div> </div></div></div><div class="wpb_column vc_column_container vc_col-sm-6"><div class="vc_column-inner"><div class="wpb_wrapper"></div></div></div></div></div></section><section data-rocket-location-hash="fb736076f87d5e2414ca1a2aa26831ee" id="why_section" class="vc_section vertical-page-intro why_section nc_default_section vc_custom_1664437609113 vc_section-has-fill"><div class="overlay-gradient"></div><div class="container"><div class="vc_row wpb_row vc_row-fluid vc_custom_1663052125396 vc_column-gap-30 vc_row-o-content-middle vc_row-flex"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper"> <div class="wpb_text_column wpb_content_element intro-title text-right nc-section-title" > <div class="wpb_wrapper"> <h2 style="text-align: center;">Why Nextcloud apps?</h2> </div> </div> </div></div></div></div><div class="vc_row wpb_row vc_row-fluid iconboxes vc_column-gap-30 vc_row-o-equal-height vc_row-flex"><div class="iconbox wpb_column vc_column_container vc_col-sm-4"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="vc_icon_element vc_icon_element-outer vc_do_icon vc_icon_element-align-left"><div class="vc_icon_element-inner vc_icon_element-color-custom vc_icon_element-size-md vc_icon_element-style- vc_icon_element-background-color-grey" ><span class="vc_icon_element-icon fas fa-users" style="color:#0082c9 !important"></span></div></div> <div class="wpb_text_column wpb_content_element iconbox_title" > <div class="wpb_wrapper"> <h4>Big audience</h4> </div> </div> <div class="wpb_text_column wpb_content_element" > <div class="wpb_wrapper"> <p>There are between 200.000 and 300.000 Nextcloud servers on the web with tens of millions of users between them. A big audience exists for functionality which extends the most popular self-hosted productivity platform. The most downloaded apps on our app store are installed on over 100.000 servers and have millions of user</p> </div> </div> </div></div></div><div class="iconbox wpb_column vc_column_container vc_col-sm-4"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="vc_icon_element vc_icon_element-outer vc_do_icon vc_icon_element-align-left"><div class="vc_icon_element-inner vc_icon_element-color-custom vc_icon_element-size-md vc_icon_element-style- vc_icon_element-background-color-grey" ><span class="vc_icon_element-icon fas fa-bullhorn" style="color:#0082c9 !important"></span></div></div> <div class="wpb_text_column wpb_content_element iconbox_title" > <div class="wpb_wrapper"> <h4>Free promotion</h4> </div> </div> <div class="wpb_text_column wpb_content_element" > <div class="wpb_wrapper"> <p>We want you to be successful! If you create an app, extension or integration, Nextcloud will help you promote it. We are happy to work with you on a post for our blog, share the app over social media and you can present it at our conference.</p> </div> </div> </div></div></div><div class="iconbox wpb_column vc_column_container vc_col-sm-4"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="vc_icon_element vc_icon_element-outer vc_do_icon vc_icon_element-align-left"><div class="vc_icon_element-inner vc_icon_element-color-custom vc_icon_element-size-md vc_icon_element-style- vc_icon_element-background-color-grey" ><span class="vc_icon_element-icon fas fa-hands" style="color:#0082c9 !important"></span></div></div> <div class="wpb_text_column wpb_content_element iconbox_title" > <div class="wpb_wrapper"> <h4>Business opportunity</h4> </div> </div> <div class="wpb_text_column wpb_content_element" > <div class="wpb_wrapper"> <p>If you build an app, script, extension or tool as a business endeavor, we will be happy to support your effort. We love our ecosystem and want you to benefit of it! Perhaps we can commercialize it together, with us reselling your product or feature to our customers.</p> </div> </div> </div></div></div><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="vc_btn3-container btn-main vc_btn3-center vc_do_btn" ><a class="vc_general vc_btn3 vc_btn3-size-md vc_btn3-shape-rounded vc_btn3-style-modern vc_btn3-color-grey" href="#discuss_app" title="">Contact us to discuss</a></div></div></div></div></div></div></section><section data-rocket-location-hash="f25637d7bf002339ca2c2180cfe1790a" class="vc_section nc_default_section lightBG vc_custom_1676477258270"><div class="overlay-gradient"></div><div class="container"><div class="vc_row wpb_row vc_row-fluid vc_custom_1663052125396 vc_column-gap-30 vc_row-o-content-middle vc_row-flex"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper"> <div class="wpb_text_column wpb_content_element nc_text_as_separator" > <div class="wpb_wrapper"> <p style="text-align: center;">Tutorials</p> </div> </div> <div class="wpb_text_column wpb_content_element intro-title text-right nc-section-title" > <div class="wpb_wrapper"> <h2 style="text-align: center;">Nextcloud app development tutorials</h2> </div> </div> <div class="vc_separator wpb_content_element vc_separator_align_center vc_sep_width_20 vc_sep_border_width_2 vc_sep_pos_align_center vc_separator_no_text wpb_content_element wpb_content_element nc_separator_line" ><span class="vc_sep_holder vc_sep_holder_l"><span class="vc_sep_line"></span></span><span class="vc_sep_holder vc_sep_holder_r"><span class="vc_sep_line"></span></span> </div> <div class="wpb_text_column wpb_content_element" > <div class="wpb_wrapper"> <p style="text-align: center;" data-pm-slice="1 1 &#091;&#093;">Have you always wanted to learn how to develop apps for your Nextcloud?<br /> These tutorials should flatten your learning curve.</p> </div> </div> </div></div></div></div><div class="vc_row wpb_row vc_row-fluid justifyContenCenter vc_column-gap-10 vc_row-o-equal-height vc_row-flex"><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-3"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="nc_iconbox feature_iconbox "><a href="https://cloud.nextcloud.com/s/iyNGp8ryWxc7Efa?dir=%2F1%20Setting%20up%20a%20development%20environment" target="_blank" title="Setting up a development environment" class=""><div class="iconbox_container "><div class="icon"><i class="fas fa-chalkboard-teacher"></i></div> <div class="title_and_description"> <h4 class="title">Setting up a development environment</h4><h5 class="subtitle"></h5><span class="see_more">See more <i class="fas fa-angle-right"></i></span></div></div></a></div></div></div></div><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-3"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="nc_iconbox feature_iconbox "><a href="https://cloud.nextcloud.com/s/iyNGp8ryWxc7Efa?dir=%2F%2F1a%20Set%20up%20a%20quick%20development%20environment%20with%20GitHub%20Codespaces" target="_blank" title="Set up a quick development environment with GitHub Codespaces" class=""><div class="iconbox_container "><div class="icon"><i class="fas fa-chalkboard-teacher"></i></div> <div class="title_and_description"> <h4 class="title">Set up a quick development environment with GitHub Codespaces</h4><h5 class="subtitle"></h5><span class="see_more">See more <i class="fas fa-angle-right"></i></span></div></div></a></div></div></div></div><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-3"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="nc_iconbox feature_iconbox "><a href="https://cloud.nextcloud.com/s/iyNGp8ryWxc7Efa?dir=%2F%2F2%20Develop%20your%20first%20Hello%20World%20app" target="_blank" title="Develop your first Hello World app" class=""><div class="iconbox_container "><div class="icon"><i class="fas fa-chalkboard-teacher"></i></div> <div class="title_and_description"> <h4 class="title">Develop your first Hello World app</h4><h5 class="subtitle"></h5><span class="see_more">See more <i class="fas fa-angle-right"></i></span></div></div></a></div></div></div></div><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-3"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="nc_iconbox feature_iconbox "><a href="https://cloud.nextcloud.com/s/iyNGp8ryWxc7Efa?dir=%2F3%20Developing%20a%20simple%20interface-only%20app" target="_blank" title="Developing a simple interface-only app" class=""><div class="iconbox_container "><div class="icon"><i class="fas fa-chalkboard-teacher"></i></div> <div class="title_and_description"> <h4 class="title">Developing a simple interface-only app</h4><h5 class="subtitle"></h5><span class="see_more">See more <i class="fas fa-angle-right"></i></span></div></div></a></div></div></div></div></div><div class="vc_row wpb_row vc_row-fluid justifyContenCenter vc_column-gap-10 vc_row-o-equal-height vc_row-flex"><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-3"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="nc_iconbox feature_iconbox "><a href="https://cloud.nextcloud.com/s/iyNGp8ryWxc7Efa?dir=%2F4%20Developing%20a%20dashboard%20widget%20with%20Vue.js" target="_blank" title="Developing a dashboard widget with Vue.js" class=""><div class="iconbox_container "><div class="icon"><i class="fas fa-chalkboard-teacher"></i></div> <div class="title_and_description"> <h4 class="title">Developing a dashboard widget with Vue.js</h4><h5 class="subtitle"></h5><span class="see_more">See more <i class="fas fa-angle-right"></i></span></div></div></a></div></div></div></div><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-3"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="nc_iconbox feature_iconbox "><a href="https://cloud.nextcloud.com/s/iyNGp8ryWxc7Efa?dir=%2F5%20Developing%20an%20integration%20with%20external%20provider%20using%20Smart%20Picker" target="_blank" title="Developing an integration with external provider using Smart Picker" class=""><div class="iconbox_container "><div class="icon"><i class="fas fa-chalkboard-teacher"></i></div> <div class="title_and_description"> <h4 class="title">Developing an integration with external provider using Smart Picker</h4><h5 class="subtitle"></h5><span class="see_more">See more <i class="fas fa-angle-right"></i></span></div></div></a></div></div></div></div><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-3"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="nc_iconbox feature_iconbox "><a href="https://cloud.nextcloud.com/s/iyNGp8ryWxc7Efa?dir=%2F6%20Developing%20a%20complete%20app%20with%20a%20navigation%20bar%20and%20database" target="_blank" title="Developing a complete app with a navigation bar and database" class=""><div class="iconbox_container "><div class="icon"><i class="fas fa-chalkboard-teacher"></i></div> <div class="title_and_description"> <h4 class="title">Developing a complete app with a navigation bar and database</h4><h5 class="subtitle"></h5><span class="see_more">See more <i class="fas fa-angle-right"></i></span></div></div></a></div></div></div></div><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-3"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="nc_iconbox feature_iconbox "><a href="https://cloud.nextcloud.com/s/iyNGp8ryWxc7Efa?dir=%2F7%20Adding%20automated%20tests%20to%20your%20app" target="_blank" title="Adding automated tests to your app" class=""><div class="iconbox_container "><div class="icon"><i class="fas fa-chalkboard-teacher"></i></div> <div class="title_and_description"> <h4 class="title">Adding automated tests to your app</h4><h5 class="subtitle"></h5><span class="see_more">See more <i class="fas fa-angle-right"></i></span></div></div></a></div></div></div></div></div><div class="vc_row wpb_row vc_row-fluid vc_column-gap-10 vc_row-o-equal-height vc_row-flex"><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-3"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="nc_iconbox feature_iconbox "><a href="https://cloud.nextcloud.com/s/iyNGp8ryWxc7Efa?dir=Extra%20Reproducing%20bugs%20and%20testing%20PR%27s%20with%20a%20test%20environment" target="_blank" title="Reproducing bugs and testing PR's with a test environment" class=""><div class="iconbox_container "><div class="icon"><i class="fas fa-chalkboard-teacher"></i></div> <div class="title_and_description"> <h4 class="title">Reproducing bugs and testing PR's with a test environment</h4><h5 class="subtitle"></h5><span class="see_more">See more <i class="fas fa-angle-right"></i></span></div></div></a></div></div></div></div><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-3"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="nc_iconbox feature_iconbox "><a href="https://cloud.nextcloud.com/s/iyNGp8ryWxc7Efa?dir=Extra%20Basic%20app%20development%20troubleshooting" target="_blank" title="Basic app development troubleshooting" class=""><div class="iconbox_container "><div class="icon"><i class="fas fa-chalkboard-teacher"></i></div> <div class="title_and_description"> <h4 class="title">Basic app development troubleshooting</h4><h5 class="subtitle"></h5><span class="see_more">See more <i class="fas fa-angle-right"></i></span></div></div></a></div></div></div></div><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-3 vc_col-md-3"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="nc_iconbox feature_iconbox "><a href="https://cloud.nextcloud.com/s/iyNGp8ryWxc7Efa?dir=%2F8%20Develop%20your%20first%20ExApp%20in%20Python" target="_blank" title="Develop your first ExApp in Python" class=""><div class="iconbox_container "><div class="icon"><i class="fas fa-chalkboard-teacher"></i></div> <div class="title_and_description"> <h4 class="title">Develop your first ExApp in Python</h4><h5 class="subtitle"></h5><span class="see_more">See more <i class="fas fa-angle-right"></i></span></div></div></a></div></div></div></div><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-3 vc_col-md-3"><div class="vc_column-inner"><div class="wpb_wrapper"></div></div></div></div><div class="vc_row wpb_row vc_row-fluid iconboxes vc_column-gap-30 vc_row-o-equal-height vc_row-flex"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner vc_custom_1676477675284"><div class="wpb_wrapper"><div class="vc_btn3-container btn-main vc_btn3-center vc_do_btn" ><a class="vc_general vc_btn3 vc_btn3-size-md vc_btn3-shape-rounded vc_btn3-style-modern vc_btn3-icon-right vc_btn3-color-grey" href="https://cloud.nextcloud.com/s/iyNGp8ryWxc7Efa?path=%2F" title="All app development tutorials" target="_blank">All app development tutorials <i class="vc_btn3-icon fas fa-external-link-alt"></i></a></div></div></div></div></div></div></section><section data-rocket-location-hash="1afd701c8b8555305ac14539249e0fe4" id="why_section" class="vc_section vertical-page-intro why_section nc_default_section vc_custom_1673339680031"><div class="overlay-gradient"></div><div class="container"><div class="vc_row wpb_row vc_row-fluid vc_custom_1673439235906 vc_column-gap-30 vc_row-o-content-middle vc_row-flex"><div class="wpb_column vc_column_container vc_col-sm-3"><div class="vc_column-inner"><div class="wpb_wrapper"></div></div></div><div class="wpb_column vc_column_container vc_col-sm-6"><div class="vc_column-inner"><div class="wpb_wrapper"> <div class="wpb_single_image wpb_content_element vc_align_center nc-sep-logo"> <figure class="wpb_wrapper vc_figure"> <div class="vc_single_image-wrapper vc_box_border_grey"><img decoding="async" width="150" height="150" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20150%20150'%3E%3C/svg%3E" class="vc_single_image-img attachment-thumbnail" alt="Nextcloud Logo" title="Nextcloud Logo" data-lazy-src="https://nextcloud.com/c/uploads/2022/08/nextcloud-logo-icon.svg" /><noscript><img decoding="async" width="150" height="150" src="https://nextcloud.com/c/uploads/2022/08/nextcloud-logo-icon.svg" class="vc_single_image-img attachment-thumbnail" alt="Nextcloud Logo" title="Nextcloud Logo" /></noscript></div> </figure> </div> <div class="wpb_text_column wpb_content_element page-title centerMobile" > <div class="wpb_wrapper"> <h2 style="text-align: center;">Build a new application</h2> </div> </div> <div class="wpb_text_column wpb_content_element" > <div class="wpb_wrapper"> <p style="text-align: center;">Write new applications on top of the Nextcloud platform.</p> </div> </div> </div></div></div><div class="wpb_column vc_column_container vc_col-sm-3"><div class="vc_column-inner"><div class="wpb_wrapper"></div></div></div></div><div class="vc_row wpb_row vc_row-fluid vc_row-o-equal-height vc_row-flex"><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-3 vc_col-md-3"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="nc_iconbox nc_iconbox feature_iconbox "><a href="https://apps.nextcloud.com/developer/apps/generate" target="_blank" title="App skeleton generator" class=""><div class="iconbox_container "><div class="icon"><i class="fas fa-code"></i></div> <div class="title_and_description"> <h4 class="title">App skeleton generator</h4><h5 class="subtitle"></h5><span class="see_more">See more <i class="fas fa-angle-right"></i></span></div></div></a></div></div></div></div><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-3 vc_col-md-3"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="nc_iconbox nc_iconbox feature_iconbox "><a href="https://docs.nextcloud.com/server/latest/developer_manual//app_development/intro.html" target="_blank" title="App Developer intro" class=""><div class="iconbox_container "><div class="icon"><i class="fas fa-code"></i></div> <div class="title_and_description"> <h4 class="title">App Developer intro</h4><h5 class="subtitle"></h5><span class="see_more">See more <i class="fas fa-angle-right"></i></span></div></div></a></div></div></div></div><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-3 vc_col-md-3"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="nc_iconbox nc_iconbox feature_iconbox "><a href="https://docs.nextcloud.com/server/latest/developer_manual/digging_deeper/api.html" target="_blank" title="API documentation" class=""><div class="iconbox_container "><div class="icon"><i class="fas fa-code"></i></div> <div class="title_and_description"> <h4 class="title">API documentation</h4><h5 class="subtitle"></h5><span class="see_more">See more <i class="fas fa-angle-right"></i></span></div></div></a></div></div></div></div><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-3 vc_col-md-3"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="nc_iconbox nc_iconbox feature_iconbox "><a href="https://docs.nextcloud.com/server/latest/developer_manual/client_apis/OCS/index.html" target="_blank" title="API" class=""><div class="iconbox_container "><div class="icon"><i class="fas fa-code"></i></div> <div class="title_and_description"> <h4 class="title">OCS API</h4><h5 class="subtitle"></h5><span class="see_more">See more <i class="fas fa-angle-right"></i></span></div></div></a></div></div></div></div></div><div class="vc_row wpb_row vc_row-fluid vc_row-o-equal-height vc_row-flex"><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-3 vc_col-md-3"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="nc_iconbox nc_iconbox feature_iconbox "><a href="https://docs.nextcloud.com/server/latest/developer_manual//design/index.html" target="_blank" title="App design guidelines" class=""><div class="iconbox_container "><div class="icon"><i class="fas fa-fill-drip"></i></div> <div class="title_and_description"> <h4 class="title">App design guidelines</h4><h5 class="subtitle"></h5><span class="see_more">See more <i class="fas fa-angle-right"></i></span></div></div></a></div></div></div></div><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-3 vc_col-md-3"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="nc_iconbox nc_iconbox feature_iconbox "><a href="https://nextcloud-vue-components.netlify.app/" target="_blank" title="Nextcloud Vue guidelines" class=""><div class="iconbox_container "><div class="icon"><i class="fas fa-code"></i></div> <div class="title_and_description"> <h4 class="title">Nextcloud Vue guidelines</h4><h5 class="subtitle"></h5><span class="see_more">See more <i class="fas fa-angle-right"></i></span></div></div></a></div></div></div></div><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-3 vc_col-md-3"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="nc_iconbox nc_iconbox feature_iconbox "><a href="https://nextcloudappstore.readthedocs.io/en/latest/developer.html#publishing-apps-on-the-app-store" target="_blank" title="Publishing apps in the Nextcloud app store" class=""><div class="iconbox_container "><div class="icon"><i class="fas fa-code"></i></div> <div class="title_and_description"> <h4 class="title">Publishing apps in the Nextcloud app store</h4><h5 class="subtitle"></h5><span class="see_more">See more <i class="fas fa-angle-right"></i></span></div></div></a></div></div></div></div><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-3 vc_col-md-3"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="nc_iconbox nc_iconbox feature_iconbox "><a href="https://docs.nextcloud.com/server/latest/developer_manual/digging_deeper/dashboard.html" target="_blank" title="Write a dashboard plugin" class=""><div class="iconbox_container "><div class="icon"><i class="fas fa-code"></i></div> <div class="title_and_description"> <h4 class="title">Write a dashboard plugin</h4><h5 class="subtitle"></h5><span class="see_more">See more <i class="fas fa-angle-right"></i></span></div></div></a></div></div></div></div></div><div class="vc_row wpb_row vc_row-fluid vc_row-o-equal-height vc_row-flex"><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-3 vc_col-md-3"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="nc_iconbox nc_iconbox feature_iconbox "><a href="https://docs.nextcloud.com/server/latest/developer_manual/digging_deeper/flow.html" target="_blank" title="Interact with Workflows" class=""><div class="iconbox_container "><div class="icon"><i class="fas fa-code"></i></div> <div class="title_and_description"> <h4 class="title">Interact with Workflows</h4><h5 class="subtitle"></h5><span class="see_more">See more <i class="fas fa-angle-right"></i></span></div></div></a></div></div></div></div><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-3 vc_col-md-3"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="nc_iconbox nc_iconbox feature_iconbox "><a href="https://docs.nextcloud.com/server/latest/developer_manual/basics/front-end/theming.html" target="_blank" title="Write a theme to change the look and feel of Nextcloud" class=""><div class="iconbox_container "><div class="icon"><i class="fas fa-code"></i></div> <div class="title_and_description"> <h4 class="title">Write a theme to change the look and feel of Nextcloud</h4><h5 class="subtitle"></h5><span class="see_more">See more <i class="fas fa-angle-right"></i></span></div></div></a></div></div></div></div><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-3 vc_col-md-3"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="nc_iconbox nc_iconbox feature_iconbox "><a href="https://nextcloud-talk.readthedocs.io/en/latest/commands/" target="_blank" title="Write a Nextcloud Talk Command" class=""><div class="iconbox_container "><div class="icon"><i class="fas fa-code"></i></div> <div class="title_and_description"> <h4 class="title">Write a Nextcloud Talk Command</h4><h5 class="subtitle"></h5><span class="see_more">See more <i class="fas fa-angle-right"></i></span></div></div></a></div></div></div></div><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-3 vc_col-md-3"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="nc_iconbox nc_iconbox feature_iconbox "><a href="https://docs.nextcloud.com/server/latest/developer_manual/digging_deeper/two-factor-provider.html" target="_blank" title="Write a new 2factor authentication plugin" class=""><div class="iconbox_container "><div class="icon"><i class="fas fa-code"></i></div> <div class="title_and_description"> <h4 class="title">Write a new 2factor authentication plugin</h4><h5 class="subtitle"></h5><span class="see_more">See more <i class="fas fa-angle-right"></i></span></div></div></a></div></div></div></div></div><div class="vc_row wpb_row vc_row-fluid vc_row-o-equal-height vc_row-flex"><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-3 vc_col-md-3"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="nc_iconbox nc_iconbox feature_iconbox "><a href="https://docs.nextcloud.com/server/latest/developer_manual/digging_deeper/users.html" target="_blank" title="Write a new user-management backend" class=""><div class="iconbox_container "><div class="icon"><i class="fas fa-code"></i></div> <div class="title_and_description"> <h4 class="title">Write a new user-management backend</h4><h5 class="subtitle"></h5><span class="see_more">See more <i class="fas fa-angle-right"></i></span></div></div></a></div></div></div></div><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-3 vc_col-md-3"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="nc_iconbox nc_iconbox feature_iconbox "><a href="https://help.nextcloud.com/t/results-of-the-nextcloud-community-survey-2021/127396" target="_blank" title="Usage and infrastructure data of the community survey 2021" class=""><div class="iconbox_container "><div class="icon"><i class="fas fa-code"></i></div> <div class="title_and_description"> <h4 class="title">Usage and infrastructure data of the community survey 2021</h4><h5 class="subtitle"></h5><span class="see_more">See more <i class="fas fa-angle-right"></i></span></div></div></a></div></div></div></div><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-3 vc_col-md-3"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="nc_iconbox nc_iconbox feature_iconbox "><a href="https://docs.nextcloud.com/server/latest/developer_manual/client_apis/LoginFlow/index.html" target="_blank" title="Login Flow" class=""><div class="iconbox_container "><div class="icon"><i class="fas fa-code"></i></div> <div class="title_and_description"> <h4 class="title">Login Flow</h4><h5 class="subtitle"></h5><span class="see_more">See more <i class="fas fa-angle-right"></i></span></div></div></a></div></div></div></div><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-3 vc_col-md-3"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="nc_iconbox nc_iconbox feature_iconbox "><a href="https://docs.nextcloud.com/server/latest/developer_manual//client_apis/index.html" target="_blank" title="Client APIs" class=""><div class="iconbox_container "><div class="icon"><i class="fas fa-code"></i></div> <div class="title_and_description"> <h4 class="title">Client APIs</h4><h5 class="subtitle"></h5><span class="see_more">See more <i class="fas fa-angle-right"></i></span></div></div></a></div></div></div></div></div><div class="vc_row wpb_row vc_row-fluid vc_row-o-equal-height vc_row-flex"><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-3 vc_col-md-3"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="nc_iconbox nc_iconbox feature_iconbox "><a href="https://docs.nextcloud.com/server/latest/admin_manual//configuration_user/user_provisioning_api.html" target="_blank" title="User provisioning via REST" class=""><div class="iconbox_container "><div class="icon"><i class="fas fa-code"></i></div> <div class="title_and_description"> <h4 class="title">User provisioning via REST</h4><h5 class="subtitle"></h5><span class="see_more">See more <i class="fas fa-angle-right"></i></span></div></div></a></div></div></div></div><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-3 vc_col-md-3"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="nc_iconbox nc_iconbox feature_iconbox "><a href="https://nextcloud-talk.readthedocs.io/en/latest/" target="_blank" title="Nextcloud Talk REST API" class=""><div class="iconbox_container "><div class="icon"><i class="fas fa-code"></i></div> <div class="title_and_description"> <h4 class="title">Nextcloud Talk REST API</h4><h5 class="subtitle"></h5><span class="see_more">See more <i class="fas fa-angle-right"></i></span></div></div></a></div></div></div></div><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-3 vc_col-md-3"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="nc_iconbox nc_iconbox feature_iconbox "><a href="https://docs.nextcloud.com/server/latest/developer_manual/client_apis/android_library/index.html#nextcloud-android-library" target="_blank" title="Access Nextcloud through our Android library" class=""><div class="iconbox_container "><div class="icon"><i class="fas fa-code"></i></div> <div class="title_and_description"> <h4 class="title">Access Nextcloud through our Android library</h4><h5 class="subtitle"></h5><span class="see_more">See more <i class="fas fa-angle-right"></i></span></div></div></a></div></div></div></div><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-3 vc_col-md-3"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="nc_iconbox nc_iconbox feature_iconbox "><a href="https://github.com/nextcloud/NextcloudKit" target="_blank" title="Access Nextcloud through our iOS library" class=""><div class="iconbox_container "><div class="icon"><i class="fas fa-code"></i></div> <div class="title_and_description"> <h4 class="title">Access Nextcloud through our iOS library</h4><h5 class="subtitle"></h5><span class="see_more">See more <i class="fas fa-angle-right"></i></span></div></div></a></div></div></div></div></div><div class="vc_row wpb_row vc_row-fluid vc_row-o-equal-height vc_row-flex"><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-3 vc_col-md-3"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="nc_iconbox nc_iconbox feature_iconbox "><a href="https://github.com/nextcloud/client-sdks" target="_blank" title="Client SDKs" class=""><div class="iconbox_container "><div class="icon"><i class="fas fa-code"></i></div> <div class="title_and_description"> <h4 class="title">Client SDKs</h4><h5 class="subtitle"></h5><span class="see_more">See more <i class="fas fa-angle-right"></i></span></div></div></a></div></div></div></div><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-3 vc_col-md-3"><div class="vc_column-inner"><div class="wpb_wrapper"></div></div></div><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-3 vc_col-md-3"><div class="vc_column-inner"><div class="wpb_wrapper"></div></div></div><div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-3 vc_col-md-3"><div class="vc_column-inner"><div class="wpb_wrapper"></div></div></div></div></div></section><section data-rocket-location-hash="e03ad0687b793187c40d235930634ca4" class="vc_section nc-section-gradient-bg white-text vc_custom_1673439915574"><div class="overlay-gradient"></div><div class="container"><div class="vc_row wpb_row vc_row-fluid vc_row-o-content-middle vc_row-flex"><div class="text-right wpb_column vc_column_container vc_col-sm-6"><div class="vc_column-inner"><div class="wpb_wrapper"> <div class="wpb_text_column wpb_content_element nc-section-title" > <div class="wpb_wrapper"> <h2>Get involved</h2> </div> </div> <div class="wpb_text_column wpb_content_element vc_custom_1673358815540" > <div class="wpb_wrapper"> <p>Open Source empowers you. Where a software-as-a-service might allow you to tweak and build connectors, with Nextcloud you can go all the way and enhance the server itself or apps from other authors with new API鈥檚 and core functionality.</p> </div> </div> <div class="vc_btn3-container btn-white vc_btn3-right vc_do_btn" ><a class="vc_general vc_btn3 vc_btn3-size-md vc_btn3-shape-rounded vc_btn3-style-modern vc_btn3-icon-right vc_btn3-color-grey" href="https://nextcloud.com/contribute/" title="Contribute to Nextcloud">Contribute to Nextcloud <i class="vc_btn3-icon fas fa-external-link-alt"></i></a></div></div></div></div><div class="cta_buttons wpb_column vc_column_container vc_col-sm-6"><div class="vc_column-inner"><div class="wpb_wrapper"> <div class="wpb_single_image wpb_content_element vc_align_left"> <figure class="wpb_wrapper vc_figure"> <div class="vc_single_image-wrapper vc_box_border_grey"><img decoding="async" width="1024" height="1024" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%201024'%3E%3C/svg%3E" class="vc_single_image-img attachment-large" alt="Nextcloud focus on the needs of users" title="Nextcloud focus on the needs of users" data-lazy-src="https://nextcloud.com/c/uploads/2022/10/nextcloud-user-focus-design-illustration-1.svg" /><noscript><img decoding="async" width="1024" height="1024" src="https://nextcloud.com/c/uploads/2022/10/nextcloud-user-focus-design-illustration-1.svg" class="vc_single_image-img attachment-large" alt="Nextcloud focus on the needs of users" title="Nextcloud focus on the needs of users" /></noscript></div> </figure> </div> </div></div></div></div></div></section><section data-rocket-location-hash="a021af43b4e7458daf9478775a3f5ebe" class="vc_section vertical-page-intro powerful_collaboration vc_custom_1668675817919"><div class="overlay-gradient"></div><div class="container"><div class="vc_row wpb_row vc_row-fluid vc_custom_1663598629396 vc_column-gap-10 vc_row-o-content-middle vc_row-flex"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper"> <div class="wpb_single_image wpb_content_element vc_align_center nc-sep-logo"> <figure class="wpb_wrapper vc_figure"> <div class="vc_single_image-wrapper vc_box_border_grey"><img decoding="async" width="150" height="150" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20150%20150'%3E%3C/svg%3E" class="vc_single_image-img attachment-thumbnail" alt="Nextcloud Logo" title="Nextcloud Logo" data-lazy-src="https://nextcloud.com/c/uploads/2022/08/nextcloud-logo-icon.svg" /><noscript><img decoding="async" width="150" height="150" src="https://nextcloud.com/c/uploads/2022/08/nextcloud-logo-icon.svg" class="vc_single_image-img attachment-thumbnail" alt="Nextcloud Logo" title="Nextcloud Logo" /></noscript></div> </figure> </div> <div class="wpb_text_column wpb_content_element intro-title nc-section-title" > <div class="wpb_wrapper"> <h2 style="text-align: center;">Featured community apps</h2> </div> </div> </div></div></div></div><div class="vc_row wpb_row vc_row-fluid row_features_carousel"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper"> <div class="box-repeater"> <div id="features_carousel" class="features_carousel owl-carousel owl-theme"> <div class="feature_item "> <a href="https://nextcloud.com/blog/unsung-heroes-of-the-nextcloud-community-janis-koehr/" target="" title="Nextcloud OCR"> <div class="feature_image"> <img decoding="async" width="1024" height="576" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%20576'%3E%3C/svg%3E" class="attachment-large size-large" alt="Nextcloud OCR" data-lazy-srcset="https://nextcloud.com/c/uploads/2023/01/nextcloud-ocr-1024x576.jpg 1024w, https://nextcloud.com/c/uploads/2023/01/nextcloud-ocr-300x169.jpg 300w, https://nextcloud.com/c/uploads/2023/01/nextcloud-ocr-768x432.jpg 768w, https://nextcloud.com/c/uploads/2023/01/nextcloud-ocr.jpg 1200w" data-lazy-sizes="(max-width: 1024px) 100vw, 1024px" data-lazy-src="https://nextcloud.com/c/uploads/2023/01/nextcloud-ocr-1024x576.jpg" /><noscript><img decoding="async" width="1024" height="576" src="https://nextcloud.com/c/uploads/2023/01/nextcloud-ocr-1024x576.jpg" class="attachment-large size-large" alt="Nextcloud OCR" srcset="https://nextcloud.com/c/uploads/2023/01/nextcloud-ocr-1024x576.jpg 1024w, https://nextcloud.com/c/uploads/2023/01/nextcloud-ocr-300x169.jpg 300w, https://nextcloud.com/c/uploads/2023/01/nextcloud-ocr-768x432.jpg 768w, https://nextcloud.com/c/uploads/2023/01/nextcloud-ocr.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></noscript> </div> </a> <div class="feature_inner with_link"> <h5 class="title"> <a href="https://nextcloud.com/blog/unsung-heroes-of-the-nextcloud-community-janis-koehr/" title="Nextcloud OCR" class=""> Nextcloud OCR </a> </h5> <div data-rocket-location-hash="b767bd0623d7d35be98ad772ff281622" class="description">The app uses tesseract-js in the browser in order to extract text from images (png, jpeg, tiff) and PDFs and saves the output file to the source folder in nextcloud. That for example enables you to search in it.</div> <span class="read_more"> <a href="https://nextcloud.com/blog/unsung-heroes-of-the-nextcloud-community-janis-koehr/" target="" title="Nextcloud OCR" class=""> Read the interview <i class="fas fa-angle-right"></i> </a> </span> </div> </div> <div class="feature_item "> <a href="https://nextcloud.com/blog/digital-imaging-for-medicine-in-nextcloud/" target="" title="Digital Imaging for Medicine"> <div class="feature_image"> <img decoding="async" width="1024" height="576" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%20576'%3E%3C/svg%3E" class="attachment-large size-large" alt="Digital Imaging for Medicine" data-lazy-srcset="https://nextcloud.com/c/uploads/2023/01/nextcloud-digital-imaging-for-medicine-1024x576.jpg 1024w, https://nextcloud.com/c/uploads/2023/01/nextcloud-digital-imaging-for-medicine-300x169.jpg 300w, https://nextcloud.com/c/uploads/2023/01/nextcloud-digital-imaging-for-medicine-768x432.jpg 768w, https://nextcloud.com/c/uploads/2023/01/nextcloud-digital-imaging-for-medicine.jpg 1200w" data-lazy-sizes="(max-width: 1024px) 100vw, 1024px" data-lazy-src="https://nextcloud.com/c/uploads/2023/01/nextcloud-digital-imaging-for-medicine-1024x576.jpg" /><noscript><img decoding="async" width="1024" height="576" src="https://nextcloud.com/c/uploads/2023/01/nextcloud-digital-imaging-for-medicine-1024x576.jpg" class="attachment-large size-large" alt="Digital Imaging for Medicine" srcset="https://nextcloud.com/c/uploads/2023/01/nextcloud-digital-imaging-for-medicine-1024x576.jpg 1024w, https://nextcloud.com/c/uploads/2023/01/nextcloud-digital-imaging-for-medicine-300x169.jpg 300w, https://nextcloud.com/c/uploads/2023/01/nextcloud-digital-imaging-for-medicine-768x432.jpg 768w, https://nextcloud.com/c/uploads/2023/01/nextcloud-digital-imaging-for-medicine.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></noscript> </div> </a> <div class="feature_inner with_link"> <h5 class="title"> <a href="https://nextcloud.com/blog/digital-imaging-for-medicine-in-nextcloud/" title="Digital Imaging for Medicine" class=""> Digital Imaging for Medicine </a> </h5> <div class="description">The DICOM Viewer allows the user to display and manipulate DICOM images with a streamlined sidebar and viewer, all without leaving Nextcloud. The sidebar parses DICOM files and displays all DICOM attributes, such as Patient ID, Patient Name, and Study Date/Time, in a convenient details panel. A critical search feature on the sidebar enables the user to quickly search for specific DICOM attributes.</div> <span class="read_more"> <a href="https://nextcloud.com/blog/digital-imaging-for-medicine-in-nextcloud/" target="" title="Digital Imaging for Medicine" class=""> Read about the DICOM viewer <i class="fas fa-angle-right"></i> </a> </span> </div> </div> <div class="feature_item "> <a href="https://nextcloud.com/blog/cospend-another-bit-in-the-nextcloud-ecosystem/" target="" title="Cospend"> <div class="feature_image"> <img decoding="async" width="1024" height="576" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%20576'%3E%3C/svg%3E" class="attachment-large size-large" alt="Nextcloud Cospend" data-lazy-srcset="https://nextcloud.com/c/uploads/2023/01/cospend-1024x576.jpg 1024w, https://nextcloud.com/c/uploads/2023/01/cospend-300x169.jpg 300w, https://nextcloud.com/c/uploads/2023/01/cospend-768x432.jpg 768w, https://nextcloud.com/c/uploads/2023/01/cospend.jpg 1200w" data-lazy-sizes="(max-width: 1024px) 100vw, 1024px" data-lazy-src="https://nextcloud.com/c/uploads/2023/01/cospend-1024x576.jpg" /><noscript><img decoding="async" width="1024" height="576" src="https://nextcloud.com/c/uploads/2023/01/cospend-1024x576.jpg" class="attachment-large size-large" alt="Nextcloud Cospend" srcset="https://nextcloud.com/c/uploads/2023/01/cospend-1024x576.jpg 1024w, https://nextcloud.com/c/uploads/2023/01/cospend-300x169.jpg 300w, https://nextcloud.com/c/uploads/2023/01/cospend-768x432.jpg 768w, https://nextcloud.com/c/uploads/2023/01/cospend.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></noscript> </div> </a> <div class="feature_inner with_link"> <h5 class="title"> <a href="https://nextcloud.com/blog/cospend-another-bit-in-the-nextcloud-ecosystem/" title="Cospend" class=""> Cospend </a> </h5> <div class="description">Nextcloud Cospend is a group/shared budget manager. It was inspired by the great IHateMoney. You can use it when you share a house, when you go on vacation with friends, whenever you share money with others.</div> <span class="read_more"> <a href="https://nextcloud.com/blog/cospend-another-bit-in-the-nextcloud-ecosystem/" target="" title="Cospend" class=""> Read about Cospend <i class="fas fa-angle-right"></i> </a> </span> </div> </div> </div> <script type="rocketlazyloadscript"> jQuery(document).ready(function ($) { $('#features_carousel').owlCarousel({ loop:false, autoplay: false, margin:30, dots: false, nav:true, responsive:{ 0:{ items:1 }, 600:{ items:2 }, 1000:{ items: 3 } } }); }); </script> </div> </div></div></div></div></div></section><section data-rocket-location-hash="4716a479847cece64f5648d3028e243f" class="vc_section nc_default_section lightBG"><div class="overlay-gradient"></div><div class="container"><div class="vc_row wpb_row vc_row-fluid vc_column-gap-20 vc_row-o-content-middle vc_row-flex"><div class="text-right wpb_column vc_column_container vc_col-sm-6"><div class="vc_column-inner"><div class="wpb_wrapper"> <div class="wpb_text_column wpb_content_element nc-section-title" > <div class="wpb_wrapper"> <h2>Nextcloud Include</h2> </div> </div> <div class="wpb_text_column wpb_content_element vc_custom_1673340293413" > <div class="wpb_wrapper"> <p>Diversity strengthens a community. The Nextcloud Include initiative helps underrepresented groups to join the Nextcloud project, building an inclusive and diverse space where we collaborate and develop world class software.</p> </div> </div> <div class="vc_btn3-container btn-main vc_btn3-inline vc_do_btn" ><a class="vc_general vc_btn3 vc_btn3-size-md vc_btn3-shape-rounded vc_btn3-style-modern vc_btn3-icon-right vc_btn3-color-grey" href="https://nextcloud.com/include/" title="Learn more and request mentoring">Learn more and request mentoring <i class="vc_btn3-icon fas fa-angle-right"></i></a></div></div></div></div><div class="wpb_column vc_column_container vc_col-sm-6"><div class="vc_column-inner"><div class="wpb_wrapper"> <div class="wpb_single_image wpb_content_element vc_align_left imageRoundShadow"> <figure class="wpb_wrapper vc_figure"> <a class="" data-lightbox="lightbox[rel-2452-1483383159]" href="https://nextcloud.com/c/uploads/2022/04/verticals-small.jpg" target="_self" class="vc_single_image-wrapper vc_box_border_grey"><img decoding="async" width="800" height="523" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20800%20523'%3E%3C/svg%3E" class="vc_single_image-img attachment-large" alt="Nextcloud Include" title="Nextcloud Include" data-lazy-srcset="https://nextcloud.com/c/uploads/2022/04/verticals-small.jpg 800w, https://nextcloud.com/c/uploads/2022/04/verticals-small-300x196.jpg 300w, https://nextcloud.com/c/uploads/2022/04/verticals-small-768x502.jpg 768w" data-lazy-sizes="(max-width: 800px) 100vw, 800px" data-lazy-src="https://nextcloud.com/c/uploads/2022/04/verticals-small.jpg" /><noscript><img decoding="async" width="800" height="523" src="https://nextcloud.com/c/uploads/2022/04/verticals-small.jpg" class="vc_single_image-img attachment-large" alt="Nextcloud Include" title="Nextcloud Include" srcset="https://nextcloud.com/c/uploads/2022/04/verticals-small.jpg 800w, https://nextcloud.com/c/uploads/2022/04/verticals-small-300x196.jpg 300w, https://nextcloud.com/c/uploads/2022/04/verticals-small-768x502.jpg 768w" sizes="(max-width: 800px) 100vw, 800px" /></noscript></a> </figure> </div> </div></div></div></div></div></section><section data-rocket-location-hash="1626dce6043a5c687e10ba9fec1d38c6" class="vc_section nc_default_section vc_custom_1668761753143"><div class="overlay-gradient"></div><div class="container"><div class="vc_row wpb_row vc_row-fluid vc_column-gap-30 vc_row-o-content-middle vc_row-flex"><div class="wpb_column vc_column_container vc_col-sm-6"><div class="vc_column-inner"><div class="wpb_wrapper"> <div class="wpb_single_image wpb_content_element vc_align_center"> <figure class="wpb_wrapper vc_figure"> <div class="vc_single_image-wrapper vc_box_border_grey"><img decoding="async" width="1024" height="1024" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%201024'%3E%3C/svg%3E" class="vc_single_image-img attachment-large" alt="Travel support" title="Travel support" data-lazy-src="https://nextcloud.com/c/uploads/2022/12/nc-travel-support.svg" /><noscript><img decoding="async" width="1024" height="1024" src="https://nextcloud.com/c/uploads/2022/12/nc-travel-support.svg" class="vc_single_image-img attachment-large" alt="Travel support" title="Travel support" /></noscript></div> </figure> </div> </div></div></div><div class="centerMobile wpb_column vc_column_container vc_col-sm-6"><div class="vc_column-inner"><div class="wpb_wrapper"> <div class="wpb_text_column wpb_content_element nc-section-title" > <div class="wpb_wrapper"> <h2>Travel support</h2> </div> </div> <div class="vc_separator wpb_content_element vc_separator_align_center vc_sep_width_20 vc_sep_border_width_2 vc_sep_pos_align_left vc_separator_no_text wpb_content_element wpb_content_element nc_separator_line" ><span class="vc_sep_holder vc_sep_holder_l"><span class="vc_sep_line"></span></span><span class="vc_sep_holder vc_sep_holder_r"><span class="vc_sep_line"></span></span> </div> <div class="wpb_text_column wpb_content_element vc_custom_1673340505154" > <div class="wpb_wrapper"> <p>We鈥檇 love to have our contributors join our events, and we provide travel support for those who can鈥檛 afford to travel themselves!</p> </div> </div> <div class="vc_btn3-container btn-main vc_btn3-inline vc_do_btn" ><a class="vc_general vc_btn3 vc_btn3-size-md vc_btn3-shape-rounded vc_btn3-style-modern vc_btn3-icon-right vc_btn3-color-grey" href="https://cloud.nextcloud.com/apps/forms/NMWSkc3ZwiDd43tL/submit" title="Request travel support" target="_blank">Request travel support <i class="vc_btn3-icon fas fa-angle-right"></i></a></div></div></div></div></div></div></section><section data-rocket-location-hash="3a3b02ab02bfbff5e6aa6cedeb820500" class="vc_section nc_default_section vc_custom_1668761753143"><div class="overlay-gradient"></div><div class="container"><div class="vc_row wpb_row vc_row-fluid vc_column-gap-30 vc_row-o-content-middle vc_row-flex"><div class="centerMobile text-right wpb_column vc_column_container vc_col-sm-6"><div class="vc_column-inner"><div class="wpb_wrapper"> <div class="wpb_text_column wpb_content_element nc-section-title" > <div class="wpb_wrapper"> <h2>Improve our<br /> developer information</h2> </div> </div> <div class="vc_separator wpb_content_element vc_separator_align_center vc_sep_width_20 vc_sep_border_width_2 vc_sep_pos_align_right vc_separator_no_text wpb_content_element wpb_content_element nc_separator_line" ><span class="vc_sep_holder vc_sep_holder_l"><span class="vc_sep_line"></span></span><span class="vc_sep_holder vc_sep_holder_r"><span class="vc_sep_line"></span></span> </div> <div class="wpb_text_column wpb_content_element vc_custom_1673346551000" > <div class="wpb_wrapper"> <p>Have ideas on how to improve our developer information? Sign up to our forum and join the discussion. We love to hear your thoughts!</p> </div> </div> <div class="vc_btn3-container btn-main vc_btn3-right vc_do_btn" ><a class="vc_general vc_btn3 vc_btn3-size-md vc_btn3-shape-rounded vc_btn3-style-modern vc_btn3-icon-right vc_btn3-color-grey" href="https://help.nextcloud.com/c/dev/11" title="Share your ideas" target="_blank">Share your ideas <i class="vc_btn3-icon fas fa-angle-right"></i></a></div></div></div></div><div class="wpb_column vc_column_container vc_col-sm-6"><div class="vc_column-inner"><div class="wpb_wrapper"> <div class="wpb_single_image wpb_content_element vc_align_center imageRoundShadow"> <figure class="wpb_wrapper vc_figure"> <a class="" data-lightbox="lightbox[rel-2452-2175727411]" href="https://nextcloud.com/c/uploads/2022/09/Nextcloud-conference-scaled.jpg" target="_self" class="vc_single_image-wrapper vc_box_border_grey"><img decoding="async" width="2560" height="1707" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%202560%201707'%3E%3C/svg%3E" class="vc_single_image-img attachment-full" alt="Nextcloud-conference" title="Nextcloud-conference" data-lazy-srcset="https://nextcloud.com/c/uploads/2022/09/Nextcloud-conference-scaled.jpg 2560w, https://nextcloud.com/c/uploads/2022/09/Nextcloud-conference-300x200.jpg 300w, https://nextcloud.com/c/uploads/2022/09/Nextcloud-conference-864x576.jpg 864w, https://nextcloud.com/c/uploads/2022/09/Nextcloud-conference-768x512.jpg 768w, https://nextcloud.com/c/uploads/2022/09/Nextcloud-conference-1536x1024.jpg 1536w, https://nextcloud.com/c/uploads/2022/09/Nextcloud-conference-2048x1365.jpg 2048w" data-lazy-sizes="(max-width: 2560px) 100vw, 2560px" data-lazy-src="https://nextcloud.com/c/uploads/2022/09/Nextcloud-conference-scaled.jpg" /><noscript><img decoding="async" width="2560" height="1707" src="https://nextcloud.com/c/uploads/2022/09/Nextcloud-conference-scaled.jpg" class="vc_single_image-img attachment-full" alt="Nextcloud-conference" title="Nextcloud-conference" srcset="https://nextcloud.com/c/uploads/2022/09/Nextcloud-conference-scaled.jpg 2560w, https://nextcloud.com/c/uploads/2022/09/Nextcloud-conference-300x200.jpg 300w, https://nextcloud.com/c/uploads/2022/09/Nextcloud-conference-864x576.jpg 864w, https://nextcloud.com/c/uploads/2022/09/Nextcloud-conference-768x512.jpg 768w, https://nextcloud.com/c/uploads/2022/09/Nextcloud-conference-1536x1024.jpg 1536w, https://nextcloud.com/c/uploads/2022/09/Nextcloud-conference-2048x1365.jpg 2048w" sizes="(max-width: 2560px) 100vw, 2560px" /></noscript></a> </figure> </div> </div></div></div></div></div></section><section data-rocket-location-hash="9a7415de93296a7b7aa9e6ad4c65f6a0" id="nc_events_section_2" class="vc_section nc_events_section_2 nc_default_section"><div class="overlay-gradient"></div><div class="container"><div class="vc_row wpb_row vc_row-fluid vc_row-o-content-middle vc_row-flex"><div class="wpb_column vc_column_container vc_col-sm-6"><div class="vc_column-inner"><div class="wpb_wrapper"> <div class="wpb_single_image wpb_content_element vc_align_center img_stack_up"> <figure class="wpb_wrapper vc_figure"> <a href="https://nextcloud.com/events/" target="_self" class="vc_single_image-wrapper vc_box_border_grey"><img decoding="async" width="1" height="1" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E" class="vc_single_image-img attachment-full" alt="Nextcloud events" title="Nextcloud events" data-lazy-src="https://nextcloud.com/c/uploads/2022/11/nc-events-illustration.svg" /><noscript><img decoding="async" width="1" height="1" src="https://nextcloud.com/c/uploads/2022/11/nc-events-illustration.svg" class="vc_single_image-img attachment-full" alt="Nextcloud events" title="Nextcloud events" /></noscript></a> </figure> </div> </div></div></div><div class="centerMobile wpb_column vc_column_container vc_col-sm-6"><div class="vc_column-inner"><div class="wpb_wrapper"> <div class="wpb_text_column wpb_content_element" > <div class="wpb_wrapper"> <h2>Nextcloud events</h2> </div> </div> <div class="vc_separator wpb_content_element vc_separator_align_center vc_sep_width_20 vc_sep_border_width_2 vc_sep_pos_align_left vc_separator_no_text wpb_content_element wpb_content_element nc_separator_line" ><span class="vc_sep_holder vc_sep_holder_l"><span style="border-color:#0082c9;" class="vc_sep_line"></span></span><span class="vc_sep_holder vc_sep_holder_r"><span style="border-color:#0082c9;" class="vc_sep_line"></span></span> </div> <div class="wpb_text_column wpb_content_element vc_custom_1673347046279" > <div class="wpb_wrapper"> <p>Nextcloud attends and organizes events where you can learn more about building apps and integrations!</p> </div> </div> <div class="vc_btn3-container btn-main vc_btn3-left vc_custom_1673356330050 vc_do_btn" ><a class="vc_general vc_btn3 vc_btn3-size-md vc_btn3-shape-rounded vc_btn3-style-modern vc_btn3-icon-right vc_btn3-color-grey" href="https://nextcloud.com/events/" title="More events">More events <i class="vc_btn3-icon fas fa-angle-right"></i></a></div></div></div></div></div></div></section><section data-rocket-location-hash="b1979acccb41a545324ee19539a9fca6" id="cta-contact" class="vc_section cta-contact nc-section-gradient-bg white-text vc_custom_1663589051447"><div class="overlay-gradient"></div><div class="container"><div class="vc_row wpb_row vc_row-fluid vc_column-gap-15 vc_row-o-content-middle vc_row-flex"><div class="text-right wpb_column vc_column_container vc_col-sm-6"><div class="vc_column-inner"><div class="wpb_wrapper"> <div class="wpb_text_column wpb_content_element nc-section-title" > <div class="wpb_wrapper"> <h2>Need help?</h2> </div> </div> <div class="wpb_text_column wpb_content_element vc_custom_1673338646228" > <div class="wpb_wrapper"> <p>Stuck with your app?<br /> We love to help!</p> </div> </div> </div></div></div><div class="wpb_column vc_column_container vc_col-sm-6"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="vc_btn3-container btn-white vc_btn3-left vc_do_btn" ><a class="vc_general vc_btn3 vc_btn3-size-md vc_btn3-shape-rounded vc_btn3-style-modern vc_btn3-icon-right vc_btn3-color-grey" href="https://help.nextcloud.com/c/dev/11" title="Get help on the forums" target="_blank">Get help on the forums <i class="vc_btn3-icon fas fa-external-link-alt"></i></a></div><div class="vc_btn3-container btn-white vc_btn3-left vc_custom_1673344892055 vc_do_btn" ><a class="vc_general vc_btn3 vc_btn3-size-md vc_btn3-shape-rounded vc_btn3-style-modern vc_btn3-icon-right vc_btn3-color-grey" href="https://cloud.nextcloud.com/call/xs25tz5y" title="Join our dev chat" target="_blank">Join our dev chat <i class="vc_btn3-icon fas fa-external-link-alt"></i></a></div></div></div></div></div><div id="discuss_app" class="vc_row wpb_row vc_row-fluid vc_custom_1673450991953 vc_column-gap-20"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="vc_separator wpb_content_element vc_separator_align_center vc_sep_width_20 vc_sep_border_width_2 vc_sep_pos_align_center vc_separator_no_text vc_sep_color_white wpb_content_element wpb_content_element nc_separator_line white" ><span class="vc_sep_holder vc_sep_holder_l"><span class="vc_sep_line"></span></span><span class="vc_sep_holder vc_sep_holder_r"><span class="vc_sep_line"></span></span> </div> <div class="wpb_text_column wpb_content_element" > <div class="wpb_wrapper"> <h2 style="text-align: center;">Let&#8217;s discuss your app</h2> </div> </div> <div class="wpb_text_column wpb_content_element" > <div class="wpb_wrapper"> <p style="text-align: center;">Let&#8217;s talk about how to promote your app</p> </div> </div> </div></div></div></div><div class="vc_row wpb_row vc_row-fluid"><div class="wpb_column vc_column_container vc_col-sm-2"><div class="vc_column-inner"><div class="wpb_wrapper"></div></div></div><div class="wpb_column vc_column_container vc_col-sm-8"><div class="vc_column-inner"><div class="wpb_wrapper"><noscript class="ninja-forms-noscript-message"> Notice: JavaScript is required for this content.</noscript> <div id="nf-form-30-cont" class="nf-form-cont form_no_title" aria-live="polite" aria-labelledby="nf-form-title-30" aria-describedby="nf-form-errors-30" role="form"> <div class="nf-loading-spinner"></div> </div> <!-- That data is being printed as a workaround to page builders reordering the order of the scripts loaded--> <script>var formDisplay=1;var nfForms=nfForms||[];var form=[];form.id='30';form.settings={"objectType":"Form Setting","editActive":true,"title":"Discuss your app form","created_at":"2016-08-24 16:39:20","form_title":"Contact Me","default_label_pos":"hidden","show_title":0,"clear_complete":"1","hide_complete":"1","logged_in":"0","key":"","conditions":[],"wrapper_class":"form_no_title","element_class":"","add_submit":"1","not_logged_in_msg":"","sub_limit_number":"","sub_limit_msg":"","calculations":[],"formContentData":["name","email","describe_the_idea_of_your_app_1673444731614","describe_how_you_d_like_to_work_with_us_1673444782397","subscribe_to_our_newsletter_optional_1714741980133","terms_and_conditions_1673446117907","submit"],"container_styles_background-color":"","container_styles_border":"","container_styles_border-style":"","container_styles_border-color":"","container_styles_color":"","container_styles_height":"","container_styles_width":"","container_styles_font-size":"","container_styles_margin":"","container_styles_padding":"","container_styles_display":"","container_styles_float":"","container_styles_show_advanced_css":"0","container_styles_advanced":"","title_styles_background-color":"","title_styles_border":"","title_styles_border-style":"","title_styles_border-color":"","title_styles_color":"","title_styles_height":"","title_styles_width":"","title_styles_font-size":"","title_styles_margin":"","title_styles_padding":"","title_styles_display":"","title_styles_float":"","title_styles_show_advanced_css":"0","title_styles_advanced":"","row_styles_background-color":"","row_styles_border":"","row_styles_border-style":"","row_styles_border-color":"","row_styles_color":"","row_styles_height":"","row_styles_width":"","row_styles_font-size":"","row_styles_margin":"","row_styles_padding":"","row_styles_display":"","row_styles_show_advanced_css":"0","row_styles_advanced":"","row-odd_styles_background-color":"","row-odd_styles_border":"","row-odd_styles_border-style":"","row-odd_styles_border-color":"","row-odd_styles_color":"","row-odd_styles_height":"","row-odd_styles_width":"","row-odd_styles_font-size":"","row-odd_styles_margin":"","row-odd_styles_padding":"","row-odd_styles_display":"","row-odd_styles_show_advanced_css":"0","row-odd_styles_advanced":"","success-msg_styles_background-color":"","success-msg_styles_border":"","success-msg_styles_border-style":"","success-msg_styles_border-color":"","success-msg_styles_color":"","success-msg_styles_height":"","success-msg_styles_width":"","success-msg_styles_font-size":"","success-msg_styles_margin":"","success-msg_styles_padding":"","success-msg_styles_display":"","success-msg_styles_show_advanced_css":"0","success-msg_styles_advanced":"","error_msg_styles_background-color":"","error_msg_styles_border":"","error_msg_styles_border-style":"","error_msg_styles_border-color":"","error_msg_styles_color":"","error_msg_styles_height":"","error_msg_styles_width":"","error_msg_styles_font-size":"","error_msg_styles_margin":"","error_msg_styles_padding":"","error_msg_styles_display":"","error_msg_styles_show_advanced_css":"0","error_msg_styles_advanced":"","allow_public_link":0,"embed_form":"","changeEmailErrorMsg":"Please enter a valid email address!","changeDateErrorMsg":"Please enter a valid date!","confirmFieldErrorMsg":"These fields must match!","fieldNumberNumMinError":"Number Min Error","fieldNumberNumMaxError":"Number Max Error","fieldNumberIncrementBy":"Please increment by ","formErrorsCorrectErrors":"Please correct errors before submitting this form.","validateRequiredField":"This is a required field.","honeypotHoneypotError":"Honeypot Error","fieldsMarkedRequired":"Fields marked with an <span class=\"ninja-forms-req-symbol\">*<\/span> are required","currency":"","unique_field_error":"A form with this value has already been submitted.","drawerDisabled":false,"form_title_heading_level":"3","ninjaForms":"Ninja Forms","fieldTextareaRTEInsertLink":"Insert Link","fieldTextareaRTEInsertMedia":"Insert Media","fieldTextareaRTESelectAFile":"Select a file","formHoneypot":"If you are a human seeing this field, please leave it empty.","fileUploadOldCodeFileUploadInProgress":"File Upload in Progress.","fileUploadOldCodeFileUpload":"FILE UPLOAD","currencySymbol":"&euro;","thousands_sep":",","decimal_point":".","siteLocale":"en_US","dateFormat":"d\/m\/Y","startOfWeek":"1","of":"of","previousMonth":"Previous Month","nextMonth":"Next Month","months":["January","February","March","April","May","June","July","August","September","October","November","December"],"monthsShort":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"weekdays":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"weekdaysShort":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"weekdaysMin":["Su","Mo","Tu","We","Th","Fr","Sa"],"recaptchaConsentMissing":"reCaptcha validation couldn&#039;t load.","recaptchaMissingCookie":"reCaptcha v3 validation couldn&#039;t load the cookie needed to submit the form.","recaptchaConsentEvent":"Accept reCaptcha cookies before sending the form.","currency_symbol":"","beforeForm":"","beforeFields":"","afterFields":"","afterForm":""};form.fields=[{"objectType":"Field","objectDomain":"fields","editActive":false,"order":1,"idAttribute":"id","label":"Name","key":"name","type":"textbox","created_at":"2016-08-24 16:39:20","label_pos":"hidden","required":1,"placeholder":"Your name..","default":"","wrapper_class":"","element_class":"","container_class":"first one-half","input_limit":"","input_limit_type":"characters","input_limit_msg":"Character(s) left","manual_key":"","disable_input":"","admin_label":"","help_text":"","desc_text":"","disable_browser_autocomplete":"","mask":"","custom_mask":"","wrap_styles_background-color":"","wrap_styles_border":"","wrap_styles_border-style":"","wrap_styles_border-color":"","wrap_styles_color":"","wrap_styles_height":"","wrap_styles_width":"","wrap_styles_font-size":"","wrap_styles_margin":"","wrap_styles_padding":"","wrap_styles_display":"","wrap_styles_float":"","wrap_styles_show_advanced_css":0,"wrap_styles_advanced":"","label_styles_background-color":"","label_styles_border":"","label_styles_border-style":"","label_styles_border-color":"","label_styles_color":"","label_styles_height":"","label_styles_width":"","label_styles_font-size":"","label_styles_margin":"","label_styles_padding":"","label_styles_display":"","label_styles_float":"","label_styles_show_advanced_css":0,"label_styles_advanced":"","element_styles_background-color":"","element_styles_border":"","element_styles_border-style":"","element_styles_border-color":"","element_styles_color":"","element_styles_height":"","element_styles_width":"","element_styles_font-size":"","element_styles_margin":"","element_styles_padding":"","element_styles_display":"","element_styles_float":"","element_styles_show_advanced_css":0,"element_styles_advanced":"","cellcid":"c3277","field_label":"Name","field_key":"name","custom_name_attribute":"","personally_identifiable":"","value":"","drawerDisabled":false,"id":328,"beforeField":"","afterField":"","parentType":"textbox","element_templates":["textbox","input"],"old_classname":"","wrap_template":"wrap"},{"objectType":"Field","objectDomain":"fields","editActive":false,"order":2,"idAttribute":"id","label":"Email","key":"email","type":"email","created_at":"2016-08-24 16:39:20","label_pos":"hidden","required":1,"placeholder":"Your email..","default":"","wrapper_class":"","element_class":"","container_class":"one-half","admin_label":"","help_text":"","desc_text":"","wrap_styles_background-color":"","wrap_styles_border":"","wrap_styles_border-style":"","wrap_styles_border-color":"","wrap_styles_color":"","wrap_styles_height":"","wrap_styles_width":"","wrap_styles_font-size":"","wrap_styles_margin":"","wrap_styles_padding":"","wrap_styles_display":"","wrap_styles_float":"","wrap_styles_show_advanced_css":0,"wrap_styles_advanced":"","label_styles_background-color":"","label_styles_border":"","label_styles_border-style":"","label_styles_border-color":"","label_styles_color":"","label_styles_height":"","label_styles_width":"","label_styles_font-size":"","label_styles_margin":"","label_styles_padding":"","label_styles_display":"","label_styles_float":"","label_styles_show_advanced_css":0,"label_styles_advanced":"","element_styles_background-color":"","element_styles_border":"","element_styles_border-style":"","element_styles_border-color":"","element_styles_color":"","element_styles_height":"","element_styles_width":"","element_styles_font-size":"","element_styles_margin":"","element_styles_padding":"","element_styles_display":"","element_styles_float":"","element_styles_show_advanced_css":0,"element_styles_advanced":"","cellcid":"c3281","field_label":"Email","field_key":"email","custom_name_attribute":"email","personally_identifiable":1,"value":"","drawerDisabled":false,"id":329,"beforeField":"","afterField":"","parentType":"email","element_templates":["email","input"],"old_classname":"","wrap_template":"wrap"},{"objectType":"Field","objectDomain":"fields","editActive":false,"order":3,"idAttribute":"id","label":"Describe the idea of your app","key":"describe_the_idea_of_your_app_1673444731614","type":"textarea","created_at":"2016-08-24 16:39:20","label_pos":"hidden","required":0,"placeholder":"Describe the idea of your app..","default":"","wrapper_class":"","element_class":"","container_class":"first one-half","input_limit":"","input_limit_type":"characters","input_limit_msg":"Character(s) left","manual_key":"","disable_input":"","admin_label":"","help_text":"","desc_text":"","disable_browser_autocomplete":"","textarea_rte":"","disable_rte_mobile":"","textarea_media":"","wrap_styles_background-color":"","wrap_styles_border":"","wrap_styles_border-style":"","wrap_styles_border-color":"","wrap_styles_color":"","wrap_styles_height":"","wrap_styles_width":"","wrap_styles_font-size":"","wrap_styles_margin":"","wrap_styles_padding":"","wrap_styles_display":"","wrap_styles_float":"","wrap_styles_show_advanced_css":0,"wrap_styles_advanced":"","label_styles_background-color":"","label_styles_border":"","label_styles_border-style":"","label_styles_border-color":"","label_styles_color":"","label_styles_height":"","label_styles_width":"","label_styles_font-size":"","label_styles_margin":"","label_styles_padding":"","label_styles_display":"","label_styles_float":"","label_styles_show_advanced_css":0,"label_styles_advanced":"","element_styles_background-color":"","element_styles_border":"","element_styles_border-style":"","element_styles_border-color":"","element_styles_color":"","element_styles_height":"","element_styles_width":"","element_styles_font-size":"","element_styles_margin":"","element_styles_padding":"","element_styles_display":"","element_styles_float":"","element_styles_show_advanced_css":0,"element_styles_advanced":"","cellcid":"c3284","field_label":"Message","field_key":"message","value":"","drawerDisabled":false,"id":330,"beforeField":"","afterField":"","parentType":"textarea","element_templates":["textarea","input"],"old_classname":"","wrap_template":"wrap"},{"objectType":"Field","objectDomain":"fields","editActive":false,"order":4,"idAttribute":"id","type":"textarea","label":"Describe how you'd like to work with us","key":"describe_how_you_d_like_to_work_with_us_1673444782397","label_pos":"hidden","required":false,"default":"","placeholder":"Describe how you'd like to work with us","container_class":"one-half","element_class":"","input_limit":"","input_limit_type":"characters","input_limit_msg":"Character(s) left","manual_key":false,"admin_label":"","help_text":"","textarea_rte":"","disable_rte_mobile":"","textarea_media":"","value":"","drawerDisabled":false,"id":332,"beforeField":"","afterField":"","parentType":"textarea","element_templates":["textarea","input"],"old_classname":"","wrap_template":"wrap"},{"objectType":"Field","objectDomain":"fields","editActive":false,"order":5,"idAttribute":"id","type":"checkbox","label":"Subscribe to our newsletter (optional)","key":"subscribe_to_our_newsletter_optional_1714741980133","label_pos":"right","required":0,"container_class":"","element_class":"","manual_key":false,"admin_label":"","help_text":"","default_value":"unchecked","checked_value":"Checked","unchecked_value":"Unchecked","checked_calc_value":"","unchecked_calc_value":"","drawerDisabled":false,"id":333,"beforeField":"","afterField":"","value":"","parentType":"checkbox","element_templates":["checkbox","input"],"old_classname":"","wrap_template":"wrap"},{"objectType":"Field","objectDomain":"fields","editActive":false,"order":6,"idAttribute":"id","type":"html","label":"Terms and Conditions","default":"<p><small>Your privacy is important to us! Nextcloud uses your information to provide relevant content, products, and services, and it may be shared with members of Nextcloud's partner network to provide you with a locally supported offer. You can unsubscribe from these monthly updates at any time. For additional details, take a look at our <a href=\"https:\/\/nextcloud.com\/privacy\/\" target=\"_blank\">privacy policy<\/a>.<\/small><\/p>","container_class":"","element_class":"","key":"terms_and_conditions_1673446117907","drawerDisabled":false,"id":334,"beforeField":"","afterField":"","value":"<p><small>Your privacy is important to us! Nextcloud uses your information to provide relevant content, products, and services, and it may be shared with members of Nextcloud's partner network to provide you with a locally supported offer. You can unsubscribe from these monthly updates at any time. For additional details, take a look at our <a href=\"https:\/\/nextcloud.com\/privacy\/\" target=\"_blank\">privacy policy<\/a>.<\/small><\/p>","label_pos":"hidden","parentType":"html","element_templates":["html","input"],"old_classname":"","wrap_template":"wrap"},{"objectType":"Field","objectDomain":"fields","editActive":false,"order":7,"idAttribute":"id","label":"Submit","key":"submit","type":"submit","created_at":"2016-08-24 16:39:20","processing_label":"Processing","container_class":"","element_class":"","wrap_styles_background-color":"","wrap_styles_border":"","wrap_styles_border-style":"","wrap_styles_border-color":"","wrap_styles_color":"","wrap_styles_height":"","wrap_styles_width":"","wrap_styles_font-size":"","wrap_styles_margin":"","wrap_styles_padding":"","wrap_styles_display":"","wrap_styles_float":"","wrap_styles_show_advanced_css":0,"wrap_styles_advanced":"","label_styles_background-color":"","label_styles_border":"","label_styles_border-style":"","label_styles_border-color":"","label_styles_color":"","label_styles_height":"","label_styles_width":"","label_styles_font-size":"","label_styles_margin":"","label_styles_padding":"","label_styles_display":"","label_styles_float":"","label_styles_show_advanced_css":0,"label_styles_advanced":"","element_styles_background-color":"","element_styles_border":"","element_styles_border-style":"","element_styles_border-color":"","element_styles_color":"","element_styles_height":"","element_styles_width":"","element_styles_font-size":"","element_styles_margin":"","element_styles_padding":"","element_styles_display":"","element_styles_float":"","element_styles_show_advanced_css":0,"element_styles_advanced":"","submit_element_hover_styles_background-color":"","submit_element_hover_styles_border":"","submit_element_hover_styles_border-style":"","submit_element_hover_styles_border-color":"","submit_element_hover_styles_color":"","submit_element_hover_styles_height":"","submit_element_hover_styles_width":"","submit_element_hover_styles_font-size":"","submit_element_hover_styles_margin":"","submit_element_hover_styles_padding":"","submit_element_hover_styles_display":"","submit_element_hover_styles_float":"","submit_element_hover_styles_show_advanced_css":0,"submit_element_hover_styles_advanced":"","cellcid":"c3287","field_label":"Submit","field_key":"submit","drawerDisabled":false,"id":331,"beforeField":"","afterField":"","value":"","label_pos":"hidden","parentType":"textbox","element_templates":["submit","button","input"],"old_classname":"","wrap_template":"wrap-no-label"}];nfForms.push(form);</script> </div></div></div><div class="wpb_column vc_column_container vc_col-sm-2"><div class="vc_column-inner"><div class="wpb_wrapper"></div></div></div></div></div></section> </div></div> <footer data-rocket-location-hash="e1a697e0647075ef33abd8730d8a1903" class=""> <div class="container"> <div data-rocket-location-hash="49ba11e84f7a5c34869b8e8a6f6ca0be" class="row"> <div class="col-12"> </div> </div> <div data-rocket-location-hash="c9507259a35b9082114af49d0cab1070" class="row"> <div class="col-lg-4"> <div class="footer-logo"> <div id="media_image-2" class="widget widget_media_image"><img width="300" height="211" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20300%20211'%3E%3C/svg%3E" class="image wp-image-76877 attachment-medium size-medium" alt="Logo Nextcloud white" style="max-width: 100%; height: auto;" decoding="async" data-lazy-src="https://nextcloud.com/c/uploads/2022/11/logo_nextcloud_white.svg" /><noscript><img width="300" height="211" src="https://nextcloud.com/c/uploads/2022/11/logo_nextcloud_white.svg" class="image wp-image-76877 attachment-medium size-medium" alt="Logo Nextcloud white" style="max-width: 100%; height: auto;" decoding="async" /></noscript></div><div id="text-2" class="widget widget_text"> <div class="textwidget"><div id="text-2" class="widget widget_text"> <div class="textwidget"> <p data-pm-slice="1 1 []">Nextcloud offers a modern, on premise content collaboration platform with real-time document editing, video chat &amp; groupware on mobile, desktop and web.</p> </div> </div> </div> </div><div id="search-2" class="widget widget_search"><div class="widget-title-holder"><h3 class="widget-title">Search</h3></div><form role="search" method="get" id="searchform" class="searchform" action="https://nextcloud.com/" > <div class="custom-form"><label class="screen-reader-text" for="s">Search:</label> <input type="text" value="" placeholder="Search here.." name="s" id="s" /><button type="submit" title="Search" id="searchsubmit"><i class="fas fa-search"></i></button></div></form></div> </div> </div> <div class="col-lg-8"> <div id="menu-footer-menu-container" class="menu-footer-menu-container"><ul id="menu-footer-menu" class="footer-menu"><li id="menu-item-164" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164"><a href="#" data-ps2id-api="true">About Nextcloud</a> <ul class="sub-menu"> <li id="menu-item-15758" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15758"><a href="https://nextcloud.com/about/" data-ps2id-api="true">About us</a></li> <li id="menu-item-1698" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1698"><a href="https://nextcloud.com/jobs/" data-ps2id-api="true">Jobs</a></li> <li id="menu-item-15760" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15760"><a href="https://nextcloud.com/contribute/code-of-conduct/" data-ps2id-api="true">Code of conduct</a></li> <li id="menu-item-15765" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-privacy-policy menu-item-15765"><a rel="privacy-policy" href="https://nextcloud.com/privacy/" data-ps2id-api="true">Privacy</a></li> <li id="menu-item-15776" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15776"><a href="https://nextcloud.com/press/" data-ps2id-api="true">Press</a></li> <li id="menu-item-15762" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15762"><a href="https://nextcloud.com/impressum/" data-ps2id-api="true">Legal note</a></li> <li id="menu-item-78799" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-78799"><a href="https://nextcloud.com/trademarks/" data-ps2id-api="true">Trademarks</a></li> <li id="menu-item-251791" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-251791"><a href="https://nextcloud.com/brand/" data-ps2id-api="true">Brand guidelines</a></li> <li id="menu-item-151685" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-151685"><a href="https://nextcloud.com/features/" title="Nextcloud features" data-ps2id-api="true">Features</a></li> <li id="menu-item-200515" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-200515"><a href="https://nextcloud.com/human-rights-policy/" data-ps2id-api="true">Human Rights Policy</a></li> <li id="menu-item-200516" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-200516"><a href="https://nextcloud.com/code-of-ethics/" data-ps2id-api="true">Code of Ethics</a></li> </ul> </li> <li id="menu-item-171" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-ancestor current-menu-parent menu-item-has-children menu-item-171"><a href="#" data-ps2id-api="true">Resources</a> <ul class="sub-menu"> <li id="menu-item-15772" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15772"><a href="https://nextcloud.com/install/" data-ps2id-api="true">Download</a></li> <li id="menu-item-174" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-174"><a href="https://apps.nextcloud.com" data-ps2id-api="true">App Store</a></li> <li id="menu-item-175" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-175"><a href="https://docs.nextcloud.com/server/latest/admin_manual/" data-ps2id-api="true">Admin manual</a></li> <li id="menu-item-176" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-176"><a href="https://docs.nextcloud.com/server/latest/user_manual/" data-ps2id-api="true">User manual</a></li> <li id="menu-item-15770" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15770"><a href="https://nextcloud.com/security/" data-ps2id-api="true">Security</a></li> <li id="menu-item-15774" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-2452 current_page_item menu-item-15774"><a href="https://nextcloud.com/developer/" aria-current="page" data-ps2id-api="true">Developer information</a></li> <li id="menu-item-179" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-179"><a href="https://github.com/nextcloud" data-ps2id-api="true">Code on GitHub</a></li> <li id="menu-item-15771" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15771"><a href="https://nextcloud.com/compare/" data-ps2id-api="true">Compare with others</a></li> <li id="menu-item-15769" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15769"><a href="https://nextcloud.com/search/" data-ps2id-api="true">Search</a></li> </ul> </li> <li id="menu-item-181" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-181"><a href="#" data-ps2id-api="true">Interact</a> <ul class="sub-menu"> <li id="menu-item-15775" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15775"><a href="https://nextcloud.com/support/" data-ps2id-api="true">Support</a></li> <li id="menu-item-183" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-183"><a href="https://help.nextcloud.com" data-ps2id-api="true">Forums</a></li> <li id="menu-item-184" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-184"><a href="https://nextcloud.com/instant-trial/" data-ps2id-api="true">Demo</a></li> <li id="menu-item-17740" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-17740"><a href="https://nextcloud.com/contact/" data-ps2id-api="true">Contact us</a></li> <li id="menu-item-187" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-187"><a target="_blank" href="https://github.com/nextcloud" data-ps2id-api="true">Bug Tracker</a></li> </ul> </li> </ul></div> </div> </div> <div class="row"> <div class="col-12"> <div class="line"></div> </div> </div> <div data-rocket-location-hash="e4dd058234c9a75d33359d1d07501a11" class="row align-items-center"> <div class="col-lg-8 order-lg-2"> <div class="social-media-holder"> <ul class="social-menu"><li><a id="cookies_preferences" title="Cookies preferences" href="#">Cookies preferences</a></li><li><a title="Facebook" href="https://www.facebook.com/Nextclouders/" target="_blank"><img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Facebook" data-lazy-src="https://nextcloud.com/c/uploads/2021/12/facebook-icon.png"/><noscript><img src="https://nextcloud.com/c/uploads/2021/12/facebook-icon.png" alt="Facebook"/></noscript></a></li><li><a title="X" href="https://twitter.com/nextclouders" target="_blank"><img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="X" data-lazy-src="https://nextcloud.com/c/uploads/2024/01/X_logo_2023_white.svg"/><noscript><img src="https://nextcloud.com/c/uploads/2024/01/X_logo_2023_white.svg" alt="X"/></noscript></a></li><li><a title="Instagram" href="https://www.instagram.com/nextclouders/" target="_blank"><img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Instagram" data-lazy-src="https://nextcloud.com/c/uploads/2021/12/instagram-icon.png"/><noscript><img src="https://nextcloud.com/c/uploads/2021/12/instagram-icon.png" alt="Instagram"/></noscript></a></li><li><a title="Linkedin" href="https://www.linkedin.com/company/10827569/" target="_blank"><img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Linkedin" data-lazy-src="https://nextcloud.com/c/uploads/2021/12/linkedin-icon.png"/><noscript><img src="https://nextcloud.com/c/uploads/2021/12/linkedin-icon.png" alt="Linkedin"/></noscript></a></li><li><a title="Nextcloud Forum" href="https://help.nextcloud.com/" target="_blank"><img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Nextcloud Forum" data-lazy-src="https://nextcloud.com/c/uploads/2022/06/discourse.png"/><noscript><img src="https://nextcloud.com/c/uploads/2022/06/discourse.png" alt="Nextcloud Forum"/></noscript></a></li><li><a title="Youtube" href="https://youtube.com/nextcloud" target="_blank"><img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Youtube" data-lazy-src="https://nextcloud.com/c/uploads/2021/12/youtube-icon.png"/><noscript><img src="https://nextcloud.com/c/uploads/2021/12/youtube-icon.png" alt="Youtube"/></noscript></a></li><li><a rel="me" title="Mastodon" href="https://mastodon.xyz/@nextcloud" target="_blank"><img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Mastodon" data-lazy-src="https://nextcloud.com/c/uploads/2022/11/Mastodon_icon-white.svg"/><noscript><img src="https://nextcloud.com/c/uploads/2022/11/Mastodon_icon-white.svg" alt="Mastodon"/></noscript></a></li><li><a title="RSS Feed" href="https://nextcloud.com/feed/" target="_blank"><img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="RSS Feed" data-lazy-src="https://nextcloud.com/c/uploads/2023/01/RSS-feed-icon-white.svg"/><noscript><img src="https://nextcloud.com/c/uploads/2023/01/RSS-feed-icon-white.svg" alt="RSS Feed"/></noscript></a></li></ul> </div> </div> <div class="col-lg-4 order-lg-1"> <div class="foot-text"> <p>漏 2021 - 2025 Nextcloud GmbH</p> </div> </div> </div> </div> </footer> <div data-rocket-location-hash="7bd4ca937cb29fb5b8c72c6c8293fdad" id="cookie_banner" class="cookie_banner" style="display: none;"> <div data-rocket-location-hash="04ce5d138c0558e3313adebf9424d8e7" class="cookie_banner_inner"> <div data-rocket-location-hash="664a2f73f0c622459ef678f90474dbdc" class="logo"> <img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2071%2050'%3E%3C/svg%3E" width="71px" height="50px" alt="Nextcloud" title="Nextcloud" data-lazy-src="https://nextcloud.com/wp-content/uploads/2022/10/nextcloud-logo-blue-transparent.svg"><noscript><img src="https://nextcloud.com/wp-content/uploads/2022/10/nextcloud-logo-blue-transparent.svg" width="71px" height="50px" alt="Nextcloud" title="Nextcloud"></noscript> </div> <div class="description"> <div class="text"> We save some cookies to count visitors and make the site easier to use. This doesn't leave our server and isn't to track you personally! See our <a target='_blank' href='/privacy/'>Privacy Policy</a> for more information. <a href="#no_scroll" id="open_details" class="open_details">Customize <i class="icon fas fa-angle-down"></i></a> </div> </div> <div data-rocket-location-hash="a956da51b4314d19970919605fd3f3fe" class="buttons"> <button class="accept_cookie_btn accept_all_btn c-btn btn-main" id="accept_all_btn">Accept all cookies</button> <!-- <button class="accept_cookie_btn accept_nc_cookies c-btn btn-main" id="accept_nc_cookies">accept Nextcloud cookies</button>--> <button class="accept_cookie_btn save_settings c-btn btn-main" id="save_settings">Reject all</button> </div> <div data-rocket-location-hash="6d9b774dd51cf8ee2fecd7f9a3b1efc5" class="customize_btn_container"> <a href="#no_scroll" id="open_details2" class="open_details">Customize <i class="icon fas fa-angle-down"></i></a> </div> </div> <div data-rocket-location-hash="dff7ca301a2c59e44603309500547b15" class="cookies_details" id="cookies_details" style="visibility: hidden; height: 0;"> <div data-rocket-location-hash="0ec355e40bf3b574985cddf6e1d34720" class="cookies_cat" id="cookies_essentials_cat"> <div class="cookies_cat_inner"> <div class="cookie_cat_name">Essentials <a href="#" class="cookies_more_details" id="">More details<i class="icon fas fa-angle-down"></i></a> </div> <div class="cookie_cat_desc"> Essential cookies enable basic functions and are necessary for the proper function of the website. </div> <div class="cookie_cat_cb"> <label class="nc-switch"> <input type="checkbox" id="accept_all_essentials" class="cat_checkbox" name="nc_cookie_banner[]" value="essentials"> <span class="nc-switch-style"></span> </label> </div> </div> <div class="cookies_list" style=""> <div class="cookie_item" id="wpml_current_language"> <div class="cookie_name"><label for="">Cookie name:</label>wp-wpml_current_language</div> <div class="cookie_desc"><label for="">Cookie description:</label>Set the language on the website</div> <div class="cookie_duration"><label for="">Cookie expiry:</label>No expiration</div> <div class="cookie_checkbox"> <label for="accept_wpml_current_language">Consent</label> <label class="nc-switch"> <input type="checkbox" id="accept_wpml_current_language" name="wpml_current_language" value="1"> <span class="nc-switch-style"></span> </label> </div> </div> <div class="cookie_item" id="nc_cookie_banner"> <div class="cookie_name"><label for="">Cookie name:</label>nc_cookie_banner</div> <div class="cookie_desc"><label for="">Cookie description:</label>Saves the cookie containing the user cookies preferences</div> <div class="cookie_duration"><label for="">Cookie expiry:</label>30 days</div> <div class="cookie_checkbox"> <label for="accept_wpml_current_language">Consent</label> <label class="nc-switch"> <input type="checkbox" id="accept_nc_cookie_banner" name="nc_cookie_banner[]" value="nc_cookie_banner"> <span class="nc-switch-style"></span> </label> </div> </div> </div> </div> <div data-rocket-location-hash="83cd53d23b122681c3dfd3e64c254182" class="cookies_cat"> <div class="cookies_cat_inner"> <div class="cookie_cat_name">Convenience <a href="#" class="cookies_more_details" id="">More details <i class="icon fas fa-angle-down"></i></a> </div> <div class="cookie_cat_desc">Cookies used to save the data entered in forms, such as name, email, phone number, and preferred language.</div> <div class="cookie_cat_cb"> <label class="nc-switch"> <input type="checkbox" class="cat_checkbox" id="accept_convenience_cookies" name="nc_cookie_banner[]" value="convenience"> <span class="nc-switch-style"></span> </label> </div> </div> <div class="cookies_list" style=""> <div class="cookie_item" id="nc_form_fields"> <div class="cookie_name"><label for="">Cookie name:</label>nc_form_fields</div> <div class="cookie_desc"><label for="">Cookie description:</label>Remembers the data filled in the forms for the next time (name, email, phone and preferred language)</div> <div class="cookie_duration"><label for="">Cookie expiry:</label>30 days</div> <div class="cookie_checkbox" style="visibility: hidden;height: 0;"> <label for="accept_nc_form_fields">Consent</label> <label class="nc-switch"> <input type="checkbox" id="accept_nc_form_fields" name="nc_form_fields" value="1"> <span class="nc-switch-style"></span> </label> </div> </div> </div> </div> <div data-rocket-location-hash="c1b775155598590b5871686c3b224f88" class="cookies_cat"> <div class="cookies_cat_inner"> <div class="cookie_cat_name">Statistics <a href="#" class="cookies_more_details" id="">More details <i class="icon fas fa-angle-down"></i></a> </div> <div class="cookie_cat_desc">Statistics cookies collect information anonymously and help us understand how our visitors use our website. We use cloud-hosted <a href="https://matomo.org/matomo-cloud/" target="_blank">Matomo</a> </div> <div class="cookie_cat_cb"> <label class="nc-switch"> <input type="checkbox" class="cat_checkbox" id="accept_statistics" name="nc_cookie_banner[]" value="statistics"/> <span class="nc-switch-style"></span> </label> </div> </div> <div class="cookies_list" style=""> <div class="cookie_item" id="nc_form_fields"> <div class="cookie_name"><label for="">Service:</label>Matomo</div> <div class="cookie_desc"> <label for="">Cookies description:</label> _pk_ses*: Counts the first visit of the user<br> _pk_id*: Helps not to double count the visits.<br> mtm_cookie_consent: Remembers that consent for storing and using cookies was given by the user. </div> <div class="cookie_duration"><label for="">Cookies expiry:</label>_pk_ses*: 30 minutes<br> _pk_id*: 28 days<br> mtm_cookie_consent: 30 days </div> <div class="cookie_checkbox" style="visibility: hidden;height: 0;"> <label for="accept_matomo">Consent</label> <label class="nc-switch"> <input type="checkbox" id="accept_matomo" name="matomo" value="1"> <span class="nc-switch-style"></span> </label> </div> </div> </div> </div> <div data-rocket-location-hash="c306880fe8ee965179e893c7c9e6b4f9" class="cookies_cat"> <div class="cookies_cat_inner"> <div class="cookie_cat_name">External media <a href="#" class="cookies_more_details" id="">More details <i class="icon fas fa-angle-down"></i></a> </div> <div class="cookie_cat_desc">Allows connections for loading external media. No cookies from Youtube or Vimeo will be set.</div> <div class="cookie_cat_cb"> <label class="nc-switch"> <input type="checkbox" class="cat_checkbox" id="accept_external_media" name="nc_cookie_banner[]" value="external_media"/> <span class="nc-switch-style"></span> </label> </div> </div> <div class="cookies_list" style=""> <div class="cookie_item" id="nc_youtube_cookie"> <div class="cookie_name"><label for="">Service:</label>Play Youtube videos</div> <div class="cookie_desc"><label for="">Service description:</label> All of the Youtube videos get unblocked if this setting is saved </div> <div class="cookie_duration"><label for="">Cookie expiry:</label> - </div> <div class="cookie_checkbox"><label for="accept_youtube">Consent</label> <label class="nc-switch"> <input type="checkbox" id="accept_youtube" name="nc_youtube_unblocked" value="1"> <span class="nc-switch-style"></span> </label> </div> </div> <div class="cookie_item" id="nc_vimeo_cookie"> <div class="cookie_name"><label for="">Service:</label>Play Vimeo videos</div> <div class="cookie_desc"><label for="">Service description:</label> All of the Vimeo videos get unblocked if this setting is saved </div> <div class="cookie_duration"><label for="">Cookie expiry:</label> - </div> <div class="cookie_checkbox"><label for="accept_vimeo">Consent</label> <label class="nc-switch"> <input type="checkbox" id="accept_vimeo" name="nc_vimeo_unblocked" value="1"> <span class="nc-switch-style"></span> </label> </div> </div> </div> </div> </div> </div> <!-- Matomo Tag Manager --> <script id="matomo_script" type="text/javascript"> var _mtm = window._mtm = window._mtm || []; var _paq = window._paq = window._paq || []; _mtm.push({'mtm.startTime': (new Date().getTime()), 'event': 'mtm.Start'}); setTimeout(() => { if(getCookie('nc_cookie_banner') ) { //const cookieBanner_old = JSON.parse(getCookie('nc_cookie_banner')); const cookieBanner = JSON.parse(DOMPurify.sanitize(getCookie('nc_cookie_banner'))); if (cookieBanner.statistics && cookieBanner.statistics.matomo) { if(!getCookie('mtm_cookie_consent')){ // set cookie only if not recently set _paq.push(['rememberCookieConsentGiven', 720]); } } else { //console.log("Stats consent NOT given, do NOT load rememberCookieConsentGiven"); _paq.push(['forgetCookieConsentGiven']); // Ensure Matomo forgets the consent _paq.push(['deleteCookies']); // Delete all Matomo cookies } } }, 500); (function() { var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.async=true; g.id='matomo_js'; g.src='https://cdn.matomo.cloud/nextcloud.matomo.cloud/container_wlmEL4w2.js'; s.parentNode.insertBefore(g,s); })(); </script> <!-- End Matomo Tag Manager --><script type="text/html" id="wpb-modifications"> window.wpbCustomElement = 1; </script><link rel='stylesheet' id='lightbox2-css' href='https://nextcloud.com/p/js_composer/assets/lib/vendor/node_modules/lightbox2/dist/css/lightbox.min.css?ver=8.2' type='text/css' media='all' /> <link rel='stylesheet' id='dashicons-css' href='https://nextcloud.com/wp-includes/css/dashicons.css?ver=6.7.1' type='text/css' media='all' /> <link rel='stylesheet' id='nf-display-css' href='https://nextcloud.com/p/ninja-forms/assets/css/display-opinions-light.css?ver=6.7.1' type='text/css' media='all' /> <link rel='stylesheet' id='nf-font-awesome-css' href='https://nextcloud.com/p/ninja-forms/assets/css/font-awesome.min.css?ver=6.7.1' type='text/css' media='all' /> <style id='core-block-supports-inline-css' type='text/css'> /** * Core styles: block-supports */ </style> <script type="text/javascript" id="page-scroll-to-id-plugin-script-js-extra"> /* <![CDATA[ */ var mPS2id_params = {"instances":{"mPS2id_instance_0":{"selector":"a[href*='#']:not([href='#'])","autoSelectorMenuLinks":"true","excludeSelector":"a[href^='#tab-'], a[href^='#tabs-'], a[data-toggle]:not([data-toggle='tooltip']), a[data-slide], a[data-vc-tabs], a[data-vc-accordion], a.screen-reader-text.skip-link","scrollSpeed":800,"autoScrollSpeed":"true","scrollEasing":"easeInOutQuint","scrollingEasing":"easeOutQuint","forceScrollEasing":"false","pageEndSmoothScroll":"true","stopScrollOnUserAction":"false","autoCorrectScroll":"false","autoCorrectScrollExtend":"false","layout":"vertical","offset":"61","dummyOffset":"false","highlightSelector":"","clickedClass":"mPS2id-clicked","targetClass":"mPS2id-target","highlightClass":"mPS2id-highlight","forceSingleHighlight":"false","keepHighlightUntilNext":"false","highlightByNextTarget":"false","appendHash":"false","scrollToHash":"true","scrollToHashForAll":"true","scrollToHashDelay":0,"scrollToHashUseElementData":"true","scrollToHashRemoveUrlHash":"false","disablePluginBelow":0,"adminDisplayWidgetsId":"true","adminTinyMCEbuttons":"true","unbindUnrelatedClickEvents":"false","unbindUnrelatedClickEventsSelector":"","normalizeAnchorPointTargets":"false","encodeLinks":"false"}},"total_instances":"1","shortcode_class":"_ps2id"}; /* ]]> */ </script> <script type="rocketlazyloadscript" data-rocket-type="text/javascript" data-rocket-src="https://nextcloud.com/p/page-scroll-to-id/js/page-scroll-to-id.min.js?ver=1.7.9" id="page-scroll-to-id-plugin-script-js" data-rocket-defer defer></script> <script type="text/javascript" id="rocket-browser-checker-js-after"> /* <![CDATA[ */ class RocketBrowserCompatibilityChecker { constructor( options ) { this.passiveSupported = false; this._checkPassiveOption( this ); this.options = this.passiveSupported ? options : false; } /** * Initializes browser check for addEventListener passive option. * * @link https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support * @private * * @param self Instance of this object. * @returns {boolean} */ _checkPassiveOption( self ) { try { const options = { // This function will be called when the browser attempts to access the passive property. get passive() { self.passiveSupported = true; return false; } }; window.addEventListener( 'test', null, options ); window.removeEventListener( 'test', null, options ); } catch ( err ) { self.passiveSupported = false; } } /** * Checks if the browser supports requestIdleCallback and cancelIdleCallback. If no, shims its behavior with a polyfills. * * @link @link https://developers.google.com/web/updates/2015/08/using-requestidlecallback */ initRequestIdleCallback() { if ( ! 'requestIdleCallback' in window ) { window.requestIdleCallback = ( cb ) => { const start = Date.now(); return setTimeout( () => { cb( { didTimeout: false, timeRemaining: function timeRemaining() { return Math.max( 0, 50 - ( Date.now() - start ) ); } } ); }, 1 ); }; } if ( ! 'cancelIdleCallback' in window ) { window.cancelIdleCallback = ( id ) => clearTimeout( id ); } } /** * Detects if data saver mode is on. * * @link https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/save-data/#detecting_the_save-data_setting * * @returns {boolean|boolean} */ isDataSaverModeOn() { return ( 'connection' in navigator && true === navigator.connection.saveData ); } /** * Checks if the browser supports link prefetch. * * @returns {boolean|boolean} */ supportsLinkPrefetch() { const elem = document.createElement( 'link' ); return ( elem.relList && elem.relList.supports && elem.relList.supports( 'prefetch' ) && window.IntersectionObserver && 'isIntersecting' in IntersectionObserverEntry.prototype ); } isSlowConnection() { return ( 'connection' in navigator && 'effectiveType' in navigator.connection && ( '2g' === navigator.connection.effectiveType || 'slow-2g' === navigator.connection.effectiveType ) ) } } /* ]]> */ </script> <script type="text/javascript" id="rocket-preload-links-js-extra"> /* <![CDATA[ */ var RocketPreloadLinksConfig = {"excludeUris":"\/sign-up\/|\/es\/sign-up\/|\/de\/sign-up\/|\/fr\/sign-up\/|\/it\/sign-up\/|\/index.php|\/events-lead-collection-form\/|\/manage-subscription\/|\/livestream\/|\/nextcloud-summit-2025-temp-changes\/|\/(?:.+\/)?embed\/|\/(index.php\/)?(.*)wp-json(\/.*|$)|\/refer\/|\/go\/|\/recommend\/|\/recommends\/","usesTrailingSlash":"1","imageExt":"jpg|jpeg|gif|png|tiff|bmp|webp|avif|pdf|doc|docx|xls|xlsx|php","fileExt":"jpg|jpeg|gif|png|tiff|bmp|webp|avif|pdf|doc|docx|xls|xlsx|php|html|htm","siteUrl":"https:\/\/nextcloud.com","onHoverDelay":"100","rateThrottle":"3"}; /* ]]> */ </script> <script type="text/javascript" id="rocket-preload-links-js-after"> /* <![CDATA[ */ class RocketPreloadLinks { constructor( browser, config ) { this.browser = browser; this.config = config; this.options = this.browser.options; this.prefetched = new Set; this.eventTime = null; this.threshold = 1111; this.numOnHover = 0; } /** * Initializes the handler. */ init() { if ( ! this.browser.supportsLinkPrefetch() || this.browser.isDataSaverModeOn() || this.browser.isSlowConnection() ) { return; } this.regex = { excludeUris: RegExp( this.config.excludeUris, 'i' ), images: RegExp( '.(' + this.config.imageExt + ')$', 'i' ), fileExt: RegExp( '.(' + this.config.fileExt + ')$', 'i' ) }; this._initListeners( this ); } /** * Initializes the event listeners. * * @private * * @param self instance of this object, used for binding "this" to the listeners. */ _initListeners( self ) { // Setting onHoverDelay to -1 disables the "on-hover" feature. if ( this.config.onHoverDelay > -1 ) { document.addEventListener( 'mouseover', self.listener.bind( self ), self.listenerOptions ); } document.addEventListener( 'mousedown', self.listener.bind( self ), self.listenerOptions ); document.addEventListener( 'touchstart', self.listener.bind( self ), self.listenerOptions ); } /** * Event listener. Processes when near or on a valid <a> hyperlink. * * @param Event event Event instance. */ listener( event ) { const linkElem = event.target.closest( 'a' ); const url = this._prepareUrl( linkElem ); if ( null === url ) { return; } switch ( event.type ) { case 'mousedown': case 'touchstart': this._addPrefetchLink( url ); break; case 'mouseover': this._earlyPrefetch( linkElem, url, 'mouseout' ); } } /** * * @private * * @param Element|null linkElem * @param object url * @param string resetEvent */ _earlyPrefetch( linkElem, url, resetEvent ) { const doPrefetch = () => { falseTrigger = null; // Start the rate throttle: 1 sec timeout. if ( 0 === this.numOnHover ) { setTimeout( () => this.numOnHover = 0, 1000 ); } // Bail out when exceeding the rate throttle. else if ( this.numOnHover > this.config.rateThrottle ) { return; } this.numOnHover++; this._addPrefetchLink( url ); }; // Delay to avoid false triggers for hover/touch/tap. let falseTrigger = setTimeout( doPrefetch, this.config.onHoverDelay ); // On reset event, reset the false trigger timer. const reset = () => { linkElem.removeEventListener( resetEvent, reset, { passive: true } ); if ( null === falseTrigger ) { return; } clearTimeout( falseTrigger ); falseTrigger = null; }; linkElem.addEventListener( resetEvent, reset, { passive: true } ); } /** * Adds a <link rel="prefetch" href="<url>"> for the given URL. * * @param string url The Given URL to prefetch. */ _addPrefetchLink( url ) { this.prefetched.add( url.href ); return new Promise( ( resolve, reject ) => { const elem = document.createElement( 'link' ); elem.rel = 'prefetch'; elem.href = url.href; elem.onload = resolve; elem.onerror = reject; document.head.appendChild( elem ); } ).catch(() => { // ignore and continue. }); } /** * Prepares the target link's URL. * * @private * * @param Element|null linkElem Instance of the link element. * @returns {null|*} */ _prepareUrl( linkElem ) { if ( null === linkElem || typeof linkElem !== 'object' || ! 'href' in linkElem || // Link prefetching only works on http/https protocol. [ 'http:', 'https:' ].indexOf( linkElem.protocol ) === -1 ) { return null; } const origin = linkElem.href.substring( 0, this.config.siteUrl.length ); const pathname = this._getPathname( linkElem.href, origin ); const url = { original: linkElem.href, protocol: linkElem.protocol, origin: origin, pathname: pathname, href: origin + pathname }; return this._isLinkOk( url ) ? url : null; } /** * Gets the URL's pathname. Note: ensures the pathname matches the permalink structure. * * @private * * @param object url Instance of the URL. * @param string origin The target link href's origin. * @returns {string} */ _getPathname( url, origin ) { let pathname = origin ? url.substring( this.config.siteUrl.length ) : url; if ( ! pathname.startsWith( '/' ) ) { pathname = '/' + pathname; } if ( this._shouldAddTrailingSlash( pathname ) ) { return pathname + '/'; } return pathname; } _shouldAddTrailingSlash( pathname ) { return ( this.config.usesTrailingSlash && ! pathname.endsWith( '/' ) && ! this.regex.fileExt.test( pathname ) ); } /** * Checks if the given link element is okay to process. * * @private * * @param object url URL parts object. * * @returns {boolean} */ _isLinkOk( url ) { if ( null === url || typeof url !== 'object' ) { return false; } return ( ! this.prefetched.has( url.href ) && url.origin === this.config.siteUrl // is an internal document. && url.href.indexOf( '?' ) === -1 // not a query string. && url.href.indexOf( '#' ) === -1 // not an anchor. && ! this.regex.excludeUris.test( url.href ) // not excluded. && ! this.regex.images.test( url.href ) // not an image. ); } /** * Named static constructor to encapsulate how to create the object. */ static run() { // Bail out if the configuration not passed from the server. if ( typeof RocketPreloadLinksConfig === 'undefined' ) { return; } const browser = new RocketBrowserCompatibilityChecker( { capture: true, passive: true } ); const instance = new RocketPreloadLinks( browser, RocketPreloadLinksConfig ); instance.init(); } } RocketPreloadLinks.run(); /* ]]> */ </script> <script type="text/javascript" src="https://nextcloud.com/wp-includes/js/underscore.min.js?ver=1.13.7" id="underscore-js" data-rocket-defer defer></script> <script type="text/javascript" src="https://nextcloud.com/wp-includes/js/backbone.min.js?ver=1.6.0" id="backbone-js" data-rocket-defer defer></script> <script type="rocketlazyloadscript" data-rocket-type="text/javascript" data-rocket-src="https://nextcloud.com/p/ninja-forms/assets/js/min/front-end-deps.js?ver=3.9.0" id="nf-front-end-deps-js" data-rocket-defer defer></script> <script type="text/javascript" id="nf-front-end-js-extra"> /* <![CDATA[ */ var nfi18n = {"ninjaForms":"Ninja Forms","changeEmailErrorMsg":"Please enter a valid email address!","changeDateErrorMsg":"Please enter a valid date!","confirmFieldErrorMsg":"These fields must match!","fieldNumberNumMinError":"Number Min Error","fieldNumberNumMaxError":"Number Max Error","fieldNumberIncrementBy":"Please increment by ","fieldTextareaRTEInsertLink":"Insert Link","fieldTextareaRTEInsertMedia":"Insert Media","fieldTextareaRTESelectAFile":"Select a file","formErrorsCorrectErrors":"Please correct errors before submitting this form.","formHoneypot":"If you are a human seeing this field, please leave it empty.","validateRequiredField":"This is a required field.","honeypotHoneypotError":"Honeypot Error","fileUploadOldCodeFileUploadInProgress":"File Upload in Progress.","fileUploadOldCodeFileUpload":"FILE UPLOAD","currencySymbol":"\u20ac","fieldsMarkedRequired":"Fields marked with an <span class=\"ninja-forms-req-symbol\">*<\/span> are required","thousands_sep":",","decimal_point":".","siteLocale":"en_US","dateFormat":"d\/m\/Y","startOfWeek":"1","of":"of","previousMonth":"Previous Month","nextMonth":"Next Month","months":["January","February","March","April","May","June","July","August","September","October","November","December"],"monthsShort":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"weekdays":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"weekdaysShort":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"weekdaysMin":["Su","Mo","Tu","We","Th","Fr","Sa"],"recaptchaConsentMissing":"reCaptcha validation couldn't load.","recaptchaMissingCookie":"reCaptcha v3 validation couldn't load the cookie needed to submit the form.","recaptchaConsentEvent":"Accept reCaptcha cookies before sending the form."}; var nfFrontEnd = {"adminAjax":"https:\/\/nextcloud.com\/wp-admin\/admin-ajax.php","ajaxNonce":"217f4ea53e","requireBaseUrl":"https:\/\/nextcloud.com\/p\/ninja-forms\/assets\/js\/","use_merge_tags":{"user":{"address":"address","textbox":"textbox","button":"button","checkbox":"checkbox","city":"city","confirm":"confirm","creditcard":"creditcard","creditcardcvc":"creditcardcvc","creditcardexpiration":"creditcardexpiration","creditcardfullname":"creditcardfullname","creditcardnumber":"creditcardnumber","creditcardzip":"creditcardzip","date":"date","email":"email","firstname":"firstname","html":"html","hidden":"hidden","lastname":"lastname","listcheckbox":"listcheckbox","listcountry":"listcountry","listimage":"listimage","listmultiselect":"listmultiselect","listradio":"listradio","listselect":"listselect","liststate":"liststate","note":"note","number":"number","password":"password","passwordconfirm":"passwordconfirm","product":"product","quantity":"quantity","recaptcha":"recaptcha","recaptcha_v3":"recaptcha_v3","repeater":"repeater","shipping":"shipping","spam":"spam","starrating":"starrating","submit":"submit","terms":"terms","textarea":"textarea","total":"total","unknown":"unknown","zip":"zip","hr":"hr"},"post":{"address":"address","textbox":"textbox","button":"button","checkbox":"checkbox","city":"city","confirm":"confirm","creditcard":"creditcard","creditcardcvc":"creditcardcvc","creditcardexpiration":"creditcardexpiration","creditcardfullname":"creditcardfullname","creditcardnumber":"creditcardnumber","creditcardzip":"creditcardzip","date":"date","email":"email","firstname":"firstname","html":"html","hidden":"hidden","lastname":"lastname","listcheckbox":"listcheckbox","listcountry":"listcountry","listimage":"listimage","listmultiselect":"listmultiselect","listradio":"listradio","listselect":"listselect","liststate":"liststate","note":"note","number":"number","password":"password","passwordconfirm":"passwordconfirm","product":"product","quantity":"quantity","recaptcha":"recaptcha","recaptcha_v3":"recaptcha_v3","repeater":"repeater","shipping":"shipping","spam":"spam","starrating":"starrating","submit":"submit","terms":"terms","textarea":"textarea","total":"total","unknown":"unknown","zip":"zip","hr":"hr"},"system":{"address":"address","textbox":"textbox","button":"button","checkbox":"checkbox","city":"city","confirm":"confirm","creditcard":"creditcard","creditcardcvc":"creditcardcvc","creditcardexpiration":"creditcardexpiration","creditcardfullname":"creditcardfullname","creditcardnumber":"creditcardnumber","creditcardzip":"creditcardzip","date":"date","email":"email","firstname":"firstname","html":"html","hidden":"hidden","lastname":"lastname","listcheckbox":"listcheckbox","listcountry":"listcountry","listimage":"listimage","listmultiselect":"listmultiselect","listradio":"listradio","listselect":"listselect","liststate":"liststate","note":"note","number":"number","password":"password","passwordconfirm":"passwordconfirm","product":"product","quantity":"quantity","recaptcha":"recaptcha","recaptcha_v3":"recaptcha_v3","repeater":"repeater","shipping":"shipping","spam":"spam","starrating":"starrating","submit":"submit","terms":"terms","textarea":"textarea","total":"total","unknown":"unknown","zip":"zip","hr":"hr"},"fields":{"address":"address","textbox":"textbox","button":"button","checkbox":"checkbox","city":"city","confirm":"confirm","creditcard":"creditcard","creditcardcvc":"creditcardcvc","creditcardexpiration":"creditcardexpiration","creditcardfullname":"creditcardfullname","creditcardnumber":"creditcardnumber","creditcardzip":"creditcardzip","date":"date","email":"email","firstname":"firstname","html":"html","hidden":"hidden","lastname":"lastname","listcheckbox":"listcheckbox","listcountry":"listcountry","listimage":"listimage","listmultiselect":"listmultiselect","listradio":"listradio","listselect":"listselect","liststate":"liststate","note":"note","number":"number","password":"password","passwordconfirm":"passwordconfirm","product":"product","quantity":"quantity","recaptcha":"recaptcha","recaptcha_v3":"recaptcha_v3","repeater":"repeater","shipping":"shipping","spam":"spam","starrating":"starrating","submit":"submit","terms":"terms","textarea":"textarea","total":"total","unknown":"unknown","zip":"zip","hr":"hr"},"calculations":{"html":"html","hidden":"hidden","note":"note","unknown":"unknown"}},"opinionated_styles":"light","filter_esc_status":"false","nf_consent_status_response":[]}; var nfInlineVars = []; /* ]]> */ </script> <script type="rocketlazyloadscript" data-rocket-type="text/javascript" data-rocket-src="https://nextcloud.com/p/ninja-forms/assets/js/min/front-end.js?ver=3.9.0" id="nf-front-end-js" data-rocket-defer defer></script> <script type="text/javascript" src="https://nextcloud.com/c/themes/nextcloud-theme/dist/js/utils.js?ver=1" id="intlTelInput_utils-js" data-rocket-defer defer></script> <script type="text/javascript" src="https://nextcloud.com/c/themes/nextcloud-theme/dist/js/intlTelInput.min.js?ver=1" id="intlTelInput-js"></script> <script type="text/javascript" src="https://nextcloud.com/c/themes/nextcloud-theme/dist/js/select2.min.js?ver=1" id="selectize-js"></script> <script type="text/javascript" src="https://nextcloud.com/c/themes/nextcloud-theme/dist/js/custom-nf-code.js?ver=1" id="custom-nf-code-js"></script> <script type="text/javascript" id="main-js-extra"> /* <![CDATA[ */ var main_js_strings = {"see_more":"See more","copied":"Copied!","copy_url":"Copy URL","events":"Events","see_less":"See less","hide_past_events":"Hide all events","show_past_events":"All events in","hide_older_years_events":"Hide previous years","show_older_years_events":"Show previous years"}; /* ]]> */ </script> <script type="rocketlazyloadscript" data-rocket-type="text/javascript" data-rocket-src="https://nextcloud.com/c/themes/nextcloud-theme/dist/js/main.js?ver=1739548450" id="main-js" data-rocket-defer defer></script> <script type="rocketlazyloadscript" data-rocket-type="text/javascript" data-rocket-src="https://nextcloud.com/p/js_composer/assets/js/dist/js_composer_front.min.js?ver=8.2" id="wpb_composer_front_js-js" data-rocket-defer defer></script> <script type="rocketlazyloadscript" data-rocket-type="text/javascript" data-rocket-src="https://nextcloud.com/p/js_composer/assets/lib/vendor/node_modules/lightbox2/dist/js/lightbox.min.js?ver=8.2" id="lightbox2-js" data-rocket-defer defer></script> <script type="rocketlazyloadscript" data-rocket-type="text/javascript" data-rocket-src="https://nextcloud.com/p/ninja-forms-conditionals/assets/js/min/front-end.js?ver=6.7.1" id="nf-cl-front-end-js" data-rocket-defer defer></script> <script id="tmpl-nf-layout" type="text/template"> <span id="nf-form-title-{{{ data.id }}}" class="nf-form-title"> {{{ ( 1 == data.settings.show_title ) ? '<h' + data.settings.form_title_heading_level + '>' + data.settings.title + '</h' + data.settings.form_title_heading_level + '>' : '' }}} </span> <div class="nf-form-wrap ninja-forms-form-wrap"> <div class="nf-response-msg"></div> <div class="nf-debug-msg"></div> <div class="nf-before-form"></div> <div class="nf-form-layout"></div> <div class="nf-after-form"></div> </div> </script> <script id="tmpl-nf-empty" type="text/template"> </script> <script id="tmpl-nf-before-form" type="text/template"> {{{ data.beforeForm }}} </script><script id="tmpl-nf-after-form" type="text/template"> {{{ data.afterForm }}} </script><script id="tmpl-nf-before-fields" type="text/template"> <div class="nf-form-fields-required">{{{ data.renderFieldsMarkedRequired() }}}</div> {{{ data.beforeFields }}} </script><script id="tmpl-nf-after-fields" type="text/template"> {{{ data.afterFields }}} <div id="nf-form-errors-{{{ data.id }}}" class="nf-form-errors" role="alert"></div> <div class="nf-form-hp"></div> </script> <script id="tmpl-nf-before-field" type="text/template"> {{{ data.beforeField }}} </script><script id="tmpl-nf-after-field" type="text/template"> {{{ data.afterField }}} </script><script id="tmpl-nf-form-layout" type="text/template"> <form> <div> <div class="nf-before-form-content"></div> <div class="nf-form-content {{{ data.element_class }}}"></div> <div class="nf-after-form-content"></div> </div> </form> </script><script id="tmpl-nf-form-hp" type="text/template"> <label id="nf-label-field-hp-{{{ data.id }}}" for="nf-field-hp-{{{ data.id }}}" aria-hidden="true"> {{{ nfi18n.formHoneypot }}} <input id="nf-field-hp-{{{ data.id }}}" name="nf-field-hp" class="nf-element nf-field-hp" type="text" value="" aria-labelledby="nf-label-field-hp-{{{ data.id }}}" /> </label> </script> <script id="tmpl-nf-field-layout" type="text/template"> <div id="nf-field-{{{ data.id }}}-container" class="nf-field-container {{{ data.type }}}-container {{{ data.renderContainerClass() }}}"> <div class="nf-before-field"></div> <div class="nf-field"></div> <div class="nf-after-field"></div> </div> </script> <script id="tmpl-nf-field-before" type="text/template"> {{{ data.beforeField }}} </script><script id="tmpl-nf-field-after" type="text/template"> <# /* * Render our input limit section if that setting exists. */ #> <div class="nf-input-limit"></div> <# /* * Render our error section if we have an error. */ #> <div id="nf-error-{{{ data.id }}}" class="nf-error-wrap nf-error" role="alert" aria-live="assertive"></div> <# /* * Render any custom HTML after our field. */ #> {{{ data.afterField }}} </script> <script id="tmpl-nf-field-wrap" type="text/template"> <div id="nf-field-{{{ data.id }}}-wrap" class="{{{ data.renderWrapClass() }}}" data-field-id="{{{ data.id }}}"> <# /* * This is our main field template. It's called for every field type. * Note that must have ONE top-level, wrapping element. i.e. a div/span/etc that wraps all of the template. */ #> <# /* * Render our label. */ #> {{{ data.renderLabel() }}} <# /* * Render our field element. Uses the template for the field being rendered. */ #> <div class="nf-field-element">{{{ data.renderElement() }}}</div> <# /* * Render our Description Text. */ #> {{{ data.renderDescText() }}} </div> </script> <script id="tmpl-nf-field-wrap-no-label" type="text/template"> <div id="nf-field-{{{ data.id }}}-wrap" class="{{{ data.renderWrapClass() }}}" data-field-id="{{{ data.id }}}"> <div class="nf-field-label"></div> <div class="nf-field-element">{{{ data.renderElement() }}}</div> <div class="nf-error-wrap"></div> </div> </script> <script id="tmpl-nf-field-wrap-no-container" type="text/template"> {{{ data.renderElement() }}} <div class="nf-error-wrap"></div> </script> <script id="tmpl-nf-field-label" type="text/template"> <div class="nf-field-label"> <# if ( data.type === "listcheckbox" || data.type === "listradio" || data.type === "listimage" || data.type === "date" || data.type === "starrating" ) { #> <span id="nf-label-field-{{{ data.id }}}" class="nf-label-span {{{ data.renderLabelClasses() }}}"> {{{ ( data.maybeFilterHTML() === 'true' ) ? _.escape( data.label ) : data.label }}} {{{ ( 'undefined' != typeof data.required && 1 == data.required ) ? '<span class="ninja-forms-req-symbol">*</span>' : '' }}} {{{ data.maybeRenderHelp() }}} </span> <# } else { #> <label for="nf-field-{{{ data.id }}}" id="nf-label-field-{{{ data.id }}}" class="{{{ data.renderLabelClasses() }}}"> {{{ ( data.maybeFilterHTML() === 'true' ) ? _.escape( data.label ) : data.label }}} {{{ ( 'undefined' != typeof data.required && 1 == data.required ) ? '<span class="ninja-forms-req-symbol">*</span>' : '' }}} {{{ data.maybeRenderHelp() }}} </label> <# } #> </div> </script><script id="tmpl-nf-field-error" type="text/template"> <div class="nf-error-msg nf-error-{{{ data.id }}}" aria-live="assertive">{{{ data.msg }}}</div> </script><script id="tmpl-nf-form-error" type="text/template"> <div class="nf-error-msg nf-error-{{{ data.id }}}">{{{ data.msg }}}</div> </script><script id="tmpl-nf-field-input-limit" type="text/template"> {{{ data.currentCount() }}} {{{ nfi18n.of }}} {{{ data.input_limit }}} {{{ data.input_limit_msg }}} </script><script id="tmpl-nf-field-null" type="text/template"> </script><script id="tmpl-nf-field-textbox" type="text/template"> <input type="text" value="{{{ _.escape( data.value ) }}}" class="{{{ data.renderClasses() }}} nf-element" {{{ data.renderPlaceholder() }}} {{{ data.maybeDisabled() }}} {{{ data.maybeInputLimit() }}} id="nf-field-{{{ data.id }}}" name="{{ data.custom_name_attribute || 'nf-field-' + data.id + '-' + data.type }}" {{{ data.maybeDisableAutocomplete() }}} aria-invalid="false" aria-describedby="<# if( data.desc_text ) { #>nf-description-{{{ data.id }}} <# } #>nf-error-{{{ data.id }}}" aria-labelledby="nf-label-field-{{{ data.id }}}" {{{ data.maybeRequired() }}} > </script> <script id='tmpl-nf-field-input' type='text/template'> <input id="nf-field-{{{ data.id }}}" name="nf-field-{{{ data.id }}}" aria-invalid="false" aria-describedby="<# if( data.desc_text ) { #>nf-description-{{{ data.id }}} <# } #>nf-error-{{{ data.id }}}" class="{{{ data.renderClasses() }}} nf-element" type="text" value="{{{ _.escape( data.value ) }}}" {{{ data.renderPlaceholder() }}} {{{ data.maybeDisabled() }}} aria-labelledby="nf-label-field-{{{ data.id }}}" {{{ data.maybeRequired() }}} > </script> <script id="tmpl-nf-field-email" type="text/template"> <input type="email" value="{{{ _.escape( data.value ) }}}" class="{{{ data.renderClasses() }}} nf-element" id="nf-field-{{{ data.id }}}" name="{{ data.custom_name_attribute || 'nf-field-' + data.id + '-' + data.type }}" {{{data.maybeDisableAutocomplete()}}} {{{ data.renderPlaceholder() }}} {{{ data.maybeDisabled() }}} aria-invalid="false" aria-describedby="<# if( data.desc_text ) { #>nf-description-{{{ data.id }}} <# } #>nf-error-{{{ data.id }}}" aria-labelledby="nf-label-field-{{{ data.id }}}" {{{ data.maybeRequired() }}} > </script> <script id="tmpl-nf-field-textarea" type="text/template"> <textarea id="nf-field-{{{ data.id }}}" name="nf-field-{{{ data.id }}}" aria-invalid="false" aria-describedby="<# if( data.desc_text ) { #>nf-description-{{{ data.id }}} <# } #>nf-error-{{{ data.id }}}" class="{{{ data.renderClasses() }}} nf-element" {{{ data.renderPlaceholder() }}} {{{ data.maybeDisabled() }}} {{{ data.maybeDisableAutocomplete() }}} {{{ data.maybeInputLimit() }}} aria-labelledby="nf-label-field-{{{ data.id }}}" {{{ data.maybeRequired() }}} >{{{ _.escape( data.value ) }}}</textarea> </script> <!-- Rich Text Editor Templates --> <script id="tmpl-nf-rte-media-button" type="text/template"> <span class="dashicons dashicons-admin-media"></span> </script> <script id="tmpl-nf-rte-link-button" type="text/template"> <span class="dashicons dashicons-admin-links"></span> </script> <script id="tmpl-nf-rte-unlink-button" type="text/template"> <span class="dashicons dashicons-editor-unlink"></span> </script> <script id="tmpl-nf-rte-link-dropdown" type="text/template"> <div class="summernote-link"> URL <input type="url" class="widefat code link-url"> <br /> Text <input type="url" class="widefat code link-text"> <br /> <label> <input type="checkbox" class="link-new-window"> {{{ nfi18n.fieldsTextareaOpenNewWindow }}} </label> <input type="button" class="cancel-link extra" value="Cancel"> <input type="button" class="insert-link extra" value="Insert"> </div> </script> <script id="tmpl-nf-field-checkbox" type="text/template"> <input id="nf-field-{{{ data.id }}}" name="nf-field-{{{ data.id }}}" aria-describedby="<# if( data.desc_text ) { #>nf-description-{{{ data.id }}} <# } #>nf-error-{{{ data.id }}}" class="{{{ data.renderClasses() }}} nf-element" type="checkbox" value="1" {{{ data.maybeDisabled() }}}{{{ data.maybeChecked() }}} aria-labelledby="nf-label-field-{{{ data.id }}}" {{{ data.maybeRequired() }}} > </script> <script id="tmpl-nf-field-html" type="text/template"> {{{ data.value }}} </script> <script id="tmpl-nf-field-submit" type="text/template"> <# let myType = data.type if('save'== data.type){ myType = 'button' } #> <input id="nf-field-{{{ data.id }}}" class="{{{ data.renderClasses() }}} nf-element " type="{{{myType}}}" value="{{{ ( data.maybeFilterHTML() === 'true' ) ? _.escape( data.label ) : data.label }}}" {{{ ( data.disabled ) ? 'aria-disabled="true" disabled="true"' : '' }}}> </script><script id='tmpl-nf-field-button' type='text/template'> <button id="nf-field-{{{ data.id }}}" name="nf-field-{{{ data.id }}}" class="{{{ data.classes }}} nf-element"> {{{ ( data.maybeFilterHTML() === 'true' ) ? _.escape( data.label ) : data.label }}} </button> </script><script>window.lazyLoadOptions = [{ elements_selector: "img[data-lazy-src],.rocket-lazyload", data_src: "lazy-src", data_srcset: "lazy-srcset", data_sizes: "lazy-sizes", class_loading: "lazyloading", class_loaded: "lazyloaded", threshold: 300, callback_loaded: function(element) { if ( element.tagName === "IFRAME" && element.dataset.rocketLazyload == "fitvidscompatible" ) { if (element.classList.contains("lazyloaded") ) { if (typeof window.jQuery != "undefined") { if (jQuery.fn.fitVids) { jQuery(element).parent().fitVids(); } } } } }},{ elements_selector: ".rocket-lazyload", data_src: "lazy-src", data_srcset: "lazy-srcset", data_sizes: "lazy-sizes", class_loading: "lazyloading", class_loaded: "lazyloaded", threshold: 300, }]; window.addEventListener('LazyLoad::Initialized', function (e) { var lazyLoadInstance = e.detail.instance; if (window.MutationObserver) { var observer = new MutationObserver(function(mutations) { var image_count = 0; var iframe_count = 0; var rocketlazy_count = 0; mutations.forEach(function(mutation) { for (var i = 0; i < mutation.addedNodes.length; i++) { if (typeof mutation.addedNodes[i].getElementsByTagName !== 'function') { continue; } if (typeof mutation.addedNodes[i].getElementsByClassName !== 'function') { continue; } images = mutation.addedNodes[i].getElementsByTagName('img'); is_image = mutation.addedNodes[i].tagName == "IMG"; iframes = mutation.addedNodes[i].getElementsByTagName('iframe'); is_iframe = mutation.addedNodes[i].tagName == "IFRAME"; rocket_lazy = mutation.addedNodes[i].getElementsByClassName('rocket-lazyload'); image_count += images.length; iframe_count += iframes.length; rocketlazy_count += rocket_lazy.length; if(is_image){ image_count += 1; } if(is_iframe){ iframe_count += 1; } } } ); if(image_count > 0 || iframe_count > 0 || rocketlazy_count > 0){ lazyLoadInstance.update(); } } ); var b = document.getElementsByTagName("body")[0]; var config = { childList: true, subtree: true }; observer.observe(b, config); } }, false);</script><script data-no-minify="1" async src="https://nextcloud.com/p/wp-rocket/assets/js/lazyload/17.8.3/lazyload.js"></script><a href="" title="Scroll Up" class="scroll_up" style=""><i class="fa fa-angle-up"></i></a> <script>var rocket_beacon_data = {"ajax_url":"https:\/\/nextcloud.com\/wp-admin\/admin-ajax.php","nonce":"25567dfd75","url":"https:\/\/nextcloud.com\/developer","is_mobile":false,"width_threshold":1600,"height_threshold":700,"delay":500,"debug":null,"status":{"atf":true,"lrc":true},"elements":"img, video, picture, p, main, div, li, svg, section, header, span","lrc_threshold":1800}</script><script type="rocketlazyloadscript" data-name="wpr-wpr-beacon" data-rocket-src='https://nextcloud.com/p/wp-rocket/assets/js/wpr-beacon.js' async></script></body> </html> <!-- Performance optimized by Redis Object Cache. Learn more: https://wprediscache.com --> <!-- This website is like a Rocket, isn't it? Performance optimized by WP Rocket. Learn more: https://wp-rocket.me - Debug: cached@1739785673 -->

Pages: 1 2 3 4 5 6 7 8 9 10