 All right. Hello so we are going to start and I'm really happy to see all of you here and Today we are going to talk about scaling and sharing and probably if you what if you were at the three skin odd Trees mentioned the open wide distribution that was built by the afford the YMCA's so this talk is gonna be about how we were building actually this distribution and We are building it for federated organizations. So first of all, I would like to ask you to Evaluate our session because this is like really important to get feedback in case if you like it Just say I like it in case you dislike it. Just say that you dislike it Hi, so my name is Alex Shedrov I'm working at the FFW and then key I came here from far Ukraine I came here from the Ukrainian community that is so far from here and I'm working in the web development for nine years and I really dream about on music band So I really like music writing some songs lyrics and I hope that at some point I will have my own band who will do a great music. All right. It's gonna be tough for me to top So I'm Craig Paul knock. I'm the associate vice president of digital product and innovation at the YMCA of the Greater Twin Cities I've spent about 20 years doing web product development Project management etc and unlike wanting to be in a band I'm dreaming about snowboarding just about all the time. That is my passion and what I like to do and So today as Alex mentioned, we're gonna talk a little bit about open Y and federated distributions And what open Y really is is an open source platform for YMCA is by YMCA is built on Drupal So let's talk about what federated means and what federated models are So it's important to understand the YMCA is operating model. We have 874 independent associations in the United States 2700 locations servicing 20 million members what that means is each one of those associations has its own website It's own technology. You heard Dries talk a little bit about that during his keynote So 800 different associations with 900 different websites Then if you expand that globally, we operate in 130 countries 11,000 locations 58 million participants. So that federated model is huge and unwieldy And it's a big challenge for us to come up with a unifying digital platform That's going to work for all YMCA's and everybody's needs And so here's what that looks like globally now if you're in the United States We are frequently associated with being a gym or things of that nature But that's not what we do in every one of these countries in India for example We focus a lot on childhood development Education tutoring things of that nature. You may not even find a single YMCA gym in a location like that So whatever it is that we build needs to work for the needs of all of these different YMCA's So as I mentioned we're more than just a gym, but for a lot of you that's the only way that we're seen We develop youth. We inspire healthy living. We change our communities The YMCA is one of the largest nonprofits in the world. We have huge goals But really limited resources and we need to change public perception Our customers expect us to have great experiences for them online They don't necessarily care that we have limited budgets and that we're a nonprofit They want to be able to sign up for programs to be able to join a gym online, etc And we're not meeting those needs So we needed a national tool that could better communicate and deliver our mission digitally and globally So what is this open wide thing that we've been hearing about it's really three things first It's a philosophy just like the Drupal community. It's collaboration that drives innovation and impact Next it's the community the community of YMCA's and technology partners getting us to work together and work better together And finally it is that open-source platform for marketing e-commerce and digital products So for the YMCA is the benefit of open Y is it's an open platform built by us that we own we control and that we Have the ability to drive the destiny of we have low switching costs if we want to change or move things around And one of the things that's really exciting is the freedom to work independently with any agency or partner because it's all open source Any YMCA can grab the code and work with whomever they choose Finally one of the things that we're really excited about is we've been able to partner with a local charter school in the Twin Cities Called revacademy revacademy has helped us with programming some of the content for open wide sites So this brings us the opportunity to get youth involved with YMCA's and do youth development in ways that we've never been able to before Now for agencies the value and benefit of open Y is to reduce the cost of building the basics of a website and Those that cost savings can be passed on and Releveraged by focusing on things like marketing campaigns and things that will help YMCA's to grow their revenue and achieve their mission goals and objectives And finally for technology partners by us looking at things with open API's and open source We're able to do things in ways that we never were before We can take a schedule and now display that content on a treadmill with a digital screen We can create a chat bot etc all sorts of things that YMCA's were never able to do before We can now do thanks to open wide some of the expanded and enhanced API capabilities that we have with Drupal So at its core open wide is a customer experience platform It ties in elements and talks to different components like our personal training software Group fitness systems. We do AB testing our analytics platforms. All of that is connected with Drupal at the core Now the operating model for how open wide is created and built within this federated model is we get investments from national Y associations like the YUSA and larger YMCA's The YMCA the twin cities we oversee the strategy the product development and the repository owner of Open wide so we take that investment and then we work with agency and technology partners We don't have any developers on staff today in the twin cities So we work with wonderful agencies like FFW and people like Alex to build out the open wide experience Next it's really key to get the communication elements right for a big distribution like this So we have our website open YMCA org We meet twice annually at summits where we invite technology partners agency partners and YMCA associations We have a slack channel a monthly email newsletter We put out YouTube tutorials and we have the repository out on github and a page on Drupal org So there's a lot of politics when it comes to getting something like this Adopted across the organization because again, there's no governing body that tells these YMCA's that they have to use open wide So the first is making sure that we're sharing a clear vision of what open Why is what the benefits are and that we want it to serve all YMCA's? Next is the inclusion building alliances making sure that people have voices and that we have organic growth Finally the decision-making has to be very clear. We need to be on message There's no buy-in. There's no money that people have to spend to get on open wide and Then we need to make sure that we're action oriented and that we're taking a weave versus a me approach Our solutions need to work for all not just me in the twin cities. It has to work for all YMCA's And over the last 10 months, we've had some really great adoption 21 YMCA's are committed to the platform either using it today are already on the platform are working towards a site launch And another 25 YMCA's are evaluating and these numbers increase all the time So why did we pick Drupal? Why was that the path that we went down? When we looked at YMCA's what were they using for their architecture today? Most of them were on PHP based platforms a lot of them were already on Drupal Drupal 7 etc So it made sense for us to go down this path plus all of the wonderful things that Drupal offers out of the box And with that I'm gonna hand it back over to Alex Yep. Thank you. Great. So first of all, I would like to make a statement We truly believe that with open wide we make the world a better place And that's not a joke that you may potentially hear in the Silicon Valley TV series that's the truth that we truly believe in and the reason for that because Working with nonprofit organizations that care about healthy living that care about kids about all people about people with accessibility problems, so Eventually working with organizations that care about three main things about spirit about mind and about body So and frankly speaking, this is kind of the most inspiring and motivating project in my life that then working on so Cool statement, huh? Probably you may think what is this crazy guy gonna talk about so today? I'm going to kind of tell you a story how we get to the place where we are now So we've released the open wide version 1.0 Bruce mentioned that it's break through for the YMCA community So today I'm going to share with you how we get to the point where we are now So when we've started working on the distribution, we've realized that first of all We should really clarify our goals that we should eventually get we call that the mission of open wide and It's really like mission of open wide from the technical perspective So as Greg mentioned, we should do the customer into the center of all interactions on the website And with that with distribution, we were challenged to provide best customer experience that should be borrowed by data means that Stuff members customers of the YMCA they should get the easy access to all trainings All exercises or programs that YMCA's Like offer on their website and with that also stuff members that are working on the content that put some Promotion campaigns on the website. They should get a really great experience really great interface where they can do this So the next thing I think right now it's the most important one the collaboration Network because Craig mentioned that there were a lot of different websites Powered by Drupal, but there were no centralized place where everyone can contribute something So let's imagine we have 100 websites of Drupal for different YMCA's and they spend tons of money in order to build different features But they just do not share them and they spend money over and over again in order to create new websites And with that in case if we have the collaboration platform and centralized place where we will have all the features We actually reduce the costs that should be spent in order to build new websites because there will be great starting point For new business and for new websites that should be that should be developed Next one it was the most interesting part for the development team for the technical guys who was working on this On this project It's a height how to provide scalability and flexibility because there are a lot of different organizations They all have different requirements and with that in the distribution we should have like Scalable and flexible modules and components that should be just easily disabled or enabled and the last one it's kind of That one summarized everything that I've just outlined Because with all those points from the mission of open why we can just rapidly Bring the YMC business to the market in case if they have really outdated website on some legacy CMS So with all those points they can really bring their business to the market in a rapid way and really quickly So of course with the mission we've learned a lot of things about About we've learned a lot of things about YMCA. So first of all we've learned the history Because this is important to be on the same page with Teams from the YMCA because they have their own philosophy. They have on approaches They have on work flow that we should follow in order to deliver really great product to the YMCA Also, we've learned a lot about digital products and about their technologies that they are using like they are using a lot of different vendors and Third-party services that we should create integration with and of course learned a lot about brands and guidelines in order to follow Their standards that are shared across all the parts man send organizations so We've realized that we have a lot of different websites on Drupal We have a lot of different features on those websites. Why we should develop everything from scratch We can just take those features adjust the couple and incorporate in top. Why so here is listed a few Organizations that are committed and contributed into the initial version of open why but there are a lot a Lot of different pipe sees that are contributing right now. It's not listed on this slide So basically from the fragmentation of different features We were challenged to assemble the open why and basically release distribution with all those features and If we take a look at the flexibility that we should support we have Different types of organizations. So the first one the small YMCA They may have only one single single building with a gym or with a pool They have only a few stop staff members And they do not have that much time in order to maintain content on the website in order to set up new Website on Drupal and do something really difficult with the website So the next one the medium YMCA they may have a few branches Maybe they can support and provide summer camps and free group exercises But they are not that big as a large for MCA for the large for MCA They need a lot of different integrations with the third party services They need a lot of different features analytics trekings Personalization and that crazy stuff that is really interesting for the developers and technical team So frankly speaking if we reflect the same on the costs and Budget that they have as well. They have like budgets according to their size medium I'm see have limited amount of money in order to set up new websites, but with the platform and with the collaboration philosophy Small way MCA will get an access to features that large way MCA can afford So before in order to as example to create Personal training booking forum the website small way MCA should pay a lot of money But with the open wide since it will be there. They can just take it and use it out of the box So we were thinking about architecture of the open one because all those YMCA is they have different Requirements, they have different needs and we should solve all those needs and satisfy Everyone who is using open wide distribution and with that we treat the architecture of the distribution as a nice So we have something that is not visible at all to the end customers But it will support and it will move forward our distribution in a long-term run So with that we actually started with that in mind. We started working on the distribution So first of all, I would like to show you a demo how the open wide look like right now so in order to Have an understanding what I'm talking about from the side Like what do we have out of the box how you can use it and you may see from here That we a little bit ahead of Drupal because trees trees mentioned that they have initiative of having the demo content in the Distribution they have initiative in order to have some basic seam That will be a little bit better than Bartek right now So we have that in the distribution as example We have just demo programs and categories for the YMCA. We have functionality of alerts on the page We have some elements and components like banner list of blog posts some static content with a grid columns Also, we can open the location finder page This is just the landing page where we can take a look at the map all Available branches and as example in case if you found the favorite branch We can take a look at the branch working hours read some information about that branch take a look at the blog posts that are associated with branch and Then we have a lot more features out of the box So here you can you can see just some landing page with the steady content that could be about page or just looking for volunteers or something like that and we have the Blog section where we can find different blocks. We can filter them by location by category by text filter and Example open the blog post page itself in order to read through the content on the website So that's the only small amount of features But that will give you an understanding what we are building and what we have right now so We've started with development and realized that we have the challenge number one that says how to provide scalability and Flexibility so we've gathered all our team leads and tech leads in order to figure out how actually we are going to provide the flexibility and scalability and Eventually at the end of this meeting Everyone in the group said alright challenge accepted We will work on that and for sure we will be successful at this at the end So and with that we came up with the component based approach So you may be familiar with that approach because in Drupal 8 we are following this We are using Drupal modules that are like independent from the system and just have a list of dependencies So we are using the same approach and if you take a look at the basic basic page that we see On all websites that we are seeing in the internet. So we have some general elements we have header we have footer and Content editors treat the area between header and footer as the customizable area. So they they want to Play with layouts. They want to place different components in different regions of the layout So they should have the full control On this customizable area So let's take a look at the basic landing page that we provide out of the box in the open wide So we have a few components the component number one and just banner with call to action button The second component just dynamic list of blog posts that are added on the website and promoted to the home page Then we have a few more components that are Static so we have Static content titles labels and different columns if you take a look from the perspective Which of those components are dynamic and which are static? So the first one is static We just go to Drupal admin interface with a plot image. We Specify some text there and here we go So the next one is dynamic one whenever we add the new blog post to the website It appears here. So there is no static reference to all the blog post that should be visible here and Next two blocks. They are static as well and with component based architecture content editors, they are able to play with the page and Place dynamic blocks in between static blocks and it's great and powerful feature for content editors And they are happy with that because they can build pages They can build pages in really easy way and they can all pages that they can just imagine So when for that approach, we are using paragraphs We are really we really love paragraphs in case if you're still not familiar with that module You should definitely go to that link and figure out how it works and how you can use it and adopt your projects so I mentioned that we treat every block on the page as a component and In our opinion every component should consist of So the first one the model model. This is the place where we store data This is the storage of our data that could be content types, media types, text on any terms Whenever you whatever you're using on your website. So the next one is a controller this is something that gets the data from storage and That's something with that the third one the view View this is the like layer that we have in theme That's just usual pattern MVC pattern in from programming. So we are using it in order to build components and View in Drupal a the tough one because there is no easy way how to move view layer from theme Into components. So there is no way how to place template in component And on easy way, I mean there is no way to do that without custom code So you should write a few functions or methods in order to provide Template from from your model as example for not or for some specific field and this is in progress This is something that we are working right now So the next thing that should be out of the box and component. This is the grayscale design And the grayscale design it means that components should provide Some basic and default styles for the component So in case if we enable it even on Bartik in Drupal at in Drupal 7 or in Drupal 8 So it will have good looking just with a black and white design So with that we can just create new themes and out of the box everything will look will looks good We just should write a few css Alliance in order to make it even better than it's out of the box in the component and of course tests right now we have tests that are Stored in general in general for the whole distribution, but at some point we will get tests in the components So question question to you guys. Do you know the common problem of most Drupal distributions? Any ideas? Any other ideas? So, yeah, those are good ones, but But the the common problem of most Drupal distribution It's difficult to disable modules and components that they are Provide are out of the box. So I think you've experienced That use case when you install new fancy distribution You you realize that you need only small part of this distribution And you are trying to disable some specific modules and components from this distribution And you just decide that All right, I will just create new website from scratch. I will not use that distribution at all So in my experience, this is the most the most common problem of Almost all Drupal distributions that we've ever used So and with that now decoupled is our favorite word Because we would decoupled in every task that we create for the developers and they understand that when they create new module New component something new for the project They treat it as something separate that should be isolated from the system So and with that we have minimum dependencies and other components So it works the same as with Drupal modules. You create module you specify a few dependencies and other modules and here we go You just have dependencies You do not place your I don't know content type in the just garbage of all configurations file Files you just put into some specific place where you always know How to get it from there and Based on this based on component architecture Our project from the cut perspective looks really good because it looks like we've just cleaned it up like this guy on the slide So we always know where to find some specific component where to find some specific module where we should place As example alter and we always know how to disable specific components because as I mentioned there are small mca's that needs only A small piece of the distribution and everything else should be disabled And turn it off So if we take a look at the open wide architecture from the business perspective First of all, we have two basic layers in the distribution. We have the data structure We have a lot of core features and we have the presentation layer that is visible on the website for the potential customers and potential members Also, we have a lot of CRM Sorry a lot of third-party services that we should create integration with We have web applications social applications mobile applications and even equipment at the branches That we should interact with when members of the ymc with their branches And of course on top of this we have analytics and tracking in order to track all activities that's Happening in the open wide on the third-party services and even At the branches with equipment So and in order to support that we create the integration layer in order to interact with third-party services And we export data through the data layer from the distribution to analytics and tracking And we are using web services in order to provide support for third-party services and the API and interact eventually with the fitness equipment And mobile applications So if we take a look at the components that we have inside open wide inside base layers We have the data structure. We have the setup of content types Media types the tsunami terms and vocabularies So for the core features, we have a lot more features that you may see on the slide There is just not enough space to plate them So at the temple, we have locations finder web forms personalization alerts and a lot more things And on the presentation layer right now we have only one theme that called open wide walls But at some point we will have a lot more features. Sorry a lot more themes And there is also always way to create your custom theme So for the third-party services, we create integration with theorems Like a to net personify with digital asset management systems with marketing system like sales force marketing cloud With a the testing system the nation etc a lot more server body services also We have the analytics on top of this. So in order to track all I give it is in all places So if we get back to our YMCA types We and if we reflect the complexity for every YMCA So it's pretty obvious that for small YMCA We have the small complexity in the distribution because they need only a few content types they need only a few basic features and They will use some basic theme from the distribution for medium For the medium YMCA's they have also medium complexity So they need a few more content types and few more features maybe integration with free exercises and that's it And the complexity of large YMCA is pretty high. So they just need everything They just need everything integration with every single server service all content types whole media features and and so on and we We are happy to say that Parts of the distribution they are decoupled enough. So they are not related to Y specifics at all You can just take them and use as example on my projects. I'm using like on my own projects I'm using media feature. I'm using landing page wizard. I'm using analytics and tracking. So I've just Just took them from the distribution and eventually I would get I will get updates for free from the community. So that's that's cool And After when we've created like enough Flexible this flexible architecture for the open wide So we realized that the next challenge is integration with server services So it's always painful process for the development team In order to create integration with server party services And Unpainful. I mean, it's always fun. It's really fun Yeah, so when we've created a few basic rules how to create integration with server party services, so We just ask a question. Is it a background job that should Do something in the background? If the answer is yes, we just create new service. That could be droop elite service That could be trash command that could be ground job But we just create something that will be triggered at some point by some system So next question should it be displayed to the customers? So in case if it should be displayed to the customers, we create new component and place it on the page So here is Our great example with landing page again. So we have A few blocks out of the box, but at some point we realized we have the boring component with a list of blog posts that should be replaced with Free group exercise classes and schedule. We just easily replace that block on the home page So we've created component. We've created module. We've set up the content structure for that with next released We've just released that component and then content editors are able to place it on the page And then at some point again, we realized that we would like to replace that boring block with the list of products for personal trainings and Also instead of banner, we would like to place the personal training schedule for so we just created three new components And set to content editors. Here we go. Now they are available in the content editing workflow So you can put them and place them on your pages So after that, we've realized that we have the next challenge next challenge easy installation process for non-technical and technical users So here is the technical installation So it it looked like this you just run the bus script You have some progress bar and eventually you will see that Your open wide installation has been finished. You can go and complete your installation through some wizard Of course, I'm kidding. That's that's not the actual installation of the open wide But in ideal world at some point we will have it right like this So you just run bash script And you will get the website So right now we have Pretty similar bar script that but you will see there are a lot of weird lines out of log output, but In ideal world again, this should look like this even for technical guys. They they really like cats, I guess So Also Also, we are working on the non-technical installation. We are working on this in order to provide and like make the customers Make the interface for customers so they can set up even non-technical departments can set up new website Just by using some some wizard as example, we will have the domain You can specify the platform. For example, you have your own server and digital ocean Or you would like to set up amazon server server or you have just custom server And when you submit eventually so from the technical installation and non-technical installation You would you will get to the place where you should complete default wizard for the Drupal installation So you will go through default steps And also you will go through custom steps in order to select demo content that you would like to see on the website You you can select components that should be enabled by default and Eventually you will get new website Then the next step you can customize that website. We have the Theme by default openvar rows and we have feature that you can Select predefined presets for that theme Or just customize everything on the website in order to have your branded colors on the website And then you can like complete dns changes go through some security checks Go live checklist and announce your launch in twitter facebook in your friends different departments and say here we go We've just launched a new website And the magic part of that Then you will get new features from the community and magic word here for free I haven't put that into the slide but magic word for free because it works the same in the same way as Drupal community so Someone can contribute as an example that could be ymc or just the individual contributor And eventually with the new release you will get new component or new feature on your website so With that we've realized that all right. We have new website We have a lot of different new websites and we should support somehow upgrade path for that so And of course different ymcs small ymcs. They can use just what we provide out of the box Medium ymcs. They can customize something and the large ymcs they build a lot of different customizations on top of the distribution So let's just imagine situation when in open y 1.0 we provide that fancy listing of blog posts with a lot more button And then at some point on the live site, for example developers or business owners they've decided to Change a lot more button to full pager. So that was the requirement for their specific website But with the new release in open y 1.1 We just change the label for this button and we have a conflict here because This specific component this specific configuration Has been changed manually by the site owner and we are not able to provide upgrade for this one So we've created a tool that we call open y upgrade dashboard where we Display all places where we have conflicts. For example, we have the configuration name Then we have specific property within this configuration where we have the conflict and then we have Path to the configuration to original configuration that we have an open y and we have list of actions So you can edit that message, but potentially you will never do that Or you can take a look at the difference between Your actual configuration and between configuration and open y And you can delete that message when you delete this message. You are just saying all right I've just resolved this manually or I agree to reject the update from the new version of open y So you can decide in case if you should result that conflict manually Or you can just remove that message from the dashboard by looking at the at the diff as example for that use case we are fine We are we are good to go with the full pager because we do not need like that change for the label And with that we've got to the point of course, we are using continuous integration in order to test everything and We realized so that's actually me when I realized how many builds we should support For the continuous integration workflow So let me explain So the first build that we should have from the continuous integration that the fresh installation of open y That just installation Out of the box from the installation profile so the next one We've seen the slide where we went through the installation process of two plates And of course we've had Custom steps there and we should have an environment in order to go through the steps and verify that everything Works fine there and the next one the great path So this is the actual environment Where we test updates from previous version to the new version So we have three places. We should have three environments in order to just verify that developer Successfully completed his job and of course Additional environment for the be had tests for cut sniffers and for a composer build that we are working right now in order to Verify that our distribution will work good on all different php versions or on all different environments And we eventually we can like we can build the Website using composer. So here is just an example of response from our ci server. We have First link leads to the fresh open wine installation where we see everything out of the box The next one the link to upgrade path installation Where we can test our updates and then link to the installation steps and the wizard that we Can use in order to verify installation steps. And of course the report from be had tests. So here is the Green report for the be had test. But in case if you see something in the red You should go and do your work again and again and again Here we have the green light here. So and you know with all those challenges We think that we've successfully like released open wide 0.1 And that's the breakthrough for the ymc business and why I will explain a little bit better but first of all we We will take a look at the open wide today what we have right now based on those challenges that we were struggling with the first of all we have The source code and jubile.org Which is actually the mirror of github repository that we are working on Right now. So all the code pull requests issues. They are on github And the main website of the open wide distribution open ymc.org Also, we have a few materials of the first one the case study on jubile.org in case if you're interested to Actually read the story. Why are we actually doing that and why are we actually creating the community? Why we have the contributors for that and the blog post from drees and his blog About ymc about ymc movement and breakthrough for their business And in case if you would like to evaluate open wide right now So you can do that on your laptops mobile devices tablets. We have the sandbox environment We have the public admin password and Username so you can go there play with it even ruin the website. Anyway, we will rebuild it in one hour So and based on that I would like to make an announcement so Now with the open wide 1.0 Every ymc can get new secure and powerful website In less than 15 minutes. So there is a link to youtube video that actually video from craig where he Explains how to set up a new website with the default content with a lot of different pages with membership calculator with location finder in less than 15 minutes and that the breakthrough for the ymc business because now Small ymc a's have an access to tool that will allow them to set up their new websites and get the features that they Cannot afford before that moment So and our next focus is building the community and like involve contributors because As you know without the community Product will not survive and on the community I mean not only the community of ymc's who is going to contribute to the project, but also without support from the Drupal community so You won't wonder how you can contribute. So that's pretty easy process and straightforward First of all, you can create a fork of main Project on the github then you can find some interesting issue or just contribute Documentation or something to the project then create new pull requests write steps for you and ask containers to Actually review review your pull request Maybe merge pull requests. So eventually you will get some commits on Drupal.org so Also, there are A lot of other ways how you can contribute to the project you can work on the documentation Design user testing translation content Just be as a volunteer. So there are a lot of other different ways how you can contribute and The benefits for that, of course, everyone is looking for benefits. First of all, you can vote to open y expert You can learn the distribution. You can learn approaches that i'm talking That i was talking about you can learn the workflow approach Uh, I don't know continuous integration upgrade path to and eventually If you will contribute, you will get the Drupal or credits And commits on the Drupal.org and the next one you can keep the momentum And based on this get new clients to your organization because in case if you an open y expert Or your organization Has been contributed to the open y some specific feature You can just go to ymc and say hey I'm an expert in the integration with active net and I would like to build new website based on open y Because we have that feature accepted in there. So we are We are like happy to help with that so and Eventually at the end of the presentation, I would like to say thank you to the whole team So we have a lot of different folks who is not here and I just represent the whole team that we may see on the slide Thank you very much for all your work for all your effort And who knows maybe here right now we have the new contributors and new team members who will contribute to the project So as I mentioned our next focus is building the community. So based on this, I would like to invite you to Friday sprints we will have first time sprint or workshop and general sprint and we will have we will have the open y sprint track at the general sprint on friday, so Please evaluate our session. This is really important to get some feedback. There is just quick link You can open it and leave some comments Thank you very much that the time for the questions This looks really really fabulous. I've built something similar for the aclu and I like some of the things that you guys are doing here some So it seems that the the distribution focuses mainly on like the content modeling and and content for specific to the ymca and then the the integrations with the third party services When you were when you're thinking about, you know, how to approach this problem, did you consider at all Maybe building on top of another distribution that might handle some of the kind of like lower level. Yeah, so When we started building the distribution So the question was let me just repeat the question question was if we were looking at the other distributions When we started building the open y so there were a chance to build open y on top of some distribution, right? So we were looking at the lightning at the open social and the next Another one the thunder, right? So thunder distribution but we didn't want to have dependencies on something That is out of our control because we may have some crazy ideas that will not work with those distributions and It was easier to create everything from scratch because we've had a lot of different websites on Drupal And we've had a lot of different features on them. So we were just working with those contributors with those open y's we were taking features from there And we were adding them to the fresh Drupal 8 installation and then on top of this We just put our custom theme. So that's everything what we've done And yeah, so we we were looking at some distributions, but we are not using them We are building ever since from scratch and then kind of similarly to that Did you consider like The stuff that isn't specific to the y pulling that into a separate distribution of your own that's more generic and then just having a second distribution on top that's more y specific So that's a good idea, but I think actually maybe we will get some point to the place Maybe in wizard we will have just to select Which features you would like to see we will have the groups as example those are for small ymcs for big ymcs for medium ymcs and maybe In case if you will install the distribution You will find something for your known profit organization Even though you are not ymca, but right now our focus is just distribution for ymcs So correct me if i'm wrong. Yeah, no, I think that's great I want to go back to the first point when we started building this It was right after Drupal 8 had been released and so there weren't a ton of distributions as well And we wanted to be on 8 for future growth and so that was part of what went with that as well um regarding would we ever get to a point where We we decouple the ymca specific parts and have a version that you could say I'm just a non-profit Or anybody in in the world and I want to use this distribution, but I'm not a ymca That is very much the long-term plan of this. We'd like to see that happen We would love it if more people use the distribution provide us with feedback so we can make it better for everybody that's Being mission driven is part of the whole movement of open wide making this Something that can help everybody out I've got more questions, but I think I'll let someone else go first. Yeah, I like how you approach The upgrade dashboard and I see it beneficial for like different distributions. Do you have any plans of making it generic for other distributions Yeah, so actually this is the component again. That's the component of our system. This is just custom module that is used That is using I guess one country module. So it's really Easy way to make it that the country module and contribute to triple that work But I think we just need a little bit more time in order to do that finally and maybe Some volunteers who can do that and help with that About the tools you're using for continuous integration that Slide you showed where it listed the different sort of development environments for commit or whatever it is Is that all custom? Yeah, so the question if we are using any tools for the continuous integration support though We are at the f of w we've we've built the c a box continuous integration open source project and this continuous integration was built on top of the c a box There are a lot of customization because Building you usual Drupal website. It's much easier than building something from the installation profile where you do not have the Drupal core you do not have Example docker containers or something like background. So we've built that on top of c a box so if if you think about what's involved in having a website you can break it down into kind of three different pieces like making like building building the website bringing your legacy content in and then ongoing support it and maintenance for that site for that third piece Like even for like a smaller why like there's someone's got to be there to like upgrade to open why 1.1 or or whatever Is is there some You know because it it looks like they're all hosted On many different places. Is there some sort of system that's kind of built in or on top of this that's kind of Makes that whole process easier or Consistent across the whole organization. Yeah so Yeah, the question is if we like provide any tools in order to Support different instances of the website and there are a lot of different small mca's So I just have to like Repeat the question for the recording So in the long-term run Under the hood of that wizard that you've seen for the non-technical installation I guess we may have some kind of platform where we'll support the small mca's that Do not have it department in order to work on some Infrastructure for the website. So that could be like beneficial for small and maybe medium mca's to have that too So there could be a dedicated team who will support those websites who will support the upgrade path Who will support all those conflicts that we may see in the upgrade path dashboard, but that's only kind of idea that Maybe at some point we will get to that and work on that where we will have like That one that will be the main priority Great. Yeah, let's jump in on that as well. You hit on the last mile, right? I'm a small ymca. Great. I want to use open y What do I do next right? I can't I can't afford a hundred thousand dollar web host. What am I going to do? um So what we've been talking to or what we've been doing is talking with some of the larger ymca's and looking at Pooling our resources to build such a platform potentially in partnership with ffw or another agency Maybe aquia or pantheon There's a there are a couple of organizations that already service nonprofits In that regard providing 24 7 support ongoing updates, etc But there has to be something that is very cost effective for those small ymca's We believe that there are a few out there. We've connected some ymca's with partners that can do that In the interim Because these ymca's are all independently hosting their sites today by making the distribution freely available to them We've removed that barrier for adoption of saying look you can use it As is on your current web server or your lamp server, etc Or if you can wait a little bit of time We think that there might be some better options or other options that are more scalable and could keep everybody a little bit Under the same house to make that upgrade path even easier And and what about that that middle section that the mic migrating my legacy content in is is there something built in that More than more than just what's in triple eight cores Yeah, so the question is the migration of content, right? So there's a couple different paths one is as I mentioned earlier We're working with that charter school in Minneapolis that's providing opportunities to 15 to 19 year old students They get a school credit, etc We're working with them to build some of our demo content They also offer the ability to copy and migrate content over to open y sites Um, most of the smaller ymca's will have anywhere from only 50 to 100 pages What we are starting to focus on with the 1.1 distribution is making it very easy to just copy and paste I'd like to see in the 1.2 and beyond Effectively a machine learning based wizard where I can say here's my current site Here's the new ip address Copy over my content get me 80 to 90 percent of the way there Where all I have to do is go through a massage a few things. That's the long-term path that we'd like to see happen Thanks a lot. Thank you I had a question on governance. I know you mentioned collaboration But I guess how do you determine what gets filled? You have a small organization as an ass They think it's really going to help them you have organizations the larger ones that have larger ass How do you prioritize that? Through something more specific than just collaboration. Yeah, absolutely. That's so it's a great question How do we handle prioritization of our roadmap the features we go after etc? So we look at a variety of different things we look at What's the demand for the feature not just the size of the ymca, but how many people could this serve right? regard you may be a large ymca, but maybe This feature only helps your small your market out, but isn't going to help the the broader majority So we look at that as part of our decision-making process We look at what's the cost to build that new feature We look at how many ymca has made that feature benefits not just the people they serve But there's four major crm platforms that the 800 ymca is the united states partner with the largest by far is daxco We in the twin cities we use personify So it's I have to look at what I want to go after personify integration and say you know what Maybe some of those elements have to wait a little bit because 90 of the ymca's are on daxco And then the final element is just the overall level of effort. How hard is it to build this thing? Is it really really easy? Is it hard? We calculate all that we got a big spreadsheet with our entire backlog and we use that to determine What should we be going after and then we review it on monthly calls with the ymca's that are participating in open wide that 45 and growing list and say look Here's what we're building. Here's what we're doing over the next few weeks next few months How do we feel about this and for the most part? It's worked quite well knock on the podium. It seems to be working quite well in that regard I anticipate at some point we will hit some conflicts where people will say, you know, I want this No, I want that And again, we in my opinion data. Hopefully will trump emotions in some of those situations So it's a group of 45 then it's basically who's making these decisions based off the input that you all are putting Yeah, so a few months ago. We had a open wide summit in houston It was open to agencies technology providers and at the time there's about 20 to 30 ymca's If you come to those summits, that's where a lot of these big decisions get made and we do two a year So for today, there's 45 ymca's over time. That's going to grow Hundreds and hundreds we hope And yes, we we want that feedback. We need that feedback loop So we can continue to make the right decisions of what we're prioritizing and going after Yeah, you're welcome. Thank you I'm really curious about what you guys are doing for and you might have touched on this feature, but are you Providing any features dealing with commerce? I mean you've got memberships. You've got people making purchases right at the counter Is this a third party integration or you guys actually Have this tool as a feature in the distribution So the question is do we have the ability to integrate with commerce? That is exactly why we chose drupal when we were looking at what platform to go down wordpress or drupal Was the ability to do e-commerce long term Right now with 1.0. No, right. It's just effectively a marketing website long term It has to do e-commerce and that's exactly what we want to go after as I mentioned There's those four crm platforms that we need to integrate with independently because that's the Effectively the point of sale terminal at these ymca's so like like I said, we use personify in the twin cities A lot of them are using daxco So first we have to build those hooks those api integrations in need to make sure that everything we're doing is pc i compliant And then start whittling away at e-commerce that absolutely is the is the long term vision of this Awesome, that's everybody's questions. Thank you again everybody for the time