 And welcome to the last session of the first session day of DrupalCon. Today we're going to talk about Panopoly, which is a base distribution that's designed to allow people to have easy and quick access to build Drupal sites. So, as I was mentioning earlier, about 30% of this talk is around how base distributions work, how install profiles work, how you build Drupal products. 70% of the talk is on Panopoly, which is a particular base distribution and one that has a lot of these functionality and pieces that I'll talk about. So, to sort of jump in there in terms of details, so my name is Matt Cheney. I live in San Francisco, California. I'm not a particularly technical person. By trade I went to school to be a librarian. So I'm very focused on content and layout and how people specifically end users and information specialists get stuff published to the internet. Professionally I founded a company Chapter 3, which is a web design and development company in San Francisco, and now work at a company called Pantheon Systems, which I also founded to help make people have better development and sort of hosting environments. It's a magical platform for Drupal stuff. Everything I show you here, you can actually check out and try on Pantheon for free as a developer, which is very cool. There's some slides at the end to talk about that. In terms of Drupal, I'm really a big fan of the panels module, which I assume a lot of the folks in the room have used and hopefully love. It's a powerful sort of engine for tools to make websites and a lot of what Panopoly does sort of extends that. And specifically I care a lot about Drupal distributions that part of the sort of thinking in terms of Pantheon is that we'll live in a world where Drupal will run 20% of the internet. And I feel that the way we get there as a community and as a software project is to take Drupal, which by itself doesn't do a whole lot and make it work in particular verticals. So you can spin off a website in the box for whatever particular use case you have. And a lot of the work around base distributions sort of tries to get us there by making it easy and simple for you as developers or as site owners to have the ability to spin up something in a box that works for your use case. So let's start here with sort of the main premise. So like I mentioned, Drupal sort of by default, this is the starting screen when you install Drupal 7, is it can be anything. It's a great deal of Legos that have a lot of positive and powerful functionality to them that we all know the kinds of things you can build with Drupal, but that you sort of start here as an end user. So when you're new to Drupal or if you're evaluating Drupal, it doesn't look like a whole lot out of the box. And that in most cases, you're going to need to install to run some additional code beyond Drupal, whether if that's modules that you're downloading or code you're writing to actually get it to be what we want it to be. And contrast that with WordPress that runs, you know, 10 times the kind of number of sites that Drupal runs, WordPress does something very particularly out of the box. It's a blog, like your starting screen has your first blog post, your sidebar has your comments and blog categories. Your entire experience is set up and designed for that kind of thing. And I think when we sort of look at how do we as a Drupal community create a world where double digit percentage of the internet runs Drupal, we need to provide more solutions like WordPress where you have an out of the box experience that's really powerful. It just is sort of tricky to do for a lot of reasons. But we have some successes. Distributions are in the Drupal space. We have distributions for e-commerce stores, distributions for internet, distributions for NGO sites, distributions for government or university or you name it. And there's varying quality and sort of supportability of these kinds of things. But Drupal can be made to do the kinds of vertical use cases that we're all looking for as a community to get there. And a lot of these distributions are getting a lot of pickup in their specific spaces. There's a lot of people that are around today that use, for example, Drupal as part of their e-commerce store, but might not actually know they're running Drupal. They just know they're running Commerce Kickstarter or something like that. And the same is true for a lot of different spaces. And I think this is where I'd love to see Drupal go. The problem is that these distributions are hard to maintain. They're hard to build and they require actually a fair amount of sort of technical know-how to get these things working. I've built several distributions in my life and just even getting started with writing install profiles hard, picking the modules that you want to use and how they work together is hard. Taking Drupal and creating a better admin experience, having a WYSIWYG, or providing people the ability to sort of expand what you've done later, all are very hard problems to solve. And it's no surprise that from that last slide that a lot of these distributions are things that are being done with companies that have venture funded money or are very large professional services firms or are having external funding to really make these work. Because to build something like this for your Drupal sort of product is actually a lot of work and constitutes hundreds if not thousands of developer hours to solve these kinds of problems. And that creates a huge barrier, which is why I think we don't see as many of these Drupal products and distributions as we might otherwise want to see. Brice has a pretty interesting blog post after the release of Drupal 5 that this is now five, six years ago where he sort of looked at the install profile feature in Drupal which allows you to sort of make Drupal do something out of the box beyond the standard functionality. And in the post he talks about how great this functionality is and it is great. But then he predicts that in 2006, I believe 2007, that we'll see a tsunami of Drupal distributions as part of sort of what he thought would happen. And we saw some obviously, but we didn't see a tsunami by any means. And I think a lot of that is because these are hard problems to actually build distributions. In terms of just the audience, quick show of hands, who's like made a Drupal distribution or expires to or whatever, that's great. Okay, that's actually quite a few more people than I expected. So you probably struggle with some of these problems and are definitely doing what this guy's doing which is reinventing the wheel. So looking at the code of a lot of the distribution are out there and working a lot of people, you sort of see these same problems being solved. Like most distributions will ship with a WYSIWYG for example, which in Drupal 7 isn't by default. So you have to install some modules and do configuration to get there. Most distributions will provide better administrative experiences, will provide a lot of these kind of extra things. And I think one of the things that I really feel is important, and this is really where Panopoli is coming from and this is where this whole concept of a base distribution is coming from, is that I think we want to create a situation where people who are building Drupal products, either for fun or profit, have a starting point that's better than that blue screen that is Drupal by default. They have something that exists as a higher level starting point. And this is a Drupal problem that we've seen before, that in the world of theming for people who make themes, there's a lot of options in the theming world for base themes or starter themes that actually take a lot of the problems or tasks that themers are usually doing on every site they theme and providing those as sort of a common set of repositories. And what I sort of want to argue for or suggest is that, similar to how base themes work in the sort of theming space, that we can have this concept of base distributions with inside Drupal. And these base distributions are things that are going to first and foremost is simply bundle common functionality together, be it a WYSIWYG or enhancements on a WYSIWYG, be it a set of layouts, be it an improved search system or whatever. And these are going to be sensing things that anybody can draw on who wants to build a distribution to have in their stuff. So the Penopoli stuff, which I'll show you in just a bit, all of those things are things that if you want to use that, that kind of sort of magical Drupal thing in your site, you can sort of easily extend on what Penopoli has to do that for your distribution. And sort of from ground zero, you get all these things. Second is that you want to provide sane and smart defaults for people who are doing Drupal site building, either as distributions or as standalone things. This is relatively straightforward, but mostly just to say, hey, we want to give you a higher starting point than Drupal's blue screen that asks you to do some sort of weird stuff. And we want to have the ability though to have that be overridden, that it doesn't always have to be the way it is. It's just a default. And then the third and probably most important thing here is that part of I think a good base theme, for example, is strong documentation around how to extend each of the different pieces of it. And with Penopoli or with other distribution, base distributions, I feel an important thing is explaining to people how do you go beyond what you have and how do you extend it. And that documentation is critical, because having struggled through a lot of distribution writing there's things that you just don't really pick up. Like the modules are loaded all in alphabetical order with no dependency checking. Like that's not something that's intuitive. It's not something how Drupal handles itself elsewhere, but in terms of building install profiles it is. So that's sort of what we're looking to do. And this is sort of then in the Penopoli space, what this looks like, right? We've got Drupal 7 at the bottom that exists as just the core functionality. In the Drupal 8 world, it'll look the same, of course, but just with Drupal 8. In the module space, we have a set of contributed modules that are brought in by the base distribution by Penopoli. These are things that Penopoli needs to do what it needs to do and what I think a lot of modules people would use in their sites. And then on top of it actually sits the base distribution of Penopoli that allows you to have a lot of the functionality I'll show you. The important thing, though, here is that we have additional layers that can be built on top of this thing. So if you look at distributions that are being worked on in the Drupal space, like Open Academy for universities and Open Atrium for NGOs and internets, these are things that are basically taking this stack and putting their own functionality on top of it as a way to sort of extend where they're going. And this is where I feel the base distribution can really win by saying let's find the right modules, find the right core stuff, and then build a set of stuff everybody needs and then let folks who are building distributions sit at the top of the stack and make stuff that really, really works for them. So why Penopoli? What are the specific features that make you want to use a base distribution? Or features that if you're just building a site you'd want to have, I mean, the kind of stuff that the base distribution gives you isn't necessarily only for people who want to build other distributions. It's completely acceptable and valuable to use it as a starting point for building your own site even if there's just one of them. So in terms of sort of the what value you get, the number one value is really a question of module selection. It's about saying when I start from scratch in Drupal, the first thing that I, before I started using base distributions would do is I would just go get a bunch of modules I know I need. One of the things Penopoli does is it says I'm already going to go get you a bunch of best practice default modules. You're going to want to have views on your site to do any of the complicated things you want to do. So let's just go ahead and get the right version of views installed, configured, permissioned, and ready to go. And let's do that for a bunch of other modules sort of down the path. We have in terms of selections a pretty good foundation of modules that most of you are going to use on most of your sites, things like views or Path Auto or WizzyWig or Entity or jQueryUpdate are things that make Drupal better but require some technical awareness of how they work together and some testing to make sure that that stack works. Something like jQueryUpdate is super useful to provide some higher level UX functionality but can break other stuff if you don't have the appropriate patches and sort of testing. And what Panopoli less sort of says is, hey, we're going to give you a stack with all of these modules connected together, permissioned together, and ready to go so that you can start building on top of that. You don't have to get all this stuff installed or configured. These are all optional and most of these are optional in the sense you can sort of remove or not remove them if you want but it's that sort of same default philosophy at work. We also have some very specific modules that we have. We also have some very specific modules for actually how you build distributions. Features is the sort of core of that kind of technology but things like your UID or default config or default content or stuff like that are things that are necessary if you want to build Drupal distributions and are things that Panopoli sort of already establishes for you provides you clear patterns for how to use for your stuff by default. The sort of heart of Panopoli is obviously the panel's modules. If you've used panels before it's like Panopoli has those things but it sort of really goes well beyond that which you'll see. But the important thing is that the panel's module is just one of actually many different modules across different projects that really gets you that kind of awesome functionality you would want to have in terms of drag and drop functionality. So beyond just panels, panelizer is a newer module it's very useful, takes all the panel stuff applies it to nodes. Fieldable panel panes uses the entity system in Drupal for value very smart sort of paint objects that work like blocks you can drop anywhere with clear field UI on it. PM existing pages lets you panelize everything. Panels breadcrumbs make sure the breadcrumb and site pathing all works well and the panel's IP is the sort of drag and drop front end the crown jewel of what Panopoli does. But that this is all set up for you by default when you get Panopoli and it's something you can use if you want or disable if you want you have a lot of options but it's not easy tech to get working and get working right together and that's one of the benefits. The last bit is just UX improvements so Drupal 7 has a lot of UX improvements that have gone on and contrived modules, things that in some cases are in Drupal 8 but are stuff that we can make better in Drupal 7 just by turning on the right modules and making sure they're tested and integrated and so there are various things from module filter which is a great way to improve the display of the modules page to an admin bar at the top to having pop ups to pick dates instead of having to type in strings or having the ability to save as draft different things. These are options that if you have them on your site people are going to really notice the difference and we'll find a more usable experience but are stuff that in terms of building normal it's not actually going in and down mode just because it requires some thinking and what if the penopoly is giving you this ability to make your site better by providing you all out of the box in a sort of sustained and supported way and that sort of then by just turning on penopoly as a base distribution you get all of these modules already configured and you're off to the races. Advantage 2 is layouts so layouts are common need on sites people want to have their sites laid out in different ways sometimes at sidebar left sometimes at sidebar right but there's a whole lot of other cases that sort of need to be addressed and as themers or developers you end up writing you know different kinds of layout and CSS routines to make this stuff work the way you want it to work and that can get a little tedious it can definitely take time and energy out of your project and it can require some complexity if you want to change the layouts so what penopoly does to help address this is provide layouts for you out of the box so there's 31 layouts that penopoly ships with these are the layouts you can change them on any page but they'll show you but the important thing is they're all cross browser tested they're all responsive for mobile support and they're all sort of pre-baked in it so that anything you build on top of penopoly in terms of your own distribution, your own site you can just drop in one of these layouts and it'll just work and that's very helpful because this doesn't require you to rebuild these things each time you have a library of things that are tested and supported by a larger group of people and you can sort of depend on these at least as a minimum being there it's easy to make more if you want but that this is the kind of thing that ends up being super helpful for site builders and designers because they don't have to go ahead and make all this stuff and figure out how to make it responsive of things and that's obviously a key feature in terms of what we're going search is another feature, super important Drupal search isn't particularly strong of it's because Drupal search is sort of a lowest common denominator kind of functionality so it doesn't do a whole lot of crazy database stuff it obviously can't assume a backend like solar or Sphinx to actually do your database exchanges but penopoly by virtue of using the search API module which is a great module and really extends to Drupal search experience can give you an experience out of the box that looks more like this where you have a your search results are a view that allows you to theme and customize you've got facets for like content type or date and you have the whole page being a panelized experience so that allows you to go beyond just having the normal Drupal search but having a pretty strong robust option out of the box and you just get that by virtue of turning the thing on which is very cool content editing and WYSIWYG as I mentioned earlier this is like a critical part of most like modern web content management systems and a necessary piece for a lot of people to put their thoughts and opinions and stuff online Drupal 8 will likely have one of these things that will go that will work hopefully pretty well Drupal 7 doesn't, one of the things penopoly does is provide you that experience and it's not just like turning on a WYSIWYG and having it work it's about making a really sort of best to breed experience so we have TinyMC which we had used for a while and now also CKEditor which is probably what will be Drupal core and that those editors are obviously visually going to provide that WYSIWYG experience but behind the scenes we're integrating the WYSIWYG module to make all that sort of work along with the caption filter module to do stuff like that caption on the right, media module to bring in media assets, image resize filter to allow for automatic image resizing and scaling on the fly, WYSIWYG filter to make sure that we can have all that complicated markup go through filters but nothing we don't want which is actually a pretty tricky task and pathologic to manage some of the links and other URLs that are put in there and all of this stuff, there's like a lot of thinking and man hours and people hours that went into making sure that this WYSIWYG really works for people and that's something that you just sort of get by default so if you've ever gone in and have to configure WYSIWYG you don't need to do that anymore you just use a base distribution and you have it and anyone who uses your site has it which is very, very useful and I'll show you this in the demo but as a sort of key feature for what a base distribution can do providing that experience is critical. Last couple of things, so user administration or site administration is really important Drupal by virtue of being sort of a box of Legos with a lot of developer sort of interactions doesn't necessarily have a particularly strong content editing experience that's something that will be improved hopefully in Drupal 8 but that one of the things that Monopoly does is sort of give you that kind of WordPress style experience now so it'll turn your sort of node add or node edit page into something that looks a lot more like this where you've got obviously the WYSIWYG but like your left side focused mostly on the content, the right side a set of options around that and it can give you that kind of experience without having to do any extra customization and this is something that will make your users much more appreciative of the interaction at the website about what's going on and give them a sort of consistent experience across any kind of content editing they're doing on the site which in our experience has been really helpful. This is also true for the sort of other pieces of content you want to add to your sites that aren't nodes so a pretty common request that I've seen in the Drupal space is for someone who wants to say add an image to a sidebar how sort of one would go off and do that that's not actually that easy to do in Drupal surprisingly mostly because having control of what stuff shows up in the sidebar is a different interface from where you upload files is a different interface to how you define some of the things that go there and so one of the key pieces that Panopoly can do by virtue of leveraging fieldable panel panes and panels is provide you this sort of cool experience where like any place on the site if you want to add something you can just click and say add me something these options is sort of what you want to add and you can pick do you want to add quicklinks or files or a map or video or a sub menu or something like that and those all sort of get popped up with their own configuration boxes that allow you to sort of say I want to add an image and I want this alt text and it needs a caption and you know I want to make it a link or however you want to do it and that becomes really helpful because you can turn that over to another content editor and user and say I want to be able to have control of my site after you've built it for me or after I've installed it I can use this kind of stuff to really get in the guts of it and then the last and most important piece here is that Drupal websites are by virtue of how they get built very complex so like you look at any sufficiently complex Drupal site and I assure you some of the contents being built by blocks, some by views, some by nodes, some done in a theme, some through custom modules you're never going to have a clean understanding as an end user of what comes from what and even if you turn on something like the contextual links or the contextual module where you can have little contextual links on each piece of content, if you hit edit that thing it can go to a block screen it can go to a view, it can go to a node edit page and this becomes really hard to change what you have later so I mean there's plenty of people in this room who obviously build Drupal sites no problem to change them you want to hand it over to someone a Drupal developer, you run into problems really fast and if you're trying to make a distribution for other people this is like an essential problem to solve because I need to say I want to give you a whatever website in the box I want you to turn it on and I want you to be able to make a new page on it and have it be the kind of rich content management content editing experience that people want from a CMS and so what we're doing in Panopoly which is sort of extremely important is that every single page on a Panopoly site you can turn it off if you want but by default you're getting this black bar at the bottom that gives you these options to customize the page or change the layout and just by customizing it you get into this kind of editing experience it's really helpful and this is really what I'm trying to sell I think first and foremost to y'all is that this kind of model of saying I want to edit a site click customize and have that ability to customize this is what people want in their distributions this is what people want in a lot of cases as end users of their site and this is what you can get by just using a base distro like like Panopoly so let's dive in and see how that works put it back to mirroring and um let's get going so I've turned on I've installed Panopoly just uh as a sort of base thing I haven't changed any of it from what you normally see so if you guys went on and like downloaded the tar ball or went on Pantheon and got this up and running this is what you would get the only thing I've done sort of I guess special is I turned on the Panopoly demo module which just provides some content so you can see images and pieces and stuff like that so the stuff that I think is sort of the super coolest here is this black bar like I mentioned so I can sort of show you some these interaction patterns so changing layout is super nice so I want to change layout of the front page you can see I've got this kind of layout up here it's great out to indicate that's what I have but if I wanted to flip the page I can just click on the other layout it'll go from this to that and hit save and then right there in my browser it'll actually go ahead and re-align the layout of that page this is nice because I've been able to change where the content lays out what CSS using to do the layout all without having to go into the code or do anything complicated for themers who people who change layouts and stuff that can actually get a little complicated if you're not using a tool like this but you know there's some white space here I might not want that and I can sort of play around until I get sort of the kind of layout experience that I really want so let's try that one and now we have something that approaches a little more reasonable and this is true on the home page obviously this and then that's powered by panels and page manager this is also true in any node or any user any taxonomy term you get that same ability to change the layout and that's super cool I think and our piece you get is the ability to actually customize what's on the page so when I hit customize I get this interface that got designed up and it's got the each individual sort of area on the site with a special like bit at the top so I can go ahead and hit this plus button and this gives me this add interface that I mentioned before so the add interface is cool because you actually have the ability to select between the various widgets on here what you want to add you also have the ability to pre-define things that you might want to add to the site and these are these can be views these can be custom content panes or whatever and this is where I think in the sort of distribution context you can get a lot of mileage so in this panoply demo module we've actually gone ahead and say let's define three different sort of widgets or blocks or panes that you might want to have on your site and you could think of this if you want to make a university distribution you might have courses or events or if you want to make a news site you might have recent news or featured news or whatever but these are these things that gives you a version of what this thing looks like and you can go ahead and say okay I want to show say a list of these items and then it'll actually give you this editing interface to actually change the different properties on this so this is all done through panels and the panel's IPE to get this interface but that these kinds of pieces here are actually options that are coming out of views so Earl Miles who wrote panels also wrote views like a lot of the logic is really similar and there are really good interactions and integration between the two so we can go ahead and change stuff that's like pretty easy to do in views on the front end actually is go ahead and get rid of the image if we wanted or we could get rid of the teaser text or we could add an image but we could not add an image but organize it in the table sort it with whatever properties and we can really sort of have that kind of customization experience as sort of an end user without having to go on to the back end to do any of these kinds of things and let's say we can go ahead and change this let's just have two and this is the kind of power that I think a lot of people when they come to Drupal are sort of expecting Drupal to do when they hit edit and have to go to the sort of airplane dashboard that is the views UI people get a little bit freaked out and they get confused having something that's a lot more sort of there and sort of visual is really helpful because I can sort of see in this preview what I'm getting before I get it so we'll go ahead and add that which is cool once we've added it we can obviously go customize it again but we also get the ability to actually stylize it so one of the things that panels sort of ships with is the ability to create these things that are called style plugins and they're sort of just basic theme functions that provide sort of common design patterns for each individual thing so you can do things as basic as add the CSS class to what you're talking about to things as complicated as adding JavaScript or other things so the neat piece here is I've taken in the penoply demo module we define a few of these things these are just Drupal.org style palette colors but you can actually go ahead and create backgrounds and different kinds of visual representations and by just simply doing this we can right there in the UI actually change the color and display of what these things look like and this is I think a huge benefit to people building distributions or creating their own themes because instead of just saying hey we're going to change how this looks go change CSS you can actually pre-define a bunch of options that like meets the particular style palette or style guide of the site and have a really first class experience with changing how that stuff works and that's something that I think can be really valuable to end users because if you give them a CSS in a visual editor they might get a little freaked out because they don't know what that is or they're not super pro with that save this page you also get the ability because you can sort of have a visual look of what things are that you can sort of see before you save you can hit cancel if you want so for example we can go ahead and drag stuff around maybe have it in different positions or in some cases remove it all together and have a sort of better site while doing it and that's I think to me like the kind of feature that people really like and really want to have in their content management system and you sort of get this in the case of Panopoli so as I said it's true for this page this is an actual node page there's a sort of default template for this kind of node type that like shows like this and all content you make will look like this but if you want to go customize it you can customize it on a per item basis and it will look different which is sort of cool so let's see y'all so that's sort of piece one you can edit existing stuff the other cool thing that you can do with Panopoli is that you actually can go ahead and add new stuff with a sort of cooler interface so I'll go ahead and hit add content when we add content we get sort of two options out of the box these are options that are going to be pretty familiar to folks in the Drupal 8 world where you have the ability to create a content page which is a node in Drupal speak or you can do a landing page which is something that's going to be a lot more sort of static and it's not necessarily kind of a thousand weeks on the site to show you content page this is the sort of editing interface I mentioned before and this is modeled very very closely off the WordPress editing screen we have the title as a sort of privileged item that's bigger we have the URL for the title that's coming out of Path Auto which is visible to the end users so they can sort of see what you are all editing we have the actual you know, WYSIWYG area where you can actually type sort of all the text you want as well as work with the media integration or the caption integration or whatever and this is all stuff that sort of gets set up and hooked in just by virtue of sort of turning it off you can upload new files you can pull them from your library of files you sort of get them all there which is cool you also get the ability to sort of depending on what kind of settings you want you can have an advanced menu or a more basic menu but you get all these cool WYSIWYG features and it all works sort of relatively securely you get that date pop up which I mentioned so you can have the ability to sort of set publishing deadlines for stuff just by virtue of having this little JavaScript pop up you can have this logic or config options on the right side of the page so you can actually decide, hey I want to put this in the menu and pick where without having to scroll down the bottom find the deflapsable field set get the right thing and then we have to save as draft functionality at the bottom then instead of making published like a checkbox on a longer list of options it becomes a very first class kind of operation so I can just hit publish if I want to save it as a draft state I hit save as draft we'll go ahead and publish it just because it's a demo but this is something that when you sort of do some user testing with different users they very much like the sort of quick button as being the kind of action that would show what they want so this is you know just a normal page similar to other ones and we can go ahead and customize that if we wanted but that's the second thing is these landing pages that are very cool so a landing page is something that we can see we'll put a URL about and add it to and what this is doing is this is actually using a sort of like page creation wizard inside C tools that says let's go ahead and make this thing put it in the menu and then give us this sort of like canvas like approach where if I hit customize I don't have one area to put in content and we can build up a quick page here for you sort of to show you what you want so we'll add a list of content we'll make it we'll get these content pages let's not do the images but let's not do the so we'll go ahead and add these items we now have some items on the page that will look super great so let's go ahead and add a sidebar to it go ahead and add a sidebar now if we customize we have the sidebar we can go ahead and add we'll go ahead and add an image because that's sort of neat so I had earlier I got picture of the opera house this way nope, you don't need to create content types or views there's a few, the content types we do have is a sort of page type that you can use and then there's some views that are done as very flexible views that you can sort of configure sort of at run time so these are actual fieldable panel pane entities they get established so we'll go ahead and also make this reusable which is a cool demo but okay we'll go ahead and add the picture and now we have the picture added to the sidebar which is really useful for an about page you might want to show off where you're from or what's going on go ahead and add this is a sort of cool module that is the simple GMAT module which was basically created just to basically just take a string of where you are and and turn it into an actual address so this is San Francisco and we now have a map that is changing the layout the other thing you'll notice pretty quickly is that the actual images themselves have some cool responsive logic to them so what happens is when you sort of move stuff around the images will resize to sort of fit their appropriate proportion and that becomes really useful because if you actually put this onto a mobile phone the layouts themselves will condense and then the images will condense and you get a pretty good responsive mobile site out of the box it's not like 100% you know you can sort of break it into your own content in certain ways but it's that great framework to get up and going with mobile quickly without having to like do a lot of work to get it there you're sort of tweaking an existing working site then sort of from scratch being like how do I do this and trying to figure it out which is pretty cool so we built this thing up other stuff we can add there's um just to sort of show you the list of options we can add links which is real useful you can add like a list of quick links to your site that's a pretty common thing you can add paid tabular data which is cool you can add an actual video you can add a spotlight rotator where you have different images that sort of cycle between you can add text which gives you a wizzy way or whatever the other piece which you'll see is that now there's this new category in here called reusable content so if I make something that I think needs to be like used on multiple pages I can actually just go ahead and check that box I did when I created that and actually go ahead and provide you that um sort of option on any page in your site so now that I have this opera house image I can reuse that across the rest of the site and that becomes super useful because you can sort of build up a library of these things as an end user that you can then let other people use or configure elsewhere but that you can sort of just control by virtue of like doing a few options and that becomes nice because you might want to use say a list of links or image other stuff that's sort of cool here so there's some cool admin interfaces that will ship with so you can control which layout to get you can control the different pages on the site you can look at the different configuration options where you can see sort of the different items that will fill up and this becomes helpful because as an admin or as a distribution author you can sort of build this stuff so the question is on revisioning so the opera house image is because it's an entity and because it exists in this world of there are revisions on those pieces of content the same thing is true when I actually customize the page and change pieces here that's actually because it's a panelizer entity that's also saved as revisions how does it get exposed to users is more of a back end admin deal but the framework is there because we're leveraging this sort of core Drupal concepts that already have that kind of stuff and so there's been some cool work done with like especially panelizer where people actually have sort of future revisions that are like you can set up a whole thing to schedule in the future and like all your whole front page will change or your whole whatever page will change but you can do a lot with this kind of interface and I think sort of in terms of the base distribution and the point of this talk is that like as someone who wants to build a distribution for others giving them these kinds of interaction and administration patterns are really helpful because it lets you break out of this sort of like you have to be a Drupal developer to do something and gives you the ability sort of just to be like a smart like thinking content editing person and being able to understand sort of what happens I had a great conversation, I did a version of this talk in San Diego a couple weeks now back and I actually talked to some folks who used basically for a lot of their sites as a consultancy and they actually like they were building stuff and every week they do demos of their clients and the stuff they build and sort of show hey we built you a new page or whatever and they were telling me about one meeting where they sort of did that and then at the end of the meeting the clients were interjecting like well can I show you what I built and like they basically went loose and like made like several of the pages that were needed to be made with this system and were able to sort of put in all their content and rearrange it the way they want and like that's really that really exciting to me and the kind of like thing that I think open source and sort of the Drupal system should be doing for people should be giving you if you have good ideas and good content capability just to go out and really sort of make something awesome happen with that and I think something like Panopoli is a good sort of direction for that so there's some other features in here that sort of I know can definitely show off people are interested in but the important thing for me is just you get a base that you can have some stuff so the question is say I want to make so do I have to get figured in views first or can it work so Panopoli ships with this spotlight functionality that looks a lot like what views slideshow will look like it's actually it's actually a custom a custom entity type using the jQuery cycle library it works very much the same so I don't have any images that are that are big enough to show you the full on but I can sort of show you what that interface would look like so if you add spotlight it's basically asking you to sort of say give me a title a link to where to go in an image and it'll actually go do that and no you wouldn't have to touch views for that kind of thing at all it just would happen within this it's also neat because once you save it you can go and customize it you can edit all the fields right there which is huge if you've ever configured a huge slideshow you've got to build like you've got to build a node type for it and then you've got to make the view for it and then you have to configure the settings for it and it's just a lot of Drupal yeah in this you cannot you cannot reuse it in this but any of the images that are saved say you say I added that image if I was to go ahead and say add a new piece of content because that image is stored as like a sort of first class Drupal file it's in the files table it has any kind of like what you want to do around that or version you want to do around that is there and I could go ahead though and add it use it as part of the WYSIWYG so the image is there that spotlight piece just has a manual upload but for most of the stuff that actually uses the Drupal file stuff you can actually further reuse it there and then having this kind of library which Media Module does becomes real help over site editors so they can sort of go and run with it let me show you that let me run through that and then I can show you we can talk more about some of the popular features I have a few slides here at the very end which are basically like so how do you build it how do you extend it, how do you do it so I've got a Drupal.org node page that sort of tries to explain hey I want to use Panopoli but I want to go and add my own module my own theme what does that look like so to sort of show you that off this is just real straightforward Zelda graphic some of the people who recognize that but to actually make a Drupal distribution you need three things more or less you need an info file which is just a standard list of what modules and dependencies you need you need a profile file which is some business logic for installing the Drupal site and then you need a make file which is just the sort of the recipe logic to put it all together and you can do a lot more than this but like at sort of the core you basically need to tell Drupal how they get installed so to sort of talk about this and how you would add your own so this is more or less what's in Panopoli I edited some stuff so it would look right on the slide but theoretically and conceptually it's the same so this is what Panopoli's info file looks like it basically says here's the name of the thing, here's the description of the thing and here's all the different core components that we're going to need so this is stuff that's coming from Panopoli in terms of its modules and you can there's like these are all pretty much optional like if you're not using search you don't have to have Panopoli search in your version but if you wanted to make a sub profile you wanted to use Panopoli as a base distribution you would sort of make your own like this where you're basically changing the name and description for your purposes leave in the Panopoli stuff and then at the bottom you can add your own sort of custom stuff so this is where you can add like say you want to use web form you just go ahead and add it to the end or you can go ahead and add a custom module you have and you just sort of add it right then and there, yeah so the question is this looks more like forking less like an inheritance so there there is an issue in the Drupal issue queue which you're probably mentioning that basically allows you to sort of do the very specific kind of like base override that you would use in theming and for Drupal distributions the problem is that issue it isn't yet in Drupal 7 and the blocker for that it needs to be in Drupal 8 but the way this works in Drupal 8 is a little different and so whether or not it actually ever gets into Drupal 7 is going to be sort of an open question so right now the way I've sort of structured it with the base distribution stuff is to say look let's just keep this real simple let's just require you to use these modules and then that'll be sort of how you would actually get going over the sense because you're still running all this code the same way you're just sort of having some ability to customize it if and when that patch ever gets in then what you can do is all you have to do is instead of having this part right here with all the dependencies you would just at the bottom at the top of the base and you would get that totally valid approach works the same for me it's just a question of I wanted it to run on a non-patch version of Drupal core versus saying you can use this but you must use the patch yeah so yeah so the how often is it updated yeah so the modules get updated a fair bit in terms of the different different projects that are bundled in and one of the cool things is that this is the makefile sort of like part two of the trinity you need to do to get these things up and running there's sort of business logic when you sort of build a version of Panopoly they'll actually pull in all the dependencies of an individual module so if you use Panopoly, WYSIWYG it'll go tell you to build a WYSIWYG module caption filter module, imagery size module and get those in there as versions get updated part of the sort of the maintenance of the base distribution is to go out and get the new version to implement it in and then push out a new version of Panopoly as a base distro and so there's a fair bit of testing and evaluation that goes into that and that part of the sort of the core folks who are working on Panopoly they'll go ahead and say let's okay we have a new version of this let's make sure it works right and so all you have to do is a sort of site developer if you're using Panopoly or a distro author is sort of pay attention to that but you sort of get that kind of updating and maintenance for free basically because you're building on top of something else like yes, yes you can update modules as normal if you want to go off into your own thing or when a new version of Panopoly comes out you can just ditch the old Panopoly profile directory drop the new one in and then you'll have to update once but there's no lock into it you can sort of just do as you want with inside Drupal and then with inside the make file you want to add more stuff you just add stuff there yeah, if you're updating so the process of updating Panopoly as a profile is instead of updating the entirety of Drupal core you can just update the individual directory it's slash profile slash Panopoly and then you would update all the contrib modules themes and libraries in the case where Drupal core itself is updated and needs to be updated then you would have to update that as well but you get a couple options on the Drupal.org page and what to download yeah, so definitely the easiest way to go for is just to have Panopoly when Panopoly updates you grab stuff that you want to have then you just grab the new version you're good to go and any distribution and Drupal.org makes this great because in the make file in your distribution Drupal.org will actually go off and build a whole downloadable file that contains Drupal core and all the modules you need as just one download and that's something that's a pretty straightforward way to keep yourself up to date wait for a new version of the distribution download it through distribution use it there are cases though where like you have say a security update comes out and you want to have your thing patched 20 minutes from now like nothing in the architecture here you want to have a new version or whatever it just makes it easier to do it that way and that's what this make file sort of helps to power the third piece of that trinity just for completeness sake is that there is a .profile file there's this bit of logic here that is sort of necessary to make the Panopoly stuff work it basically says turn on dependencies of dependencies in our install profile but that you can also put a lot of other business logic in so if you're making your own base distribution using pop is a base distribution and say you want to have a single single side on setup step you can just go ahead and add that in your profile and then you'll spin up your your product with all the Panopoly stuff plus extra stuff you have and those three things sort of get you a profile yeah oh yeah absolutely absolutely I mean I think and part of the cool logic here is that in terms of this piece this is also a patch that that's against Drupal core if it was to go in which would to make these dependency stuff manage that's something that since it probably won't go in there's a lot of complex around that all we're doing is offloading the actual business logic for how to do this into a separate file that's in the module so as long as you're installing Panopoly core and you're calling it all the updates that you're happy they're happening to that like business logic are happening in this Panopoly core profile in file so yeah you would run into problems if you change this but you're not in a connection where you have to like maintain any sort of diff between what probably doing what you're doing that there isn't a there isn't a connection that has to happen beyond this and even this is ultimately optional if you define all the modules that you want in your info file but the important thing is that you're not you don't have to work against an upstream you sort of just like run with the contrived modules that probably has and you're good to go I mean we wouldn't we wouldn't change probably that profile in any way that would last time that could potentially change but no I mean there's the whole point of base distribution is that we don't want to have situations where people do have to do get stuck on their own that they should use the modules and the different details here ought to make their distributions but then can sort of go on their own own merry way so there's a bunch of folks that are using it sort of right now the there's a couple Drupal products open Academy and open atrium they're both versions of their stuff with open Academy base open Academy is out now you can take a look at how this stuff works and HRN is being worked on for Drupal 7 should be ready by Drupal.com Portland and that'll be great because I love open atrium I think it's one of the best Drupal products and really addresses a large market of people having a Drupal as for that drag and draw stuff is very cool and then in the sort of university space UC Berkeley uses it for a lot of their sort of campus sites and the government of Canada uses it for a lot of their federal and they sort of take this base distribution approach and have plenty of their own requirements on top of it but really get you in a place where you can actually do for the cool cool cool extra stuff on your own so yeah I mean that's you can get it just in terms of checking it out so Drupal.org is available and there's a newer version out that was in the screenshot but you can read I got there's a bunch of documentation around what's going on and so you know you can get the code you'll have to install it but it's just the same kind of installation as Drupal normal although you might want to put a little more memory into it but you can read there's a bunch of the base distribution stuff on here to learn how to sort of do that and there's also the on a Pantheon where I work you can get the ability if you sign up for a Pantheon account which is free you can install get created a new site and you can obviously pick Drupal core as a new site you can also pick Panopoly and you'll spin up the whole version of what I showed you so you can play around with it which is which is pretty useful other than that definitely definitely interested in some questions and I can go back to sort of sort of my larger demo but I'm very curious sort of how people how they're seeing themselves using base distributions questions about some of the functionality and Panopoly or other stuff and we'll maybe start at the front and work back gotcha so in terms of the how it compares to Spark distribution more or less you know in it's set up to sort of make content editing better it's very much focused in terms of a lot of it's it's sort of pushed right now on getting sort of Drupal 8 in the right place so a lot of the Drupal 7 stuff was sort of proof of concept to show how Drupal 8 will work a lot of that's being cleaned up and pushed out as sort of formal releases Spark stuff so more interested in the sort of edit in place kind of functionality on a field level so it's not giving you this kind of like chrome to like sort of drag and drop like whole areas around it's not trying to standardize all the components together and it's very much geared towards more of a Drupal 8 kind of environment where this is working in Drupal 7 and the Drupal 8 version of this is going to try to keep more of this sort of like in place editing kind of experience this is where I feel the the key value of Panopoly is is integrating everything like this and that sort of is a difference in terms of difference with Node Stream is also a base distribution maintained by Wunderkraut the various other internal projects and a lot of other folks use it that is that's more of I think an in-house kind of intro distribution just because what it's set up in a somewhat complicated way and is less focused on sort of the end user kind of drag and drop and more as a good developer starting point which if you're getting into being a good Drupal developer you can get a lot of value out of Downlink Node Stream and working with it but it's not as much set up to hand off to the end user that what Panopoly is trying to do is be a base distro for products that you can hand off to someone who can configure independent of that code yeah yeah so so Panopoly plays well with Agar we have another people trying it out and we put some patches in so it will install with Drush and that's what Agar do yeah so question is using it with Organic Groups I've done a little bit OpenHRim is using it extensively with Organic Groups and there was a couple patches we pushed up to make sure that that worked with the panelizer context but I check out their development stuff to get a better view but as far as I know it was more or less smooth sailing once they got past a few initial quirks and yeah and it works just fine yeah absolutely I mean a lot of the philosophy with Panopoly is that we're not really changing a lot of what Drupal does we're just using the entity system and providing optionality if you can make a page in Drupal that doesn't use any of the stuff if you want it just gives you the option to use it because it's a little better for end users yeah yes yeah so question is of the layouts there's a lot let's lock it down yes there's a layout administration page and it gives you a list of all of them you can enable or disable them depending on what you want and that provides you with that kind of flexibility you can also there's also some patches in the panels queued actually allow you to do this on a per node basis if you want or with more fine-grained control but just for the interface we're trying to get you more sort of enable or disable for the whole site but yeah you can definitely lock that down other questions yeah yeah so questions on performance I would say that like Panopoly is not doing anything that drastically different than sort of Drupal plus a few bus modules that we have a lot of this sort of like magical code in Drupal is actually done with it's more of an admin thing so I mean sometimes there's a little delay from the admin screens but that's that may or may not be related in terms of the performance I think the biggest problem with performance that you're going to see with Panopoly site similar to how you see the panel site isn't anything about the code execution path it's more about how extendable it makes people allow them to build sites so it's so easy just to add a list of items and sort it by this and you can really make complex pages and that will create performance issues not because of the specific code but just because it lets you build a lot of stuff real easy but in terms of the performance stuff I've definitely done the profiling of it there's nothing that's happening here that's any different than the normal Drupal site with the modules it has and it can be pretty fast if you want it to be yeah so the question is on cropping images the only thing that's built in right now is there's this image resize filter where you can actually adjust above and you can adjust the size of an image and that'll resize but you don't have any ability to make judgments about what to show it's simply a size issue there are several solutions in Drupal 7 that will do things like that I've played around with them there's positives and minuses on both it's been in the issue queue for a while and people have been bouncing ideas but there's nothing that I think works sufficiently stably to have it be included but you can all these image fields or just image fields you add additional ways to work with that if you want it just doesn't have anything out of the box for it yeah so the question here is how do you create themes with this stuff the important design philosophy here is that this is responsive Barctic as a theme so it gets responsive stuff but all Panopoly is really concerned about is the content variable in your theme so you can pop in any arbitrary theme onto the site and it'll work you're just sort of only having the content stuff be controlled by Panopoly and the layouts themselves will only work in the content region so you can't change the header or any of those things with those layouts so by that virtue you can have that exist on its own and you can have alternate layouts for the rest of your site there are a couple cool integrations including the radix theme which is probably the best of this to take Twitter bootstrap and apply it to this stuff and then you can actually go change it and make that all work really well but theming is really straightforward there's a doc page on it but it's basically like do your normal Drupal theme just be aware that we're doing responsive stuff this way you're fine and it works just fine other question maybe two more yeah yeah so question is on running a CRM as far as I know no problem I mean there's nothing that we're doing architecturally that would prevent that you don't get any help along that way but it's not in any way blocked and likely yeah if views can get access to the content you can expose it in Panopoly and then you could probably I'd be curious to see if someone did do that but as far as I know that should be relatively as straightforward as getting set up in the first place maybe one more question yeah yes block module is not enabled by default you can turn it on blocks as a concept is more or less the word block is existing in Drupal 8 but a lot of what I'm showing you now and this is also part of the philosophy of Panopoly a lot of what Panopoly is trying to do is give you Drupal 8 but you can have Panopoly now that you can have the ability to create these smart blocks which Drupal 8 will have that look more like the plugin system Chaos Tools is using and less like block module that you can have the kind of responsive and drag and drop stuff the admin interfaces and the wizzy wig and you can get a lot of these pieces right now and a lot of the roadmap for Panopoly is saying okay here's what people need in D7 let's make that work awesome for distros in D7 then when Drupal 8 World lets go take the stuff that won't be in Drupal 8 make sure that keeps in Panopoly but let Drupal Core do as much of that work as possible so definitely things like blocks we're trying to get rid of the way blocks have worked up through Drupal 7 are very limited and don't really give you that kind of function you can see we can add an image give it a style and throw it on there so in general what we're trying to do with Panopoly is create a strong base distribution that a lot of people can use provide you a lot of features right now that are useful and make it super straightforward to extend for your own products and stuff so thank you all for listening check it out if anyone wants to use it or play around with it they'll be around with us at the conference and happy to chat around all things thank you