(window.webpackJsonp=window.webpackJsonp||[]).push([[56],{327:function(e,t,s){"use strict";s.r(t);var i=s(13),n=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"extensions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#extensions"}},[e._v("#")]),e._v(" Extensions")]),e._v(" "),t("blockquote",[t("p",[e._v("In addition to being highly customizable, Directus has been architected to be completely modular and extensible. This\nensures you will never hit a hard feature ceiling within the platform.")])]),e._v(" "),t("p",[e._v("Build, modify or expand any feature needed for your app or project. What makes Directus so flexible is that it has been\ndesigned from the ground up with complete extensibility. In addition to offering our software's codebase as open-source,\nwe've broken down the app code into component pieces called Extensions. New Extensions can be created, modified or\nexpanded to suit any need. However, the following extension types come with the platform's App and API.")]),e._v(" "),t("h2",{attrs:{id:"extension-sdk"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#extension-sdk"}},[e._v("#")]),e._v(" Extension SDK")]),e._v(" "),t("p",[e._v("The easiest way to start creating extensions is to use the "),t("RouterLink",{attrs:{to:"/extensions/creating-extensions/"}},[e._v("Extensions SDK")]),e._v(".")],1),e._v(" "),t("h2",{attrs:{id:"app-extensions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#app-extensions"}},[e._v("#")]),e._v(" App Extensions")]),e._v(" "),t("p",[e._v("Allow creating custom experiences within the Directus App.")]),e._v(" "),t("ul",[t("li",[t("RouterLink",{attrs:{to:"/extensions/modules/"}},[e._v("Modules")]),e._v(" — Created with Vue.js")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/extensions/layouts/"}},[e._v("Layouts")]),e._v(" — Created with Vue.js")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/extensions/interfaces/"}},[e._v("Interfaces")]),e._v(" — Created with Vue.js")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/extensions/displays/"}},[e._v("Displays")]),e._v(" — Created with Vue.js")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/extensions/panels/"}},[e._v("Panels")]),e._v(" — Created with Vue.js")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/extensions/themes/"}},[e._v("Themes")]),e._v(" — Created with custom CSS")],1)]),e._v(" "),t("h2",{attrs:{id:"api-extensions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#api-extensions"}},[e._v("#")]),e._v(" API Extensions")]),e._v(" "),t("p",[e._v("Allow extending and customizing the data pipeline and platform logic.")]),e._v(" "),t("ul",[t("li",[t("RouterLink",{attrs:{to:"/extensions/endpoints/"}},[e._v("Endpoints")]),e._v(" — Created with JavaScript / Node.js")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/extensions/hooks/"}},[e._v("Hooks")]),e._v(" — Created with JavaScript / Node.js")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/extensions/email-templates/"}},[e._v("Email Templates")]),e._v(" — Created with Liquid.js")],1),e._v(" "),t("li",[t("RouterLink",{attrs:{to:"/extensions/migrations/"}},[e._v("Migrations")]),e._v(" — Created with JavaScript / Node.js")],1)])])}),[],!1,null,null,null);t.default=n.exports}}]);