1"use strict";(self.webpackChunk_cromwell_website=self.webpackChunk_cromwell_website||[]).push([[3237],{9953:function(e,t,a){a.r(t),a.d(t,{default:function(){return B}});var r=a(3298),n=a(1942),l=a(3578),s=a(78),m=a(7378),c=a(9148),i=a(8944),o=a(9998),d="swiper_6hSA",g="screenshots_aOCI",u="slide_4Gfa",p="content_40R6",h="image_WTdj",E="video_5Hb1",f=a(8863),v=a(3272),y=function(e){function t(t){var a;return(a=e.call(this,t)||this).setOpen=function(e,t){a.setState({isOpen:e,photoIndex:t})},a.state={photoIndex:0,isOpen:!1},a.props.getState(a.setOpen),a}return(0,f.Z)(t,e),t.prototype.render=function(){var e=this,t=this.state,a=t.photoIndex,r=t.isOpen,n=this.props.images;return this.props.getState(this.setOpen),m.createElement(m.Fragment,null,r&&m.createElement(v.Z,{reactModalProps:{},reactModalStyle:{zIndex:5e3},mainSrc:n[a],nextSrc:n[(a+1)%n.length],prevSrc:n[(a+n.length-1)%n.length],onCloseRequest:function(){return e.setState({isOpen:!1})},onMovePrevRequest:function(){return e.setState({photoIndex:(a+n.length-1)%n.length})},onMoveNextRequest:function(){return e.setState({photoIndex:(a+1)%n.length})}}))},t}(m.Component);o.ZP.use([o.oM,o.lI]);var b=function(e){var t,a=(0,m.useRef)(),r=(0,m.useRef)();return(0,m.useEffect)((function(){new o.ZP(a.current,{effect:"coverflow",grabCursor:!0,slidesPerView:"auto",spaceBetween:30,lazy:!0,height:400,coverflowEffect:e.images.length>1&&{rotate:50,stretch:0,depth:100,modifier:1,slideShadows:!0}});for(var t,r=(0,c.Z)(e.images);!(t=r()).done;){var n=t.value;if(n.endsWith(".mp4")){var l=document.getElementById(n);l.addEventListener("mouseover",(function(){this.controls=!0}),!1),l.addEventListener("mouseout",(function(){this.controls=!1}),!1)}}var s=function(){for(var t,a=(0,c.Z)(e.images);!(t=a()).done;){var r=t.value;if(r.endsWith(".mp4")){var n=document.getElementById(r);n&&(void 0,n.getBoundingClientRect().top>=0)&&n.play()}}};return window.addEventListener("scroll",s),function(){window.removeEventListener("scroll",s)}}),[]),m.createElement("div",{className:(0,i.Z)("swiper",d,e.images.length<2?p:g),ref:a,tabIndex:1},m.createElement("div",{className:"swiper-wrapper"},e.images.map((function(t,a){var n;return n=t.endsWith(".mp4")?m.createElement("video",{muted:!0,id:t,"data-src":t,className:(0,i.Z)("swiper-lazy",E)}):m.createElement("img",{onClick:function(){return function(e){null==r.current||r.current(!0,e)}(a)},id:t,"data-src":t,className:(0,i.Z)("swiper-lazy",h)}),m.createElement("div",{key:t,style:{width:e.images.length<2?"100%":void 0},className:(0,i.Z)("swiper-slide",u)},n,m.createElement("div",{className:"swiper-lazy-preloader swiper-lazy-preloader-white"}))}))),m.createElement(y,{images:null!=(t=e.images)?t:[],getState:function(e){r.current=e}}))};var N="IndexPage_QSwS",w="content_+X+C",x="header_PBJ1",_="moon_mAnY",k="subheader_YidM",S="fireIcon_PdKk",I="quote_1v8-",Z="mainActions_bXBl",M="getStartedBtn_nR7N",C="examplesBtn_pnMI",z="features_eXGx",P="feature_Fxce",L="featureImg_V8MI",T="featureTitle_5COH",A="header3_7m6I",R="sectionSubHeader_FH90",j=a(5684);function B(){return m.createElement(s.Z,{title:"Cromwell CMS - next-gen e-commerce and blogging platform that unites bleeding-edge web techs in extraordinary user-friendly format",description:"Cromwell CMS - next-gen e-commerce and blogging platform that unites bleeding-edge web techs in extraordinary user-friendly format"},m.createElement(j.Z,null,m.createElement("meta",{charSet:"utf-8"}),m.createElement("meta",{property:"og:image",content:"/img/icon_small.png"})),m.createElement("div",{className:N},m.createElement("div",{className:w},m.createElement("div",{className:_}),m.createElement("h1",{className:x},m.createElement("span",{style:{display:"none"}},"C"),m.createElement("span",null,"romwell CMS")),m.createElement("p",{className:k},"It's time for everyone to make blazing-fast websites",m.createElement(l.Z,{className:S,style:{width:"20px",height:"20px"}})),m.createElement("div",null,m.createElement("p",{className:I},"Cromwell CMS is a next-gen e-commerce and blogging platform that unites bleeding-edge web techs in extraordinary user-friendly format.")),m.createElement("div",{className:Z},m.createElement(r.Z,{href:"/docs/overview/intro"},m.createElement(n.Z,{variant:"contained",className:M},"Get started")))),m.createElement("div",{className:w},m.createElement("br",{style:{height:"10px"}}),m.createElement("h3",{className:A},"The most advanced visual editor for Next.js apps"),m.createElement("p",{className:R},"Install properly crafted themes by frontend developers. Drag and drop theme blocks. Add plugins, change content, styles and more. Make it yours!"),m.createElement("br",{style:{height:"20px"}})),m.createElement(b,{images:["/img/demo-theme-editor.mp4"]}),m.createElement("div",{className:w},m.createElement("br",{style:{height:"20px"}}),m.createElement("br",{style:{height:"20px"}}),m.createElement("h3",{className:A},"Modern block styled rich text editor"),m.createElement("p",{className:R},"Embed video links or upload images. Manage your media with file manager."),m.createElement("br",{style:{height:"10px"}})),m.createElement(b,{images:["/img/demo-editor.jpg","/img/demo-filemanager.png"]}),m.createElement("div",{className:w},m.createElement("br",{style:{height:"20px"}}),m.createElement("br",{style:{height:"20px"}}),m.createElement("h3",{className:A},"Customizable statistics dashboard"),m.createElement("p",{className:R},"Move and resize dashboard blocks. Monitor server load."),m.createElement("br",{style:{height:"20px"}})),m.createElement(b,{images:["/img/demo-dashboard.mp4","/img/demo-sysusage.png"]}),m.createElement("div",{className:w},m.createElement("br",{style:{height:"10px"}}),m.createElement("br",{style:{height:"10px"}}),m.createElement("h3",{className:A},"Custom data types"),m.createElement("p",{className:R},"Add custom fields or create new custom entities. Store any kind of data."),m.createElement("br",{style:{height:"10px"}})),m.createElement(b,{images:["/img/demo-custom1.png","/img/demo-custom-entities.mp4","/img/demo-custom2.png"]}),m.createElement("div",{className:w},m.createElement("br",{style:{height:"10px"}}),m.createElement("br",{style:{height:"10px"}}),m.createElement("h3",{className:A},"Good looking default themes"),m.createElement("p",{className:R},"Fully featured free online store and blog out of the box."),m.createElement("br",{style:{height:"10px"}})),m.createElement(b,{images:["/img/demo-site1.png","/img/demo-site2.png","/img/demo-site3.png","/img/demo-site4.png"]}),m.createElement("div",{className:w},m.createElement("br",{style:{height:"10px"}}),m.createElement("br",{style:{height:"10px"}}),m.createElement("h3",{className:A},"Developer?"),m.createElement("p",{className:R},"Make plugins that work with themes and can be statically pre-rendered by Next.js. Publish them to the market and let everyone use with a couple of clicks."),m.createElement("br",{style:{height:"10px"}})),m.createElement(b,{images:["/img/demo-install-plugin.mp4"]}),m.createElement("div",{className:w},m.createElement("br",{style:{height:"10px"}}),m.createElement("br",{style:{height:"10px"}}),m.createElement("h3",{className:A},"Use the power of React and Next.js"),m.createElement("p",{className:R},"Make themes by writing JSX code. We will build your Next.js app so representation of your co
1de can be fully customized by your customers. Yes, these React components will be dragged/dropped/removed/styles in the theme editor!"),m.createElement("br",{style:{height:"10px"}})),m.createElement(b,{images:["/img/demo-theme-dev.png"]}),m.createElement("div",{className:w},m.createElement("br",{style:{height:"10px"}}),m.createElement("br",{style:{height:"10px"}}),m.createElement("h3",{className:A},"Extend server API"),m.createElement("p",{className:R},"Make plugins to extend server API with the best enterprise-grade TypeScript frameworks: Nest.js, TypeGraphQL and TypeORM."),m.createElement("br",{style:{height:"10px"}})),m.createElement(b,{images:["/img/demo-plugins-api.jpg"]}),m.createElement("div",{className:w},m.createElement("br",{style:{height:"10px"}}),m.createElement("br",{style:{height:"10px"}}),m.createElement("h3",{className:A},"Go headless"),m.createElement("p",{className:R},"Cromwell CMS follows principles of headless CMS. You can make any kind of custom frontend and query our API server with GraphQL."),m.createElement("br",{style:{height:"10px"}})),m.createElement(b,{images:["/img/demo-headless.png"]}),m.createElement("div",{className:w},m.createElement("br",{style:{height:"20px"}}),m.createElement("br",{style:{height:"20px"}}),m.createElement("div",{style:{display:"flex",alignItems:"center",width:"100%",justifyContent:"center"}},m.createElement(r.Z,{href:"/docs/overview/intro"},m.createElement(n.Z,{style:{margin:"0"},variant:"contained",className:M},"Get started")),m.createElement(r.Z,{href:"/docs/overview/intro#examples",style:{marginLeft:"30px"}},m.createElement(n.Z,{variant:"contained",className:C},"Examples"))),m.createElement("br",null),m.createElement("br",null),m.createElement("br",null)),m.createElement("div",{className:w},m.createElement("div",{className:z},m.createElement("div",{className:P},m.createElement("div",{className:L,style:{backgroundSize:"70%",backgroundImage:'url("/img/content.svg")'}}),m.createElement("div",null,m.createElement("p",{className:T},"Online store and blogging platform."),m.createElement("p",null,"Manage your products, posts and other content with ease."))),m.createElement("div",{className:P},m.createElement("div",{className:L,style:{backgroundImage:'url("/img/puzzle.svg")',backgroundSize:"68%"}}),m.createElement("div",null,m.createElement("p",{className:T},"Powerful admin panel with themes and plugins."),m.createElement("p",null,"Customize your theme, install plugins. WordPress-like user experience."))),m.createElement("div",{className:P},m.createElement("div",{className:L,style:{backgroundSize:"97%",backgroundImage:'url("/img/seo.svg")'}}),m.createElement("div",null,m.createElement("p",{className:T},"SEO optimized."),m.createElement("p",null,"Modifiable meta tags for all c
1ontent and custom pages. Auto-generated Sitemap."))),m.createElement("div",{className:P},m.createElement("div",{className:L,style:{backgroundImage:'url("/img/magic-wand.svg")'}}),m.createElement("div",null,m.createElement("p",{className:T},"Theme editor"),m.createElement("p",null,"Fully customize your Theme layout in drag-and-drop Theme editor."))),m.createElement("div",{className:P},m.createElement("div",{className:L,style:{backgroundSize:"73%",backgroundImage:'url("/img/rocket.svg")'}}),m.createElement("div",null,m.createElement("p",{className:T},"Node.js."),m.createElement("p",null,"Designed to be a better version of PHP web servers, it greatly outperforms backend of well known CMS."))),m.createElement("div",{className:P},m.createElement("div",{className:L,style:{backgroundImage:'url("/img/open-source.svg")'}}),m.createElement("div",null,m.createElement("p",{className:T},"Free and open source"),m.createElement("p",null,"Cromwell CMS with default themes and plugins will stay forever free of charge and open source.")))),m.createElement("br",{style:{height:"20px"}}))))}},4604:function(e,t,a){a.d(t,{Z:function(){return y}});var r=a(5773),n=a(808),l=a(7378),s=a(8944),m=a(3298),c=a(4541),i=a(1847),o=a(4715),d="footerLogoLink_94kH",g="logoContainer_yqgz",u="logo_JrwJ",p=a(2722),h=a(8453),E=["to","href","label","prependBaseUrlToHref"];function f(e){var t=e.to,a=e.href,s=e.label,c=e.prependBaseUrlToHref,d=(0,n.Z)(e,E),g=(0,i.Z)(t),u=(0,i.Z)(a,{forcePrependBaseUrl:!0});return l.createElement(m.Z,(0,r.Z)({className:"footer__link-item"},a?{href:c?u:a}:{to:g},d),a&&!(0,o.Z)(a)?l.createElement("span",null,s,l.createElement(h.Z,null)):s)}var v=function(e){var t=e.sources,a=e.alt;return l.createElement(p.Z,{className:"footer__logo",alt:a,sources:t})};var y=function(){var e=(0,c.LU)().footer,t=e||{},a=t.copyright,r=t.links,n=void 0===r?[]:r,o=t.logo,p=void 0===o?{}:o,h={light:(0,i.Z)(p.src),dark:(0,i.Z)(p.srcDark||p.src)};return(0,l.useEffect)((function(){for(var e=0,t=Array.from(document.getElementsByTagName("a"));e<t.length;e++){var a,r=t[e];null!=(a=r.getAttribute("href"))&&a.includes("cromwellcms.com")&&r.setAttribute("target","_self")}})),e?l.createElement("footer",{className:(0,s.Z)("footer",{"footer--dark":"dark"===e.style})},l.createElement("div",{className:"container"},n&&n.length>0&&l.createElement("div",{className:"row footer__links"},n.map((function(e,t){return l.createElement("div",{key:t,className:"col footer__col"},null!=e.title?l.createElement("div",{className:"footer__title"},e.title):null,null!=e.items&&Array.isArray(e.items)&&e.items.length>0?l.createElement("ul",{className:"footer__items"},e.items.map((function(e,t){return e.html?l.createElement("li",{key:t,className:"footer__item",dangerouslySetInnerHTML:{__html:e.html}}):l.createElement("li",{key:e.href||e.to,className:"footer__item"},l.createElement(f,e))}))):null)}))),l.createElement("div",{className:g},l.createElement("div",{className:u})),(p||a)&&l.createElement("div",{className:"footer__bottom text--center"},p&&(p.src||p.srcDark)&&l.createElement("div",{className:"margin-bottom--sm"},p.href?l.createElement(m.Z,{href:p.href,className:d},l.createElement(v,{alt:p.alt,sources:h})):l.createElement(v,{alt:p.alt,sources:h})),a?l.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:a}}):null)),l.createElement("div",{dangerouslySetInnerHTML:{__html:"\n <script async src=\"https://www.googletagmanager.com/gtag/js?id=G-W8QY5D61KR\"><\/script>\n <script>\n window.dataLayer = window.dataLayer || [];\n function gtag(){dataLayer.push(arguments);}\n gtag('js', new Date());\n gtag('config', 'G-W8QY5D61KR');\n <\/script>\n "}})):null}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.