 Hi, how are you doing? So we're here to talk about provis and probably all thinking what is a provis. We'll get to that. So let's go introduce ourselves. Presenters. I'm Delita Bowman. I live in Virginia and I'm working with Cromat Source right now. I run the training program. We have a paid training program with anybody public and joint. And I also spend a majority of my time as a sales engineer so I'm estimating all the projects. I'm Steve Zipfel. I'm the Director of Technology at Cromat Source. I've been building which was in 2009 and we have motorcycles and I play guitar. And obviously I have no hobbies because I didn't put anything online. So Cromat Source is based in Chicago. We are a fully remote company based in Chicago. We specialize, if you want to specialize in anything, we do a lot of local government, counties, cities, some, I guess I'll take my mask off. And higher education, community colleges that come are, I guess, niche. So with that, as we'll see, we kind of leverage that and that's why we've developed Provis. It's because we have these kind of articles that we work with all the time. Agenda today, what we're going to do is just kind of tell you a little bit about what is Provis. We're going to install it to show you how quickly it installs and what comes with it. You know, how to create some landing pages. This is a layout builder blocks mashup, so with components on top of that for the styling. We'll talk about the upgrading path, what we're doing, you know, some theming and then what our roadmap is. As Steve will mention, Provis is an open source project. They have it listed on dribble.org as a project so it can be downloaded, you can use it. We're developing it so that it can be used by anybody who wants to start a quick site. So the next topic is what is Provis? So we get there, we get to that. So basically what Provis was was born out of, you know, agency work. We had so many RFPs, so many jobs and we're always creating the same content types, a lot of the same views, a lot of the same text lines, that kind of stuff. And so we thought, well, everyone wants out of that calendar. So we packaged it up in the distribution as a kickstart. And then we added in a bunch of web components, things like that, so that we could just kind of go in, go to the layout builder and start just kind of creating really robust pages. Yeah, basically, since you hear content types, we've kind of went back and looked at the ones, news, events, FAQs, things like that. People is one that we've come across, you know, the board of directors and the faculty, those lists are often, and we've tried to make them as un-opinionated as possible. So news really has a title, a body, and an image, you know, most of the time you need more than that, but that's a good starting point, so you're not pulling things back out after you've installed it. And kind of like that. The site components, we have some pre-designed web components, they're all based on bootstrap, some cards, carousel, things that are already themed and designed within the theme that comes with Provis. It allows you to kind of create a landing page and then start adding those, you know, large hero image and four-card sliders, carousels, and things like that. We have advanced calendar that's built on full calendar. We've actually provided some accessible fixes that were pushed back in, so it's more accessible out of the box now. It's a composer project, so it's going to be maintained. You just composer create a project and set it up. It comes with a theme that's based on bootstrap and distribution, so it's really easy to install, to maintain, if you've worked with your book, you've worked with Provis. So like Steve said, we did add some content types into the distribution into the package, because we identified that those were things that almost every site asked for. However, as we'll see when we do an installation of it a little bit later, we don't say you have to have a user, you don't have to have a person. You're able to select that at the beginning of your site, and if you don't want them, they're not installed. But if you want all of these different content types, they're already kind of pre-packaged. It's a very un-opinionated, we tried to keep it very simple, just to keep the minimal fields on the content types, but the ability to expand those to meet the exact needs of your project. We have features, it's not features as in the old features in D7 time, but the package and the events calendar is a feature because it has events that you can create that are displayed on the calendar or displayed in a list, a views list or something. Site alerts, we have a content type that's a site alert because a lot of our local government people and colleges, they need alert banners on their sites. So we package that up. Our provis theme is just the web components on top of each of those blocks to do the styling on them. So that's kind of our provis feature. It's a very minimal installation as far as what's included because we didn't want to, as Steve will talk about in a minute, this is provis 2. provis 1 is a little different. So yeah, it shifts with these components, like Steve said, the card style, the four-card grid, a grid of four cards or multiple cards. The hero image is a large one like for your homepage. You can also choose to be a shorter one for your interior pages. There's a couple of variations on cards. I mean, it's very typical type of components that you'll see everywhere. So yeah, wait, what about provis 1? So obviously we're here to talk about provis 2. provis 1, big red letters. We put this everywhere so I'll always support it. It was kind of born out of the same idea mixed with what we just built and it got packaged up and into something. And it worked really well, but it didn't age really well. So six months down the road it started to grow a lot of technical value. And we realized that it was something that you would download and spin up and it was tied to Travis, it was tied to Doxel. And you needed to use all those tools if you wanted to use provis. Yeah, it just became really difficult to maintain. And so we thought hard and learned some lessons. And what are those lessons? Make less assumptions. And to make it less complex out of the box, we wanted to make sure that when we were saying, I don't know if you can probably repeat all of them all again, it's not opinionated. It was a really good kickstarter for agency work talking about the local governments and healthcare high-end backings. We've seen repeated requirements. So let's start with the MVP on everything and then go from there. Yep, we switched to use a distro. It allowed us to maintain the code. It allowed us to make it installable. It allowed us to separate our features so that you didn't have to get this monolithic website installed and then start putting things out, which was the home of the college of provis one. And just make it easier to continue the community. I was supposed to say to contribute to the community. So, yeah, we'll get to installing provis. So, I mean, it's probably going to look really familiar. And I said this, we do have this line through a lot of work so you can download it and play with it, expand it, whatever you need to do. And, Steve, you need to go ahead and install it. There you go. And yeah, find bugs, tell us what's wrong. Yeah. File a ticket. So, yeah, let's just make everyone see something similar to that. And now we've got a composer package up packages. So, we maintain that, we push updates out. provis, from an update standpoint, it's not really supposed to be something that, you know, we're going to be pushing a lot of updates to the features just because of the nature of it. But, you know, the installer has some custom code. There's a little bit of custom code in the module too. If a security issue arises, you can push that out and make it more available. And then, we're going to use doxel for this particular demo just because doxel is what we standardize on the format. We do have some getting started docs that actually show installing provis and lambda. I mean, it'll work. I'm a D-Dead user and I never do a five dollar show. So, yeah, it works everywhere. Yeah, and that was one of the, with provis one was, you know, we were tied. It was, you had to do everything through doxel and we just didn't feel like that was a good choice if we were going to make it available to anyone to be able to use and list it. Not only for, you know, even internally, we have some people that would prefer to use some of these. Yeah, and then when the M1 app came out, there was a lot more issues with doxel running on this version of Docker desktop and what so. This allows, you know, anyone to use the tools like this in other words. And this is just, yeah, as we go through, one of the install items is like, like I think Demetri mentioned earlier, you can pick and choose what you want to install and go ahead and the modules. So if you decide here that you didn't want something, you can uninstall it. If you didn't install something that you didn't want, you can install it just the normal way. Yeah, that's the difference between, I think, doing it as a profile and doing it as we've done it with modules. We said, you know, profiles is a little bit harder to come back and change if you start over. If you decide you want a feature or you don't or a color feature. If you don't want one of the packages, one of the modules, you can just turn it off or try to load if you want. I'm going to put it too there in case I've already done that. And then, yeah, just, I think everyone's seen this before. You know, maybe too crazy. But it, we've set it up, actually I'll talk about how we've set up Composer a little bit. So we've set up Composer. We actually have a mean Composer file that's in a subfolder. We do it kind of like how Pantheon does it for their integrated Composer. We have a mean Composer file that you shouldn't touch. That's the stuff that's produced. And then there's one in your root where you want to start adding things you can add there. And it kind of keeps it nice and clean for updates and all that. It should only take a second because it is supposed to be in your minutes. There we go. And then it only takes a second. And then the longer part is actually installing. Installing your code. And we won't make you watch that. We'll show you what it's done. We'll talk a little bit later. Part of our roadmap down the road is to actually add more documentation to, you know, for using your own local development. I think we have, should we have someone do that now? Some documentation. Not for DDAF. We have, yeah, Lando and Doxel. And one of the other things we're going to be doing is just kind of making our refills for our CI public that ties into it. But again, you can use whatever you want. It is Drupal. It's kind of a nice part. Someone getting towed. We'll go back to the slides. All right, that's it. Sorry about that. There it is. That's good. So that was the install demo. Creating content. The installation is just standard Drupal, you know, setting up a Drupal site with the exception of being able to choose all the different features or packages, modules that you want to install. But once you install it, you do come up with a, you have a site that is pretty basic like they all are. But the information is there. Just see what we've logged in here. The demo is always great, aren't they? Yeah. You can be able to see it or not. This is a typical page, but it's not a good one. So this is pretty much it out of the box. A little bit of content has been created. You know if it wants 15 million or over a year. So there is a page with these blocks there. Yeah. So this is kind of a page that we put in here with just some examples of some of the blocks, like the hero image. I mean they're very typical things that you're going to see everywhere. Hero image followed by this one is just image on the right. Text kind of a card on the left. Switching back and forth. We have the accordion that's used a lot for FAQs that we see. File list where we've tied in with some views. Our buttons are in there. We have this feature of statistics because we found a lot of places like that particular feature, that component that we added. Different styles of cards. Circle image on the top. Button styles. And see if there's anything else in here. Block quotes. You know an events list instead of a calendar. This is something that we've included. And like I said some of the styling is kind of opinionated but all of that is easily changed in the theme. You can change some of the CSS to go with things to make them look a little different. This is another kind of upcoming events list. We have a tab feature where it flips between the horizontal tab to be able to think. So just kind of an example of some of the components that you can add in. This one has a background image. You can't see it here but just a background image with some text on top of it. I'm just going to look at a couple of these. If you look at the layout tab like you would normally do. It's pretty standard layout builder with sections with placing the blocks in there. Trying to figure the accordion. You're not going to be able to see this very well. Choosing the heading level. The alignment how you want it to show. There's very typical standard Drupal layout builder look. We have added on our side bar. I wish you could see this. The blue bar there on the right says create custom block. That's where all of our custom block components are listed. You can see there's an accordion. I'll try to read them off so you can see them. Accordion, a basic text block. A button, just a standard button that you can choose which style of button it's going to be. Your card, a CTA call to action, a divider line if you just want to put a line in between your content. A files list. The files list allows you to choose any of your files that are already in your system. PDFs or something because we see a lot of that. They want a list but they want to curate the list. They don't want to use lists that just pulls everything in. So we have that files list available. We have this thing called a group and that allows you to choose the display of a group of content. In this case we could do a carousel of it. A four card feature. Our four card feature is one large say blog post on the left with a stack of three additional blog posts on the right or content. A grid of two, grid of three, grid of four. These are just some easy things for content editors to be able to pull in. You can do the item display, you know, whether you want the image to be a circle, image to be on the left or right. And then you can choose which content type you're working with. So in this case I can choose blogs, events, the landing page, all the things, any of the content types that we've added to the system. The person, you know, how many we're going to do, we can make it, you know, choose the number that we're doing. Obviously if you're doing the four card feature of one blog post, you know, you're going to choose, there's going to be four. You're not going to have a lot of choice in there. You can do the visibility, you know, choosing, like I said, who can see it. You know, is everyone or is it restricted to a role? And you can add the blog. So it looks like we've just configured a lot of these with some options. And it's really one of those where you just go in and start playing with them and you can pull the things in. We do have a page that we show all of the different components. This one is, you know, we have a media image, just nothing but media, the banners. And that stat group one that I showed you a minute ago, where we can add the title and then we add a new custom block. I said it's one of our parts of our roadmap is to improve the UI here, to improve this look of the layout builder. Because we know it has some issues, you know, just making it more intuitive for the content editors. When you start adding all the complexity and saying, you know, add multiple blocks in to the display, it just gets a little bit messy. It's kind of like, you know, paragraphs, you know, they're all nested in there and people get confused on them. So we're trying to make this a little bit better. But anyway, just creating the custom blocks and add them and it adds it into the content. Anything else you wanted to show, Steve? I'm trying to show quickly just like creating, like people started writing pages for scratch or something. So what we'll do is just kind of start from scratch on the page. So we included a content type called landing page. You can obviously use the other on any page, but we found it spoke to our clients that they wanted to create a landing page. So we'll go there. So just for the layout, add a block here, custom block. Yeah, so I'm going to go find the large banner, which is basically our hero. No, we put that here off today. So I'm just going to use something that we already have. Interesting. Just try that again. See, I already fresh the page. And Docker. Dior or something. Of course, demo it as, yeah, what's going on there. Since we're here, I click that Save and install. See if it moves along, then I know it's not Docker. It's interesting. So this is always a possible, possible issue. And you're doing a lot of demo. But it's kind of strange. Yeah, actually never had this happen. No, we didn't. We should have done something similar today. And so the advantage of doing the way we've done it is we've kind of simplified it so that, you know, almost anybody can pick this up and do it except when it cracks out like that. You know, you don't have to have. The first Provis One was tied, and it's not a bad thing, but it was tied to Storybook and a lot of, you know, there was a lot of other technologies you had to include in order to be able to use it. And that just increased the complexity for the developers that were working on it. By doing it this way, we've done it now, and kind of taken some of that out and simplifying it. It just, you know, for agency work, it works very well because we can set up a site pretty quickly and get started. And then we can apply our custom theme to what we've already added. We have the basic components built, and almost any site is going to have some of those same components. They may look a little different. You may have rounded, you know, corners on your cards, you know, you may add a fancy element or something to your theme, but a lot of the hero images and hero image, it just depends on where you put your open language or text or whatever, and all of those things can be changed in the theme. All right, so Pantheon to the rescue. We have a site up on Pantheon that's working. It's even faster than the local, so... So yeah, so I've just added the banner at the top, which is where my local... So I believe I'm on my computer. So right now I'm going to do that kind of... We have cards with the text on the right and image on the left, and vice versa. And, you know, that'll show up one way. The other option we can find is that you can control it a little bit more by using sections and setting, you know, the column widths and stuff like that. And then just kind of, you know, add text, the basic texture. The cards are hard to place. The card component is really good if you're doing, you know, a lot of the used list of up-down quotes or something like that. If you're doing one-off landing pages where they want, you know, an image on the right and text on the left, it's almost easier to do it in a two-column layout and add the text on one or the other. Media on the other? Media on the other. Rather than using... I mean, you can use the card, but... Yeah. Then if they want to change the image out, it's a little easier to change the image, change the text. You're going to have to go into the card and do it. They can just do it strictly on the text. Yeah, it creates a little bit more... So this gives a bit more flexibility to do the same thing. It depends what you're looking for. The card might be perfect to make me use a bunch of spots or you might want to do something like this. So I just added those two. And just see what happened. And, you know, right out of the gate, we've got some things working here. Yeah. All right, so... Any questions about...? So on components, they have larger images. How do you guys handle the responsibility? The responsiveness? Do you use, like, the regular media content? Are you going to be skating on the breakpoints? On the pink or...? Yeah, so we're actually just... Because we're using... Oh, no, triple, sorry. Well, it's triple, but bootstrap. We're really kind of... just kind of leveraging... anything that comes with bootstrap. So the breakpoints and all that sort of stuff. Yeah, I was just gonna say... Yeah, I was just gonna say... Yeah, I was just gonna say... Yeah, I was just gonna say... Yeah, so on the... the dependency management on the... on the technicalist, you guys have the... also the dispersion on it? Yeah, so we can. So there's a question. Do you mean like, do we make it available, like, as updates come out? Or are we... Well, you have a really out of the box tool when you start. My question is, on that out of the box tool, using it back to... it depends on the... Does that comes with the update of bootstrap every time bootstrap gets updated? So it would... If there was some sort of security issue, we would update ours. How you handle it after. So you could either install it with Composer and then just kind of, you know, Composer update your particular package that you want and you can control it that way and, you know, bootstrap's in there. So you could co-actively do that kind of thing. Or we would probably... Anything like that, our goal down the road is to make anything with the security... Anything that we put out that a security update becomes available for will update ours. So right now it's provis2.0.4. So if there was a security issue for something that... that ships would provis, then we would update our... It could be just updating our Composer so that it pulls in the right one. That's not... And the difference is, you know, the distributions, you know, used to... used distributions in the past and you would have to wait until the distribution updated before or whatever and, you know, you were behind. The distribution... It's a... Basically, once you... It's a pick starter. So once you install it, then if you want to update core or if you want to update a module or whatever... But you were mentioning there was two Composer on the bottom. Yeah. So one of the ones was that we just kind of want to make sure that... You know, you can do whatever you want with it when you get it. But we wanted to make sure that, you know, certain... Certain packages were associated with it. So even just from our standpoint of maintaining it, when we start working on our own projects, we want to be able to go, okay, no, this is part of the Brodder score. So when we're maintaining, like our client work and things like that, we have a separation between the two. But yeah, there's no reason why you can't update it. We'll have to put some docs around it in the... in the sub folder, the upstream configuration folder. And then once you update it, it actually starts putting in, you know, like it does Composer things, right? So now you've got Composer.lock in there and you've got, you know, all of your rendered folder and things. You don't want them in there because it's actually just including that Composer from the root. So you always want to run it from the root. It's a bit of a funny thing, but it's slowly doable. And you could choose to update or we will update ours and then we would do Composer update and it would pull in even the latest the latest Provis and one of the other items. So it's not meant to, we're not going to be pushing out new features and things like that. Just because it's in the nature of it, it's config, so we don't want to force a config import and overwrite who you've changed. So it's really supposed to be a kickstarter, but like I said, anything that comes out security wise that, you know, falls under Provis at all, then we'll put or push something out. You would get new stuff, potentially new features, but they won't get installed unless you proactively go and install them because during the installer or, you know, install it then you would get new features if there's any new any new config that comes in because obviously we're going to keep updating it but we're not forcing those updates to happen on live sites for features. Does that make sense? Yeah, yeah. I know that you were saying that I'm wondering if you build this to work with Pantheon options? No, not, we one of the early things we did was made it work with Pantheon upstream and so I used to work with Pantheon and so I'm familiar with some of the separations and I like the idea so I just kind of use that architecture in our I think as well. It'll work there but it'll work anywhere. You just have to, as long as you can run Composer from the root it'll pull it in and do what it has to do. Any other questions? Sit down, it's always complete. Oh, actually no. You want me to complete that? Yes, I do. Oh, yeah, so the next one is just theming. I think Damia touched on this. You know, the thing we recommend is, again, actually this kind of speaks to what we're just talking about is to create a sub theme off of the probis bootstrap theme that's in there and just that being the reason for that is I don't think we have any custom code in or at the moment if at some point there's custom code in the theme that does anything and we introduce a security issue. We want to be able to roll that and push a patch to that without affecting anything that we're doing. So just, you know, typical best practices really. And the we can't read that at all. So on the side there's an image of our some of our, one of our models and we have, you know, inside our scss slash global there's a variables file and the variables we have everything outlined and commented for changing things like primary color, secondary color, you know, border radius, border colors. So you can actually go in leave the theme the way it is kind of start adjusting it just through the CSS we can start changing. You don't want any borders on something, you know, that kind of thing. So it's like high level changes but it allows you to kind of do it quickly. So we do have a bit of road map and we're talking about one of the things we want to do is more components and installable demo content. So as part of the install kind of like Pimani we want to be able to have it so that people can actually take it for a test drive and actually see content in it right out of the box. We want to add a photo gallery and we're putting together a bit of a migration toolkit some of that's you know, included you know, required modules some of it's docs and just kind of best practices around migration with Provis. More robust theme configuration tools. So the stuff we just talked about that's that you have to go change in SAS files. We want to make that part of the theme so that's a bit more configurable from the UI. We want to add some extra themes. We do have some demo sites that we're building that hopefully will allow us to create some different themes. So we have some choice out of the box and I did need to mention this but we have an initiative right now where we're trying to clean up that the admin portion of LeoBuilder. You know there's probably some JavaScripts and things to clean up. Some of those nested forms for buttons and things like that. So we can just make it a little more in terms of a better user experience and at some point triple recipe so, you know, how do we like that's coming so how do we work with that? Yeah, that may be Provis 3 I mean we kind of started down the road with Provis 1 pivoted to Provis 2's market creation and now that the recipes initiative is happening we may actually find some things in there that we'd rather do at play that recipes are going so who knows but right now it's a decent project and it's able to spin up a basic site you know site building could pretty much pull the site together within a couple of hours I recently did that for a really small site Provis in changed a few colors in the background and they were like, whoa you know, they have a website and it's not Wix not maybe not as easy for them but it works well for one all things but the main thing that we've done it for is to be able to crank out some sites a little bit quicker to give the kickstart so that we don't have to start from scratch every time the other thing that's really nice about it is that everyone on our team works with the same starting point so they know this is how we're doing calendar there's obviously times like any agency work that someone's going to come in and they're going to have just one requirement that blows it all out of the water but we find that more often this is actually a really good starting point first to start with I mean if anyone's interested in in a project where everyone's more than happy to put an issue on and dribble all the work and make a suggestion or a thought about how we can do something different and we're going to continue to have it as an open source project that we all predict anyone who wants to do that with it so this is a PR awesome so we got there's some links our Drupal project page on the Drupal project page the getting started docs there it's kind of just a one of the first docs we've got out there just kind of as you can tell I think we we put our non beta version up two weeks ago maybe but I think so it's still we've been using it for a while but we just got it on with 2.0 or 2.0.4 version up on Drupal.org not that long ago so we're just catching up with docs packages repo there and get hub repo and I think all of that is actually on our D.0 project page for pros oh yeah well should we do we have time for any questions? before we shut it off what's the part of the life of this project do you have intelligent new features at the same time what kind of effort do you just keep this running it's actually not too bad because a lot of times what happens is we'll spin up the site we have a new new client and we're spinning up with Prodys and because that is one of the things that we found with Prodys 1 is that software doesn't age well when it's not being used right we're using it often internally so when we spin it up we'll see oh we've got an update disk we're also supporting a lot of our clients we're using it so honestly one of the things on a recent project we showed the calendar kind of list the cards of calendar items that was actually something that a client wanted that look and feel of their events we were able to pull that out of their slide kind of pop it back into Prodys it wasn't something that we had initially in Prodys and so that's what we try to do is leverage as we're creating a site for clients anything that we can pull back into Prodys and that we think is useful that was kind of one of our main questions that I think is just going to keep growing and later there's more meetings there that you wanted to tell before the project yeah yeah so we're trying to keep it they're trying to keep it still pretty light and like unopened it so if we do add features they're going to be the ideas that we're going to make them as lightweight as possible so that you don't have to start tearing things up to make it work for you that was the case with Prodys 1 like on the person staff content type like the department opinionated I mean it had everything on there it had your email, your phone number your department name your reference field to taxonomy or department you know I mean goodness it had there must have been 20 fields on that person thing and it's like okay so now we don't need that on this we need to go in and strip out all these these fields from it so that's why we went this way with just adding a person basically as a name and a sort of bio or something I think there's a couple of fields on person like I think we have email phone or something just because it's kind of normal but like if they're not there they don't get but we don't have department or faculty a member of there's not a great deal of people like LRs and awards and just that yeah yeah exactly yeah we definitely keep it there are some things that we do encounter and because we're using provis we try to say okay well let's make this as what we would put in provis and then add it into the provis itself pull it into the client work and then elaborate on it and we feel like we've got most of the things we want but there are like we saw the roadmap there are a few other features and then the other thing we really want to kind of put out there is our CI recipe it's well you know it's it's with Travis so you know it's opinionated in the sense that we've set it up with Travis but we're going to have a repo that you can just pull in and set some values in the environment file or something like that and then we should be able to start using it however you want and we're trying to set it up so that you could like it'll work with other vendors just by changing your hosting environment but it's not ready for crime time and that's like Steve said I think one of the good things about using the client work to try not to make it too bloated is that we don't we try to do the minimum project minimum viable project for provis and then add one to that for client you know specific things for client work and not pull everything back into provis but being able to start and have everybody start from the same starting point because it's like they know what modules, they know what features are going to be in there with and then they can expand on it how do you guys communicate all the features to all people using that so what new features there is and no actually so I'm really at this point it'll be probably a media release on LinkedIn we'll probably update our d.do project page that kind of thing and now that we have an actual release it's probably going to be on whatever we want but any other questions? Of course not