WEBVTT 00:00:19.852 --> 00:00:21.092 Welcome to Community & Code, 00:00:21.532 --> 00:00:23.913 the podcast where we talk to the humans 00:00:24.014 --> 00:00:25.094 behind the commits. 00:00:25.434 --> 00:00:27.236 I'm here today with Mike Herschel, 00:00:27.477 --> 00:00:30.157 who is a co-founder of something called 00:00:30.298 --> 00:00:32.859 DripYard and a longtime member and 00:00:33.140 --> 00:00:34.521 developer in the Drupal community. 00:00:34.561 --> 00:00:35.321 Welcome to the show, Mike. 00:00:35.341 --> 00:00:37.542 Hey, thanks for having me. 00:00:37.582 --> 00:00:41.164 So I think we can start by asking, 00:00:41.745 --> 00:00:44.265 what is a DripYard? 00:00:44.426 --> 00:00:45.067 That's a good question. 00:00:45.771 --> 00:00:47.751 Oh, there's a whole bunch of background. 00:00:48.832 --> 00:00:51.654 So like the TLDR of Dripyard is we 00:00:51.713 --> 00:00:54.216 sell premium Drupal themes that don't 00:00:54.256 --> 00:00:54.515 suck. 00:00:57.758 --> 00:00:59.338 So Drupal in the past, 00:00:59.878 --> 00:01:02.159 like it really never had a robust theme 00:01:02.179 --> 00:01:04.582 ecosystem like WordPress or Webflow or any 00:01:04.601 --> 00:01:05.682 of the other competitors have. 00:01:06.383 --> 00:01:08.423 And part of that reason is just because... 00:01:09.737 --> 00:01:11.679 Within, within, within Drupal, 00:01:11.779 --> 00:01:14.401 the theme is so separated from like the 00:01:14.441 --> 00:01:16.121 rest of the system, 00:01:16.222 --> 00:01:17.682 it would never have any idea what the 00:01:17.703 --> 00:01:18.283 markup is. 00:01:18.904 --> 00:01:21.465 So like a Drupal developer would go in 00:01:21.505 --> 00:01:22.986 and create, you know, their views, 00:01:23.046 --> 00:01:24.507 which are kind of like smart lists, 00:01:24.546 --> 00:01:25.608 like the loop type stuff. 00:01:26.340 --> 00:01:26.680 And, 00:01:27.521 --> 00:01:29.222 but the theme could never predict what, 00:01:29.263 --> 00:01:29.563 you know, 00:01:29.582 --> 00:01:30.983 what the DOM structure was and what the 00:01:31.004 --> 00:01:32.084 CSS classes is. 00:01:32.125 --> 00:01:33.546 So, so it could never, 00:01:33.887 --> 00:01:35.207 you can never theme against that. 00:01:35.688 --> 00:01:36.849 And that recently all changed. 00:01:36.909 --> 00:01:39.891 Drupal now has a concept of components. 00:01:39.932 --> 00:01:41.813 We have like a thing called single 00:01:41.834 --> 00:01:44.096 directory components where you have a 00:01:44.135 --> 00:01:45.456 theme can ship a whole library of 00:01:45.477 --> 00:01:47.118 components as you know, the markup, 00:01:47.599 --> 00:01:49.700 the scheme of what type of data has 00:01:49.740 --> 00:01:51.522 and, you know, JavaScript and CSS. 00:01:52.186 --> 00:01:56.688 So our company is now shipping themes that 00:01:58.790 --> 00:01:59.990 have a whole library of components. 00:02:00.010 --> 00:02:02.251 You can wire your data directly in there 00:02:02.292 --> 00:02:03.472 through the UI or through code. 00:02:04.593 --> 00:02:07.355 But yeah, that's basically the gist of it. 00:02:08.805 --> 00:02:11.906 So I'm a WordPress dude, 00:02:12.066 --> 00:02:13.727 and I think a lot of this is 00:02:13.748 --> 00:02:15.750 going to be, we do this in WordPress, 00:02:16.129 --> 00:02:17.570 and how does this work in Drupal? 00:02:17.611 --> 00:02:21.112 And it's funny because I was at Badcamp 00:02:21.554 --> 00:02:22.134 last month. 00:02:22.153 --> 00:02:23.635 It was my first Badcamp, 00:02:23.655 --> 00:02:24.715 which is Bay Area Drupal camp. 00:02:25.396 --> 00:02:26.896 And I was doing that thing. 00:02:26.956 --> 00:02:29.098 I was being that person, the voice of, 00:02:29.179 --> 00:02:31.659 why does WordPress do this for the Drupal 00:02:31.680 --> 00:02:32.181 folks there? 00:02:33.282 --> 00:02:37.623 So I will definitely empathize putting you 00:02:37.663 --> 00:02:38.405 in this position, 00:02:38.525 --> 00:02:40.445 having just been in that position from the 00:02:40.485 --> 00:02:40.986 other side. 00:02:42.548 --> 00:02:45.049 But so talk a little bit more about, 00:02:45.169 --> 00:02:45.509 like, 00:02:46.973 --> 00:02:49.056 You mentioned that there's specifically 00:02:49.135 --> 00:02:52.060 technical limitations of the way that 00:02:52.159 --> 00:02:54.322 themes sort of existed in Drupal in the 00:02:54.382 --> 00:02:57.246 past that sort of prevented the existence 00:02:57.406 --> 00:02:58.407 or, I guess, 00:02:58.526 --> 00:02:59.949 feasibility of something like a 00:03:00.008 --> 00:03:00.569 marketplace. 00:03:01.090 --> 00:03:01.210 Yeah. 00:03:02.091 --> 00:03:03.891 Can I guess from, from, 00:03:04.391 --> 00:03:06.152 from a dev perspective, 00:03:06.193 --> 00:03:08.234 somebody like I have a history of like 00:03:08.354 --> 00:03:10.435 building WordPress themes and actually had 00:03:10.455 --> 00:03:12.395 a site for a while where I was 00:03:12.475 --> 00:03:15.116 attempting to sell WordPress themes. 00:03:15.556 --> 00:03:18.377 Why, what, what is the sticking point? 00:03:18.418 --> 00:03:19.998 What are the sticking points that 00:03:20.299 --> 00:03:22.819 prevented that from being really, uh, 00:03:22.840 --> 00:03:25.461 doable in, in Drupal from like, like, 00:03:26.100 --> 00:03:28.382 like, uh, in the weeds kind of, uh, 00:03:29.143 --> 00:03:29.622 direction. 00:03:30.418 --> 00:03:31.878 yeah yeah so if you want to get 00:03:31.919 --> 00:03:35.542 down into the weeds um like drupal of 00:03:35.581 --> 00:03:37.743 course has been around for a very long 00:03:37.804 --> 00:03:40.705 time and like so within drupal you go 00:03:40.746 --> 00:03:43.927 into your admin form or your admin side 00:03:44.187 --> 00:03:45.429 and you create what's called content types 00:03:45.449 --> 00:03:46.911 which are the same thing as post types 00:03:47.010 --> 00:03:49.271 you know and and they're all fieldable 00:03:49.292 --> 00:03:50.052 they're all kind of 00:03:51.054 --> 00:03:54.435 And then we have another like a module 00:03:54.474 --> 00:03:56.814 that's integrated into Drupal called 00:03:56.835 --> 00:03:57.254 views. 00:03:57.275 --> 00:03:59.575 And you create like basic, like a, 00:03:59.635 --> 00:04:00.895 like a listing of items. 00:04:00.915 --> 00:04:02.496 You can create filters and smarts. 00:04:02.836 --> 00:04:03.695 It's really powerful. 00:04:03.735 --> 00:04:04.656 You can do a heck of a lot 00:04:04.675 --> 00:04:05.336 of stuff with that. 00:04:06.097 --> 00:04:07.736 But as you do that, 00:04:08.616 --> 00:04:10.217 as you create these content types, 00:04:11.078 --> 00:04:12.518 as you create these fields within the 00:04:12.557 --> 00:04:15.098 content types, as you create these views, 00:04:15.318 --> 00:04:16.838 Drupal will add markup, you know, 00:04:16.859 --> 00:04:18.658 it'll add like a thing, like it'll, 00:04:19.508 --> 00:04:20.169 like with Drupal, 00:04:20.449 --> 00:04:21.909 a piece of content is called the node. 00:04:22.409 --> 00:04:25.031 And so it'll add like a C a 00:04:25.131 --> 00:04:27.450 default CSS class on there called like no 00:04:27.512 --> 00:04:30.012 dash dash, you know, episode or something. 00:04:30.032 --> 00:04:31.733 If you're doing a podcast website, 00:04:33.013 --> 00:04:36.113 but when you're trying to sell a theme, 00:04:36.754 --> 00:04:37.014 you know, 00:04:37.033 --> 00:04:38.394 you're trying to sell a theme that can 00:04:38.454 --> 00:04:40.475 work with a whole bunch of things. 00:04:41.375 --> 00:04:43.295 And the theme doesn't have this 00:04:43.355 --> 00:04:43.815 functionality. 00:04:43.836 --> 00:04:44.437 Themes cannot, 00:04:44.497 --> 00:04:45.877 cannot contain content types. 00:04:45.937 --> 00:04:47.117 They can't contain views. 00:04:48.218 --> 00:04:48.497 So, 00:04:50.052 --> 00:04:51.091 you can ship a theme, 00:04:51.112 --> 00:04:53.372 but you don't know that that CSS class 00:04:53.392 --> 00:04:55.213 is going to be no dash dash episode. 00:04:56.233 --> 00:04:59.014 And you also don't know, you know, 00:04:59.235 --> 00:05:01.214 what the HTML structure is underneath, 00:05:01.295 --> 00:05:01.636 you know? 00:05:02.615 --> 00:05:04.516 And, and, and so that made things, 00:05:04.935 --> 00:05:07.396 that made things pretty, pretty, pretty, 00:05:08.357 --> 00:05:08.658 you know, 00:05:08.737 --> 00:05:10.978 almost impossible for a robust theme 00:05:10.997 --> 00:05:11.517 ecosystem. 00:05:11.598 --> 00:05:13.238 And there's companies out there that do 00:05:13.278 --> 00:05:14.119 sell Drupal themes. 00:05:14.139 --> 00:05:16.360 You'll see my theme forest and stuff like 00:05:16.399 --> 00:05:16.600 that. 00:05:17.634 --> 00:05:20.315 um these the the themes that are sold 00:05:20.896 --> 00:05:23.495 like they kind of get around that by 00:05:23.656 --> 00:05:26.197 by shipping a custom module with themes 00:05:26.237 --> 00:05:27.836 and so the custom module might install 00:05:27.877 --> 00:05:30.336 some content types you know might have 00:05:30.377 --> 00:05:32.658 some views and stuff like that but as 00:05:32.697 --> 00:05:35.978 soon as you go away from where that 00:05:36.017 --> 00:05:39.218 custom or where that custom module points 00:05:39.259 --> 00:05:41.738 you to everything falls apart because the 00:05:41.759 --> 00:05:44.740 theme can't handle that right and uh 00:05:45.632 --> 00:05:46.814 So that's the difference, you know? 00:05:47.173 --> 00:05:51.795 And yeah, yeah, that's basically it. 00:05:51.935 --> 00:05:53.255 Yeah, so like fundamentally, 00:05:53.295 --> 00:05:55.836 I guess sort of quasi-equivalent, 00:05:55.877 --> 00:05:57.096 although I think you could still probably 00:05:57.156 --> 00:05:58.858 build a theme that was open enough in 00:05:58.898 --> 00:06:00.819 WordPress to support this too. 00:06:00.858 --> 00:06:04.100 But like the idea of like I'm doing, 00:06:05.120 --> 00:06:07.540 like we were talking before we hit record, 00:06:07.600 --> 00:06:11.283 is like this website has a custom post 00:06:11.322 --> 00:06:12.442 type called episodes. 00:06:13.002 --> 00:06:14.043 And if... 00:06:14.783 --> 00:06:16.665 like WordPress didn't understand and 00:06:16.685 --> 00:06:19.125 didn't like already like have some like 00:06:19.225 --> 00:06:21.867 base classes and whatever that just the 00:06:21.908 --> 00:06:24.168 themes expect to use or you know that 00:06:24.189 --> 00:06:27.750 are general enough then the idea is that 00:06:27.810 --> 00:06:30.192 because the theme doesn't necessarily know 00:06:30.211 --> 00:06:31.812 about the existence of the episode post 00:06:31.853 --> 00:06:34.553 type it would and because Drupal 00:06:34.935 --> 00:06:37.396 specifically is kind of architected from 00:06:37.435 --> 00:06:40.237 the perspective of like we're letting you 00:06:40.276 --> 00:06:40.918 tell us 00:06:41.778 --> 00:06:43.538 what types of content you're using on your 00:06:43.598 --> 00:06:45.721 site, uh, then it's like, 00:06:45.781 --> 00:06:46.841 the theme is like, well, like, 00:06:48.701 --> 00:06:49.603 I don't know what you're doing. 00:06:49.882 --> 00:06:50.684 Uh, 00:06:50.723 --> 00:06:52.625 so it can't really fill in those gaps 00:06:52.685 --> 00:06:54.966 as, as easily as what I'm hearing. 00:06:55.045 --> 00:06:55.747 Yeah, exactly. 00:06:56.127 --> 00:06:56.827 So, you know, 00:06:56.848 --> 00:06:58.367 and the thing can maybe do like some 00:06:58.408 --> 00:07:00.470 default styling, you know, you know, 00:07:00.490 --> 00:07:02.350 put some spacing around stuff, but, 00:07:03.000 --> 00:07:04.560 You know, and, and like me, like, 00:07:04.660 --> 00:07:05.920 like I, 00:07:05.940 --> 00:07:07.600 the default theme in Drupal is called 00:07:07.661 --> 00:07:08.161 Olivero. 00:07:08.180 --> 00:07:09.040 Like when you installed it, 00:07:09.060 --> 00:07:10.060 when you installed Drupal, 00:07:10.081 --> 00:07:10.661 that's what you get. 00:07:11.161 --> 00:07:12.982 And I was the primary dev on that. 00:07:13.242 --> 00:07:16.682 And so we had to basically try to 00:07:16.721 --> 00:07:18.583 accommodate everything without the ability 00:07:18.802 --> 00:07:19.762 to accommodate everything. 00:07:19.783 --> 00:07:19.963 Sure. 00:07:20.523 --> 00:07:22.023 You know, but, 00:07:22.483 --> 00:07:24.223 but with the introduction of components, 00:07:24.264 --> 00:07:25.663 you know, so, so, 00:07:25.944 --> 00:07:28.644 so now like as a theme developer, 00:07:28.723 --> 00:07:30.245 I can, I can ship a library, 00:07:30.264 --> 00:07:31.045 you know, a fifty, 00:07:31.125 --> 00:07:32.285 sixty components or more. 00:07:33.197 --> 00:07:34.759 and let's say i want to create an 00:07:34.778 --> 00:07:37.161 episode you know content type or post type 00:07:37.180 --> 00:07:39.201 or whatever at that point you know i 00:07:39.242 --> 00:07:41.064 can i can kind of drag in you 00:07:41.103 --> 00:07:44.786 know the a title component you know map 00:07:44.807 --> 00:07:47.528 that to the you know my title field 00:07:47.588 --> 00:07:48.870 i can drag in you know same thing 00:07:48.889 --> 00:07:51.271 with a body field or you know a 00:07:51.312 --> 00:07:54.654 video field and you know potentially you 00:07:54.675 --> 00:07:56.857 know mp three like an audio player and 00:07:56.896 --> 00:07:57.798 stuff like that right 00:07:59.490 --> 00:08:02.274 And so now it comes a lot more 00:08:02.293 --> 00:08:03.375 flexible, which is pretty neat. 00:08:04.629 --> 00:08:08.391 And I have been watching what's been going 00:08:08.511 --> 00:08:09.971 on in Drupal land. 00:08:11.012 --> 00:08:12.512 This is sort of a, 00:08:13.692 --> 00:08:16.053 one might suggest a fortuitous time for 00:08:16.074 --> 00:08:18.274 the existence or emergence of a theme 00:08:18.295 --> 00:08:19.095 development shop, 00:08:19.915 --> 00:08:22.276 given that Dries Boitart, 00:08:22.315 --> 00:08:23.375 the founder of Drupal, 00:08:23.396 --> 00:08:26.177 has been talking a lot about marketplaces 00:08:26.976 --> 00:08:29.598 and selling Drupal stuff. 00:08:30.038 --> 00:08:31.959 Talk about that relationship. 00:08:32.860 --> 00:08:35.742 and what your thoughts are about sort of 00:08:35.841 --> 00:08:37.742 a commercial ecosystem for Drupal. 00:08:38.644 --> 00:08:39.004 Yeah. 00:08:39.163 --> 00:08:41.725 So like for the longest time, 00:08:42.065 --> 00:08:42.966 when I say for the longest time, 00:08:43.005 --> 00:08:44.548 maybe like for the past ten years, 00:08:45.028 --> 00:08:46.988 Drupal really concentrated on like the 00:08:47.009 --> 00:08:47.550 enterprise. 00:08:47.610 --> 00:08:48.951 You know, we were like, all right, 00:08:48.990 --> 00:08:51.272 let's just put our time and effort into 00:08:51.351 --> 00:08:52.653 tracking down these Fortune five hundred 00:08:52.673 --> 00:08:54.374 companies and try to get these million 00:08:54.394 --> 00:08:55.335 dollar contracts. 00:08:55.514 --> 00:08:55.835 And, you know, 00:08:55.855 --> 00:08:59.898 that would work for the larger companies. 00:09:00.118 --> 00:09:01.219 But at the same time, 00:09:02.022 --> 00:09:05.322 the unintended consequence of that is that 00:09:05.363 --> 00:09:07.183 Drupal's market share started to decline. 00:09:07.484 --> 00:09:10.245 And when the market share declines, 00:09:11.085 --> 00:09:12.745 that means that there are less Drupal 00:09:12.765 --> 00:09:13.245 developers. 00:09:13.265 --> 00:09:15.006 There are less people, you know, 00:09:15.147 --> 00:09:16.647 in that mid-market kind of learning 00:09:16.706 --> 00:09:18.288 Drupal, knowing what Drupal is. 00:09:19.087 --> 00:09:21.609 And that has hurt Drupal, you know? 00:09:22.328 --> 00:09:24.809 And so eventually the, you know, 00:09:24.830 --> 00:09:25.529 the powers that be, 00:09:25.549 --> 00:09:27.091 the leadership within Drupal said like, 00:09:27.171 --> 00:09:28.671 all right, well, 00:09:28.691 --> 00:09:30.371 we need to recapture this mid-market. 00:09:31.057 --> 00:09:35.620 And so they put together this huge 00:09:35.640 --> 00:09:37.241 strategy, and this is up on Dries'. 00:09:39.562 --> 00:09:41.344 He has a blog somewhere called Starshot 00:09:41.384 --> 00:09:42.365 Product Strategy. 00:09:42.804 --> 00:09:44.905 Starshot was the code name for Drupal CMS 00:09:44.966 --> 00:09:46.187 before it was called Drupal CMS. 00:09:47.226 --> 00:09:51.590 And so basically the goal is for Drupal 00:09:51.610 --> 00:09:57.273 to become feasible of being a CMS chosen 00:09:57.373 --> 00:09:58.254 for a website 00:09:58.988 --> 00:09:59.288 you know, 00:09:59.327 --> 00:10:01.428 that has like maybe a budget of like 00:10:01.469 --> 00:10:03.309 ten to thirty thousand dollars or 00:10:03.330 --> 00:10:05.149 something like that, which right now, 00:10:05.730 --> 00:10:06.910 unless you're a Drupal developer, 00:10:06.931 --> 00:10:08.191 you probably don't want to do that 00:10:08.211 --> 00:10:09.032 because, you know, 00:10:09.692 --> 00:10:10.812 Drupal can be a little expensive. 00:10:11.832 --> 00:10:15.453 So as part of that, they decided, 00:10:15.474 --> 00:10:15.994 all right, well, 00:10:16.014 --> 00:10:19.014 we're going to create this kind of like, 00:10:20.316 --> 00:10:21.495 I call it like an easy button for 00:10:21.535 --> 00:10:24.177 Drupal, you know, called Drupal CMS. 00:10:24.216 --> 00:10:26.097 And it has like all the modules that 00:10:26.118 --> 00:10:27.258 you have to download pre-configure. 00:10:27.996 --> 00:10:28.177 You know, 00:10:28.197 --> 00:10:29.818 because there's like some modules that 00:10:29.839 --> 00:10:31.461 should totally be part of Drupal core 00:10:31.480 --> 00:10:34.144 things like, you know, like the, uh, 00:10:34.163 --> 00:10:35.565 friendly paths, you know? 00:10:35.605 --> 00:10:37.006 So if you create a piece of content, 00:10:37.027 --> 00:10:38.607 it's not node slash one, it's like, 00:10:38.648 --> 00:10:39.009 you know, 00:10:39.428 --> 00:10:42.633 whatever it automatically gets that node 00:10:42.673 --> 00:10:43.793 title in there and stuff for SEO. 00:10:43.874 --> 00:10:44.134 Um, 00:10:45.434 --> 00:10:47.037 so it has all this stuff pre-configured 00:10:47.057 --> 00:10:47.738 and it's pretty nice. 00:10:48.764 --> 00:10:50.586 but there's still a couple of missing 00:10:50.625 --> 00:10:51.386 pieces in there. 00:10:52.187 --> 00:10:53.769 One of the missing pieces is like a 00:10:53.808 --> 00:10:54.769 decent page builder. 00:10:54.990 --> 00:10:57.312 Like Drupal has this whole ecosystem of 00:10:57.331 --> 00:10:58.753 page builders because no one has 00:10:59.332 --> 00:11:00.894 specifically like taken over. 00:11:01.514 --> 00:11:01.995 And honestly, 00:11:02.034 --> 00:11:03.495 this is something that's like kind of hurt 00:11:03.537 --> 00:11:03.917 Drupal. 00:11:03.956 --> 00:11:04.197 You know, 00:11:04.277 --> 00:11:05.738 you can kind of do anything in Drupal, 00:11:05.758 --> 00:11:07.019 but it shouldn't be this much effort. 00:11:07.139 --> 00:11:08.519 You know, WordPress has Gutenberg, 00:11:08.559 --> 00:11:10.581 Webflow has whatever the hell Webflow has, 00:11:10.861 --> 00:11:11.582 et cetera, you know? 00:11:12.482 --> 00:11:14.125 And so, so there's a, 00:11:14.903 --> 00:11:15.842 they're Acquia, 00:11:15.863 --> 00:11:17.644 which is kind of like the largest Drupal 00:11:17.663 --> 00:11:17.943 company. 00:11:17.984 --> 00:11:19.284 And the one that Drew's founded, uh, 00:11:19.904 --> 00:11:21.466 is creating a next generation page builder 00:11:21.485 --> 00:11:24.167 called Drupal canvas and Drupal canvas 00:11:24.226 --> 00:11:26.207 does everything that you should pretty 00:11:26.248 --> 00:11:27.268 much, you know, 00:11:27.327 --> 00:11:29.528 you would assume it would do, you know, 00:11:30.009 --> 00:11:31.990 and, and does a few extra things too, 00:11:32.009 --> 00:11:32.610 which is pretty cool. 00:11:32.649 --> 00:11:34.311 So you can like copy and paste components, 00:11:34.350 --> 00:11:35.091 group components, 00:11:35.130 --> 00:11:36.772 create what's called like patterns, 00:11:37.272 --> 00:11:39.732 you know, edit them, you know, 00:11:40.013 --> 00:11:41.594 you can map your data to it. 00:11:42.134 --> 00:11:43.195 It's, it's pretty cool. 00:11:43.754 --> 00:11:43.934 Um, 00:11:44.471 --> 00:11:49.113 And then, um, so, so, uh, 00:11:49.153 --> 00:11:51.333 so at that point we have, you know, 00:11:51.394 --> 00:11:52.754 once Drupal canvas comes out, 00:11:52.774 --> 00:11:54.134 which will probably be next month. 00:11:54.254 --> 00:11:55.514 And then, you know, 00:11:55.534 --> 00:11:57.816 we have then Drupal CMS two dot O 00:11:57.836 --> 00:11:58.697 will be released. 00:11:59.417 --> 00:12:01.697 So at that point we have like a 00:12:01.778 --> 00:12:03.057 pretty good starting point, 00:12:03.798 --> 00:12:05.418 but we still need to like, 00:12:05.458 --> 00:12:07.419 kind of put everything together to compete 00:12:07.480 --> 00:12:09.860 with WordPress, to compete with Webflow, 00:12:09.880 --> 00:12:12.562 Wix, Squarespace, you know, and. 00:12:13.239 --> 00:12:14.879 all contentful and all those headless 00:12:14.899 --> 00:12:15.519 CMSs. 00:12:16.159 --> 00:12:19.240 So at that point, you know, 00:12:19.280 --> 00:12:21.041 the Drupal association of powers that be 00:12:21.100 --> 00:12:23.522 said, like, like we need this ecosystem. 00:12:23.562 --> 00:12:25.023 We want to do something called site 00:12:25.062 --> 00:12:28.104 templates and site templates are basically 00:12:28.203 --> 00:12:30.604 like, it's a, it's a theme, 00:12:31.225 --> 00:12:32.164 it's a Drupal theme, 00:12:32.485 --> 00:12:35.125 but also like pre-configured with those 00:12:35.166 --> 00:12:36.025 content types, you know, 00:12:36.046 --> 00:12:39.386 which are similar to post types, you know, 00:12:39.466 --> 00:12:39.767 has, 00:12:40.288 --> 00:12:41.687 it can come pre-configured with modules. 00:12:42.421 --> 00:12:44.522 And it can also come pre-configured with 00:12:46.422 --> 00:12:47.982 default content, you know? 00:12:48.123 --> 00:12:50.024 So an example of this is like, 00:12:50.063 --> 00:12:51.364 let's say I'm a church and I want 00:12:51.384 --> 00:12:52.384 to, you know, 00:12:52.403 --> 00:12:54.985 I want a church churchy website, you know, 00:12:55.304 --> 00:12:57.285 and I built a couple of those. 00:12:57.785 --> 00:12:57.985 Yeah. 00:12:58.206 --> 00:12:58.446 Yeah. 00:13:00.866 --> 00:13:01.988 You know, I, I, 00:13:02.087 --> 00:13:03.888 I would hypothetically be able to browse 00:13:03.908 --> 00:13:04.708 this marketplace, 00:13:05.009 --> 00:13:07.750 look for a site template that like, 00:13:07.809 --> 00:13:08.090 you know, 00:13:08.149 --> 00:13:09.389 it would have maybe have a list of 00:13:09.409 --> 00:13:10.350 the content types, you know, 00:13:10.370 --> 00:13:11.650 you may have like sermons. 00:13:12.453 --> 00:13:14.855 you know, events and blog, all that, 00:13:15.035 --> 00:13:15.756 all that good stuff. 00:13:16.596 --> 00:13:19.700 And at that point, pull it down, 00:13:20.379 --> 00:13:20.921 install it. 00:13:21.100 --> 00:13:23.003 And at that point, you would, number one, 00:13:23.043 --> 00:13:23.863 have all, 00:13:23.883 --> 00:13:25.183 you would have content so you can just 00:13:25.244 --> 00:13:26.044 edit content. 00:13:26.585 --> 00:13:28.527 And then you would have a beautiful theme, 00:13:28.567 --> 00:13:30.908 hopefully, and everything pre-configured. 00:13:31.369 --> 00:13:33.730 So it's, but at that point, 00:13:33.850 --> 00:13:35.312 like what's really cool is you have that 00:13:35.351 --> 00:13:36.933 flexibility of Drupal now. 00:13:36.974 --> 00:13:38.654 Like Drupal is hyper-flexible. 00:13:38.674 --> 00:13:41.456 Drupal can build like so many things if 00:13:41.517 --> 00:13:42.057 you have, 00:13:43.241 --> 00:13:43.542 you know, 00:13:43.662 --> 00:13:44.841 if you kind of know your way around 00:13:44.902 --> 00:13:46.543 it, like, like Drupal is fricking amazing. 00:13:47.442 --> 00:13:48.643 So, so that's, 00:13:48.962 --> 00:13:50.802 that's kind of where we're going with 00:13:50.822 --> 00:13:51.062 that. 00:13:51.342 --> 00:13:53.504 And, and to get started, we're, 00:13:53.624 --> 00:13:56.443 we're like the, the marketplace is, 00:13:56.764 --> 00:13:58.284 is set to kick off like right around 00:13:58.325 --> 00:13:59.304 DrupalCon Chicago, 00:13:59.345 --> 00:14:00.565 which is going to be in March. 00:14:01.605 --> 00:14:02.625 And, um, 00:14:02.684 --> 00:14:04.125 it's going to be kind of like almost 00:14:04.186 --> 00:14:05.926 like a beta, you know, 00:14:05.966 --> 00:14:06.666 like we're going to be there. 00:14:06.686 --> 00:14:07.625 We're going to have a couple of site 00:14:07.645 --> 00:14:07.946 templates. 00:14:07.966 --> 00:14:09.246 There's going to be fifteen or sixteen 00:14:09.267 --> 00:14:10.966 other companies that have some type site 00:14:10.986 --> 00:14:11.427 templates. 00:14:12.042 --> 00:14:13.422 we don't know what we're going to build 00:14:13.461 --> 00:14:13.601 yet, 00:14:13.682 --> 00:14:14.643 or at least I don't know what we're 00:14:14.663 --> 00:14:15.743 going to build, 00:14:16.363 --> 00:14:18.583 but all our stuff is going to work. 00:14:18.744 --> 00:14:19.344 It's going to be awesome. 00:14:19.364 --> 00:14:20.943 It's going to be super accessible and, 00:14:21.304 --> 00:14:23.205 and hopefully people will buy it, 00:14:23.865 --> 00:14:26.225 you know, and if they buy it, well, 00:14:26.265 --> 00:14:26.806 that's good. 00:14:26.885 --> 00:14:31.908 Like, like I, I can tell you, like, 00:14:31.947 --> 00:14:33.128 I've been to a number of WordCamps. 00:14:33.168 --> 00:14:35.227 I've been to like WordCamp Miami and 00:14:35.388 --> 00:14:37.028 Jacksonville, probably one or two others. 00:14:38.027 --> 00:14:40.307 And the amount of money into WordPress 00:14:40.388 --> 00:14:44.350 ecosystem is like significantly more than 00:14:44.409 --> 00:14:45.770 in the Drupal ecosystem. 00:14:46.711 --> 00:14:49.613 And the reason is, is because of the, 00:14:50.852 --> 00:14:53.835 like the robust commercial ecosystem 00:14:53.875 --> 00:14:54.534 around WordPress. 00:14:54.554 --> 00:14:56.275 You know, you have, you know, 00:14:56.316 --> 00:14:57.976 however many theme vendors, 00:14:58.017 --> 00:15:01.258 you got all these plugin vendors, 00:15:01.317 --> 00:15:03.298 you know, and stuff like that. 00:15:03.658 --> 00:15:04.759 And they're all advertising. 00:15:05.500 --> 00:15:07.061 And the thing about that is like, 00:15:07.948 --> 00:15:09.811 That's why, you know, 00:15:09.870 --> 00:15:12.332 WordCamp US can cost like fifty dollars or 00:15:12.352 --> 00:15:14.995 something like that, because, you know, 00:15:15.034 --> 00:15:17.015 they get is a fifty dollars or just 00:15:17.035 --> 00:15:17.576 a couple hundred. 00:15:17.657 --> 00:15:19.839 Yeah, it's yeah, it's I think. 00:15:21.409 --> 00:15:23.331 I want to say this last year, 00:15:23.351 --> 00:15:24.493 it was fifty dollars a day. 00:15:24.932 --> 00:15:27.434 I have honestly paid less attention to 00:15:27.475 --> 00:15:31.118 WordCamp prices because my company pays 00:15:31.158 --> 00:15:31.457 for them, 00:15:31.477 --> 00:15:35.160 so I never even look at the ticket 00:15:35.400 --> 00:15:35.541 price. 00:15:35.561 --> 00:15:35.761 But yeah, 00:15:35.861 --> 00:15:36.902 I think it was fifty dollars a day, 00:15:36.942 --> 00:15:38.203 so if you're going to WordCamp US, 00:15:38.244 --> 00:15:41.385 it would be a hundred dollars, I think. 00:15:41.446 --> 00:15:42.726 Yeah, so that's ridiculously cheap. 00:15:42.927 --> 00:15:44.948 But that's super cheap as compared to 00:15:44.969 --> 00:15:47.370 DrupalCon, which is like one K, basically. 00:15:47.696 --> 00:15:48.015 Yeah. 00:15:48.157 --> 00:15:48.397 Yeah. 00:15:48.517 --> 00:15:48.797 And, and, 00:15:48.956 --> 00:15:51.139 and DrupalCon is lowering their prices. 00:15:51.279 --> 00:15:53.081 FYI, like DrupalCon Chicago, 00:15:53.140 --> 00:15:54.663 like prices are going to start like at 00:15:54.682 --> 00:15:56.625 five hundred just because we're kind of 00:15:56.644 --> 00:15:57.865 realizing we're pricing people out, 00:15:58.346 --> 00:15:58.547 you know, 00:15:58.586 --> 00:15:59.888 especially like a lot of the smaller 00:15:59.908 --> 00:16:02.009 companies like, like Dripyard, you know, 00:16:02.049 --> 00:16:04.432 like to drop a couple grand going there, 00:16:04.712 --> 00:16:05.592 you know, that's, 00:16:05.712 --> 00:16:07.154 that's a little more significant than if 00:16:07.195 --> 00:16:09.057 you're like Pantheon or Acquia or, 00:16:09.517 --> 00:16:09.756 you know, 00:16:09.856 --> 00:16:11.119 Automatic or something like that, 00:16:11.158 --> 00:16:11.359 you know? 00:16:12.001 --> 00:16:16.285 You're hitting on all of my key touch 00:16:16.326 --> 00:16:17.927 points about things in the WordPress 00:16:17.988 --> 00:16:18.947 ecosystem. 00:16:19.168 --> 00:16:20.929 There's just so many crossovers. 00:16:21.831 --> 00:16:23.091 So one of the things, okay, 00:16:23.211 --> 00:16:24.774 so a foundational, I'll start here. 00:16:24.854 --> 00:16:26.975 A foundational part of this podcast 00:16:27.015 --> 00:16:30.318 specifically came out of a sticker that I 00:16:30.359 --> 00:16:32.860 got from DrupalCon, which is right here, 00:16:32.941 --> 00:16:34.263 because I was at DrupalCon last year. 00:16:34.562 --> 00:16:36.384 Come for the code, stay for the community. 00:16:36.465 --> 00:16:37.325 And that was... 00:16:38.466 --> 00:16:41.368 That resonated with me because that's the 00:16:41.388 --> 00:16:42.768 reason why I was in the WordPress 00:16:42.788 --> 00:16:43.188 community. 00:16:43.469 --> 00:16:43.869 Ultimately, 00:16:43.908 --> 00:16:47.009 that became one of the foundations for how 00:16:47.071 --> 00:16:50.511 I wanted to do this show. 00:16:50.711 --> 00:16:52.113 One of the things that I learned when 00:16:52.153 --> 00:16:56.554 I was in Atlanta that is distinct about 00:16:56.615 --> 00:16:59.897 the Drupal community from the WordPress 00:16:59.917 --> 00:17:04.099 developer ecosystem is that in Drupal, 00:17:04.458 --> 00:17:05.480 more frequently, 00:17:06.279 --> 00:17:09.703 if we both have tools or modules or 00:17:09.724 --> 00:17:13.027 whatever that serve a similar purpose that 00:17:13.067 --> 00:17:15.328 we're probably more likely to be like hey 00:17:15.349 --> 00:17:17.311 let's join forces and make the best thing 00:17:17.530 --> 00:17:18.773 so like if i have an seo plugin 00:17:18.793 --> 00:17:21.355 and you have an seo plugin then we 00:17:21.394 --> 00:17:22.737 might work together and be like well let's 00:17:22.777 --> 00:17:24.898 make one of these things the de facto 00:17:25.019 --> 00:17:27.320 seo plugin and make it the best plugin 00:17:27.401 --> 00:17:27.781 or module 00:17:28.721 --> 00:17:30.343 Whereas in the WordPress ecosystem, 00:17:31.423 --> 00:17:32.743 if I have an SEO plugin and you 00:17:32.763 --> 00:17:33.565 have an SEO plugin, 00:17:33.644 --> 00:17:35.105 I'm probably not going to talk to you 00:17:35.506 --> 00:17:37.707 because that's my IP and I might turn 00:17:37.727 --> 00:17:38.467 around and sell it. 00:17:38.847 --> 00:17:41.209 So I had a lot of conversations at 00:17:41.608 --> 00:17:42.710 DrupalCon about this, 00:17:42.769 --> 00:17:46.531 but also about the idea of a marketplace 00:17:46.551 --> 00:17:47.751 because that was sort of when Dries 00:17:47.771 --> 00:17:49.413 started floating the idea. 00:17:51.114 --> 00:17:54.336 And my reaction as someone in the 00:17:54.355 --> 00:17:57.357 WordPress ecosystem is I really like that 00:17:57.438 --> 00:18:00.820 model of being collaborative and sharing 00:18:00.840 --> 00:18:02.020 and like, you know, 00:18:02.102 --> 00:18:04.423 joining these two things instead of like 00:18:04.823 --> 00:18:07.684 really going head to head and competing. 00:18:08.246 --> 00:18:11.428 What is your take on sort of like, 00:18:11.468 --> 00:18:13.189 because in WordPress, 00:18:13.588 --> 00:18:15.088 we're more likely to be competitors and 00:18:15.128 --> 00:18:17.069 not sharing those ideas and being sort of 00:18:17.089 --> 00:18:17.890 siloing yourselves off. 00:18:18.150 --> 00:18:19.529 So what is your take on that sort 00:18:19.589 --> 00:18:21.671 of dynamic in terms of like, 00:18:22.151 --> 00:18:24.971 do you do you see that as something 00:18:25.010 --> 00:18:26.771 that could be a risk to like the 00:18:26.811 --> 00:18:29.451 Drupal developer ecosystem as things get a 00:18:29.491 --> 00:18:30.553 little bit more competitive? 00:18:31.373 --> 00:18:33.012 Yeah, things are always a risk, right? 00:18:33.053 --> 00:18:34.313 Like as soon as you make big changes 00:18:34.353 --> 00:18:35.913 like this and these are these are some 00:18:35.933 --> 00:18:37.153 of the biggest changes in the Drupal 00:18:37.193 --> 00:18:39.814 ecosystem ever, you know, 00:18:40.555 --> 00:18:41.535 there's always a risk. 00:18:42.893 --> 00:18:45.855 So, like, to expand on your point, like, 00:18:45.955 --> 00:18:47.636 I saw a blog post at one point 00:18:47.737 --> 00:18:49.278 that, like, WordPress had, like, 00:18:49.298 --> 00:18:50.398 I don't know, 00:18:50.419 --> 00:18:52.361 a hundred and something form builders, 00:18:52.500 --> 00:18:54.762 you know, that you can buy. 00:18:54.942 --> 00:18:57.644 And they won't play nice with each other. 00:18:58.685 --> 00:19:00.488 And then, like, furthermore, like, 00:19:00.508 --> 00:19:02.189 if you have WordPress and you install, 00:19:02.229 --> 00:19:04.250 like, you know, fourteen, fifteen plugins, 00:19:04.310 --> 00:19:06.772 you're kind of, your site's, like, 00:19:06.792 --> 00:19:07.894 a little funkier. 00:19:08.480 --> 00:19:09.480 You're probably fighting. 00:19:09.520 --> 00:19:10.342 Yeah, yeah, yeah. 00:19:10.622 --> 00:19:12.281 You can be fighting some bugs and stuff 00:19:12.321 --> 00:19:12.742 like that. 00:19:13.303 --> 00:19:15.143 Like one of the cool things is with 00:19:15.163 --> 00:19:18.105 Drupal is like all the modules play well 00:19:18.505 --> 00:19:18.904 together. 00:19:18.944 --> 00:19:20.826 Like Drupal has a very robust set of 00:19:21.526 --> 00:19:23.086 API APIs, you know, and, 00:19:23.185 --> 00:19:24.446 and that's something that, 00:19:24.527 --> 00:19:25.807 that we do better than WordPress. 00:19:25.826 --> 00:19:27.907 WordPress does a lot of better, a lot, 00:19:28.087 --> 00:19:29.288 a lot of things better than Drupal. 00:19:29.308 --> 00:19:31.088 But one thing we have is like a 00:19:31.128 --> 00:19:33.390 robust APIs that allow things to work 00:19:33.410 --> 00:19:33.710 together. 00:19:33.730 --> 00:19:34.891 So if you have like six to seven 00:19:34.911 --> 00:19:35.570 D modules, 00:19:36.105 --> 00:19:40.068 installed on a Drupal site, that's normal. 00:19:40.189 --> 00:19:41.269 If you have a couple hundred, 00:19:41.829 --> 00:19:42.570 that's fine too. 00:19:44.531 --> 00:19:49.756 And so going into Drupal has probably 00:19:49.996 --> 00:19:51.056 three or four page builders, 00:19:51.115 --> 00:19:52.257 but there's one big one. 00:19:52.416 --> 00:19:53.278 It's called Webform. 00:19:53.337 --> 00:19:54.078 It's easy. 00:19:54.699 --> 00:19:56.079 And built around Webform, 00:19:56.099 --> 00:19:57.780 there's ecosystems that build on top of 00:19:57.800 --> 00:19:59.602 that. 00:19:59.642 --> 00:20:01.284 So you'll have Webform Commerce, 00:20:01.324 --> 00:20:03.605 Webform this, Webform that, 00:20:03.704 --> 00:20:04.826 that allow you to do like 00:20:05.224 --> 00:20:06.125 you know, little things. 00:20:06.546 --> 00:20:07.366 And it's just really nice. 00:20:07.406 --> 00:20:08.968 You don't have to evaluate. 00:20:08.988 --> 00:20:10.209 You don't know, you don't got to pay, 00:20:10.348 --> 00:20:11.429 you know, twenty dollars, 00:20:11.469 --> 00:20:12.911 forty dollars or whatever for something 00:20:12.931 --> 00:20:13.171 like that. 00:20:13.191 --> 00:20:13.911 You just try it, 00:20:13.971 --> 00:20:16.212 you get it to work and and everything 00:20:16.252 --> 00:20:16.573 goes. 00:20:17.113 --> 00:20:20.596 So like that's that's one of the 00:20:20.635 --> 00:20:23.417 advantages that that Drupal has. 00:20:23.538 --> 00:20:24.798 And that's something that I think, 00:20:24.979 --> 00:20:26.759 you know, the leadership recognizes. 00:20:29.261 --> 00:20:29.481 You know, 00:20:29.541 --> 00:20:32.344 Dries had stated modules will always be 00:20:32.384 --> 00:20:34.625 GPL forever free, you know. 00:20:35.393 --> 00:20:39.494 and it's it's the themes that you know 00:20:39.575 --> 00:20:42.096 that that that could be commercial code so 00:20:42.155 --> 00:20:45.196 back when i was like back when i 00:20:45.217 --> 00:20:47.817 was like researching like like doing a 00:20:47.837 --> 00:20:49.338 little bit of due diligence like can i 00:20:49.358 --> 00:20:51.359 do drip yard you know so i started 00:20:51.380 --> 00:20:53.661 looking into gpl and like everything 00:20:53.681 --> 00:20:55.882 because gpl for those who don't know has 00:20:55.902 --> 00:20:58.363 a very sticky license you know where like 00:20:58.522 --> 00:20:59.163 if if 00:20:59.806 --> 00:21:02.626 If you write PHP that builds on top 00:21:02.666 --> 00:21:04.606 of Drupal or WordPress and then distribute 00:21:04.626 --> 00:21:06.166 it, it's technically GPL, 00:21:06.528 --> 00:21:07.448 which means it's free. 00:21:08.188 --> 00:21:10.407 And, um, 00:21:10.448 --> 00:21:13.108 but that doesn't necessarily apply to 00:21:13.148 --> 00:21:16.349 things that it's a little bit of legalese, 00:21:16.490 --> 00:21:19.309 but like things that are not directly 00:21:19.410 --> 00:21:20.270 interfacing with that. 00:21:20.290 --> 00:21:21.691 So things that can run in the browser. 00:21:22.380 --> 00:21:25.801 things like CSS and JavaScript will not 00:21:25.842 --> 00:21:26.961 necessarily be GPL. 00:21:27.363 --> 00:21:28.563 And I did a little bit of digging 00:21:28.603 --> 00:21:30.723 and there's a Drupal licensing working 00:21:30.743 --> 00:21:31.345 group, you know, 00:21:31.365 --> 00:21:32.904 and there was some talk about that. 00:21:33.184 --> 00:21:35.946 And the conclusion that I saw within this 00:21:36.027 --> 00:21:37.167 issue is yeah, 00:21:37.248 --> 00:21:40.909 like CSS and JavaScript is not necessarily 00:21:41.430 --> 00:21:41.950 GPL. 00:21:42.589 --> 00:21:44.290 So at that point I was like, 00:21:44.310 --> 00:21:45.132 all right, well, we can do this. 00:21:45.152 --> 00:21:46.311 We can just kind of, you know, 00:21:46.432 --> 00:21:48.712 have our CSS and everything closed source. 00:21:51.067 --> 00:21:55.951 The TLDR of all of this is that, 00:21:56.530 --> 00:22:00.574 like, it's kind of like a fine line, 00:22:00.614 --> 00:22:01.194 you know? 00:22:01.414 --> 00:22:02.375 Like, you can't... 00:22:05.269 --> 00:22:07.451 like it's not necessarily a good idea for 00:22:07.611 --> 00:22:09.813 everything to cost money and, 00:22:09.992 --> 00:22:11.614 and then people don't collaborate, 00:22:11.673 --> 00:22:12.134 you know? 00:22:13.035 --> 00:22:14.836 But at the same time you need money 00:22:14.916 --> 00:22:16.178 because people need to get paid. 00:22:16.397 --> 00:22:16.617 Right. 00:22:16.938 --> 00:22:19.079 Like I am doing this because to tell 00:22:19.099 --> 00:22:20.441 you the truth, like I want to, 00:22:20.922 --> 00:22:22.182 I want to be able to make six 00:22:22.222 --> 00:22:24.423 figures and work twenty hours a week. 00:22:24.443 --> 00:22:26.286 That is my dream, you know? 00:22:26.586 --> 00:22:30.249 And, and yeah, 00:22:30.288 --> 00:22:31.849 so it's going to be a fine line. 00:22:31.930 --> 00:22:33.912 I have a feeling that like as we, 00:22:35.019 --> 00:22:35.559 As, as, 00:22:35.740 --> 00:22:39.522 as Drupal continues to like continue down 00:22:39.542 --> 00:22:40.864 this path, there are going to be, 00:22:41.663 --> 00:22:41.983 you know, 00:22:42.023 --> 00:22:43.325 changes and people are going to figure 00:22:43.345 --> 00:22:43.704 things out. 00:22:43.765 --> 00:22:44.385 People like, 00:22:44.486 --> 00:22:46.886 like Drupal is going to make mistakes and 00:22:46.906 --> 00:22:47.867 they're going to say like, all right, 00:22:48.167 --> 00:22:50.028 well, let's back this up a little bit, 00:22:50.509 --> 00:22:51.950 or maybe we should go forward a little 00:22:51.990 --> 00:22:52.550 bit more, you know, 00:22:52.570 --> 00:22:54.571 maybe we're not doing this enough. 00:22:54.692 --> 00:22:55.291 Yeah. 00:22:55.332 --> 00:22:56.873 So I think it's going to be trial 00:22:56.893 --> 00:22:57.673 and error. 00:22:57.773 --> 00:22:57.913 Yeah. 00:22:58.628 --> 00:22:58.929 Yeah, 00:22:58.949 --> 00:23:02.953 that's interesting about modules being 00:23:03.253 --> 00:23:06.557 different and the marketplace not being 00:23:06.597 --> 00:23:09.261 handled or not covering modules 00:23:09.301 --> 00:23:11.644 necessarily versus themes and themes being 00:23:11.683 --> 00:23:13.586 the thing that we're talking about first. 00:23:14.047 --> 00:23:15.347 I think that makes a lot of sense, 00:23:15.807 --> 00:23:17.509 both from sort of Drupal's history, 00:23:17.929 --> 00:23:20.090 but also like creating, 00:23:20.730 --> 00:23:22.571 like not shutting off that sort of 00:23:22.612 --> 00:23:23.271 collaborations, 00:23:23.353 --> 00:23:25.074 which I do recognize I think happens a 00:23:25.094 --> 00:23:26.673 lot more in modules because like you said, 00:23:26.734 --> 00:23:28.234 like you can have dependency modules and 00:23:28.275 --> 00:23:28.635 whatever, 00:23:28.695 --> 00:23:30.537 like this module calls these other three 00:23:30.576 --> 00:23:31.416 modules and whatever, 00:23:31.436 --> 00:23:32.518 and you do need to sort of like 00:23:32.557 --> 00:23:33.618 keep that ecosystem. 00:23:34.838 --> 00:23:35.480 In WordPress, 00:23:35.500 --> 00:23:37.580 there is kind of sort of an equivalent. 00:23:37.861 --> 00:23:40.603 There are like plugins that are like 00:23:41.103 --> 00:23:42.763 add-ons or additional features 00:23:42.943 --> 00:23:44.946 functionality to an existing plugin and 00:23:45.007 --> 00:23:47.490 maybe that existing plugin is a premium 00:23:47.509 --> 00:23:50.493 plugin or maybe it's like a free plugin 00:23:50.574 --> 00:23:53.538 and the extension is is a premium thing 00:23:53.577 --> 00:23:55.000 or whatever like there's all sorts of like 00:23:55.059 --> 00:23:57.763 weird things like that but 00:23:59.385 --> 00:24:00.866 but yeah i think that that's interesting 00:24:00.987 --> 00:24:04.429 do you see a future where there might 00:24:04.450 --> 00:24:07.371 be also a module marketplace both like you 00:24:07.391 --> 00:24:09.032 know besides drupal.org and getting your 00:24:09.073 --> 00:24:10.554 stuff like normally that way but like 00:24:10.574 --> 00:24:13.095 having like a like the equivalent of like 00:24:13.134 --> 00:24:15.217 an envato sort of thing where you could 00:24:15.376 --> 00:24:17.778 like purchase and and integrate like 00:24:17.999 --> 00:24:21.520 premium uh modules for drupal i would be 00:24:21.641 --> 00:24:24.363 really really surprised there are like 00:24:24.403 --> 00:24:26.804 some modules that like kind of do the 00:24:26.824 --> 00:24:29.086 whole gpl loophole and put some processing 00:24:29.673 --> 00:24:31.473 processing on the server, you know, 00:24:31.513 --> 00:24:32.535 that's kind of how they, 00:24:33.134 --> 00:24:33.776 how they do it. 00:24:33.816 --> 00:24:36.218 So there's, there's things like that. 00:24:36.498 --> 00:24:37.999 I can't see any, 00:24:38.378 --> 00:24:42.422 any Envato type marketplace for, for, 00:24:42.602 --> 00:24:43.342 for modules. 00:24:43.702 --> 00:24:44.603 I think if that happened, 00:24:44.682 --> 00:24:46.644 people would kind of get pissed and then 00:24:46.684 --> 00:24:48.586 just like download it and throw it up 00:24:48.625 --> 00:24:49.967 on Drupal.org or GitHub or something like 00:24:49.987 --> 00:24:52.568 that, which has happened in the past, 00:24:52.689 --> 00:24:53.028 you know? 00:24:53.368 --> 00:24:54.349 It happens in WordPress too. 00:24:54.369 --> 00:24:54.450 Yeah. 00:24:55.391 --> 00:24:55.570 Yeah. 00:24:56.345 --> 00:24:57.285 And it's interesting, 00:24:57.346 --> 00:24:58.806 like it's an interesting topic, right? 00:24:58.846 --> 00:25:00.146 So if I sell a site template, 00:25:00.186 --> 00:25:01.607 let's say I sell this for like a 00:25:01.627 --> 00:25:03.248 thousand dollars and I have my theme and 00:25:03.327 --> 00:25:05.088 also like has, you know, 00:25:05.108 --> 00:25:06.769 a composer file that references a bunch of 00:25:06.809 --> 00:25:07.230 modules. 00:25:07.250 --> 00:25:11.051 These modules are key components to this 00:25:11.652 --> 00:25:12.272 site template. 00:25:12.452 --> 00:25:14.012 Well, I'm making all the profit of that. 00:25:14.114 --> 00:25:17.355 These module maintainers aren't making 00:25:17.375 --> 00:25:18.174 shit, you know? 00:25:18.635 --> 00:25:19.415 I don't know if I can say that 00:25:19.435 --> 00:25:20.477 word, but I just did. 00:25:22.037 --> 00:25:23.557 I'll flag the explicit tag. 00:25:23.577 --> 00:25:24.317 It's not a problem. 00:25:24.337 --> 00:25:24.838 Yeah, yeah. 00:25:27.641 --> 00:25:28.441 You know, and that goes, 00:25:28.922 --> 00:25:30.363 but that also goes all the way down, 00:25:30.442 --> 00:25:32.483 you know, like, well, at that point, 00:25:32.824 --> 00:25:35.144 the core maintainers and the core 00:25:35.164 --> 00:25:36.746 developers are not getting paid, you know, 00:25:36.846 --> 00:25:38.626 the Apache developers or NGINX. 00:25:41.348 --> 00:25:42.529 And also, like, 00:25:43.549 --> 00:25:46.291 the argument would be that, well, 00:25:46.872 --> 00:25:50.094 these module maintainers and developers 00:25:50.134 --> 00:25:51.615 have been doing kind of unpaid work. 00:25:52.510 --> 00:25:54.792 unpaid labor for years and years while 00:25:54.873 --> 00:25:55.773 other people are making money, 00:25:55.794 --> 00:25:57.154 you have agencies, you know, 00:25:57.255 --> 00:25:57.816 like agencies, 00:25:57.836 --> 00:25:58.916 I used to work for a company called 00:25:58.936 --> 00:26:01.739 Lullabot and they would put together these 00:26:01.979 --> 00:26:04.101 great websites for these large companies 00:26:04.260 --> 00:26:06.022 were for multimillion dollar contracts. 00:26:06.903 --> 00:26:09.026 And, and, you know, 00:26:10.126 --> 00:26:12.248 does that money go toward those module 00:26:12.268 --> 00:26:12.749 developers? 00:26:12.848 --> 00:26:14.309 No, I mean, to be fair, 00:26:14.329 --> 00:26:15.391 there are some, there's a, 00:26:15.411 --> 00:26:16.873 there's a number that would work at that 00:26:16.913 --> 00:26:19.474 company, but still, you know, so, 00:26:20.711 --> 00:26:23.535 It's a really interesting ecosystem. 00:26:23.694 --> 00:26:28.701 Open source is really interesting and how 00:26:28.781 --> 00:26:30.463 that works and how that can work. 00:26:32.145 --> 00:26:32.988 Yeah. 00:26:33.008 --> 00:26:33.508 I'm interested... 00:26:35.215 --> 00:26:37.136 So one of the things that happens a 00:26:37.196 --> 00:26:40.717 lot in the WordPress commercial ecosystem 00:26:41.377 --> 00:26:45.219 is that even though technically, 00:26:46.019 --> 00:26:48.058 because Matt Mullenweg has explicitly 00:26:48.098 --> 00:26:50.599 stated a number of times that he believes 00:26:50.740 --> 00:26:54.840 that all code in plugins and themes should 00:26:54.881 --> 00:26:58.082 be GPL licensed or GPL compatible, 00:26:59.041 --> 00:27:00.261 even when it doesn't have to be, 00:27:00.301 --> 00:27:02.162 because that's the spirit of the GPL, 00:27:02.542 --> 00:27:04.042 not necessarily the letter, you know? 00:27:04.823 --> 00:27:07.506 So he doesn't like things like Envato 00:27:07.566 --> 00:27:08.826 where they have mixed licenses or 00:27:08.846 --> 00:27:09.047 whatever. 00:27:10.008 --> 00:27:11.630 He's much more like everything should be 00:27:11.670 --> 00:27:12.190 GPL. 00:27:12.529 --> 00:27:13.691 And if everything is GPL, 00:27:13.711 --> 00:27:15.333 then that means anybody can take your code 00:27:15.413 --> 00:27:16.993 and then republish it and put it somewhere 00:27:17.034 --> 00:27:17.194 else. 00:27:17.234 --> 00:27:19.036 And now it's their code because that's 00:27:19.056 --> 00:27:20.277 what the GPL allows you to do is 00:27:20.297 --> 00:27:22.338 basically redistribute it as is. 00:27:23.319 --> 00:27:25.301 So the thing that most... 00:27:26.823 --> 00:27:30.424 premium WordPress plugins and themes sort 00:27:30.464 --> 00:27:32.987 of do is, okay, 00:27:33.547 --> 00:27:36.969 what you're paying for is access to 00:27:37.529 --> 00:27:38.150 updates. 00:27:38.931 --> 00:27:40.612 So they have a different update mechanism 00:27:40.632 --> 00:27:41.811 that so it's not going to be on 00:27:41.852 --> 00:27:43.333 like WordPress at all and get automatic 00:27:43.373 --> 00:27:44.013 updates that way. 00:27:44.554 --> 00:27:45.654 uh it's going to be through their own 00:27:45.815 --> 00:27:48.356 sort of homebrew update mechanism and two 00:27:48.396 --> 00:27:50.178 they're also selling support for a 00:27:50.999 --> 00:27:54.401 contracted period of time um is that sort 00:27:54.441 --> 00:27:56.482 of the model that you are thinking of 00:27:56.722 --> 00:27:58.584 uh for drip yard as well are you 00:27:58.624 --> 00:28:02.547 thinking that uh primarily you are selling 00:28:02.686 --> 00:28:07.049 the proprietary like javascript and css i 00:28:07.069 --> 00:28:08.290 mean you know like 00:28:08.871 --> 00:28:10.491 that is that is the thing that is 00:28:10.652 --> 00:28:12.752 that is being sold even if it's like 00:28:12.772 --> 00:28:14.054 you're selling it with a bunch of other 00:28:14.094 --> 00:28:15.934 stuff that is yeah technically gpl 00:28:15.954 --> 00:28:20.798 compatible so like we're definitely like 00:28:20.837 --> 00:28:22.638 selling support add-ons you know 00:28:22.679 --> 00:28:24.019 reoccurring and that's like a hundred 00:28:24.039 --> 00:28:25.140 dollars a year so that's not a heck 00:28:25.180 --> 00:28:29.502 of a lot of money um updates you 00:28:29.522 --> 00:28:32.744 know will people just will download the 00:28:32.785 --> 00:28:34.705 zip file from our you know 00:28:35.854 --> 00:28:37.474 when they log in, you know, 00:28:37.494 --> 00:28:38.855 get their theme and stuff like that. 00:28:39.457 --> 00:28:40.637 And then they can, you know, 00:28:40.698 --> 00:28:41.959 download their updates that way. 00:28:42.078 --> 00:28:42.838 And, you know, 00:28:42.878 --> 00:28:44.420 hopefully their changes will be in a sub 00:28:44.440 --> 00:28:45.701 theme so they don't get clobbered. 00:28:46.521 --> 00:28:57.349 But like, it's like, I can't really, 00:28:57.369 --> 00:28:59.371 I can't, 00:28:59.921 --> 00:29:01.162 it's going to be interesting to see how 00:29:01.201 --> 00:29:01.722 things go. 00:29:01.742 --> 00:29:03.525 I, I can't really tell you, 00:29:04.424 --> 00:29:05.465 I can tell you what we're doing, 00:29:06.106 --> 00:29:07.228 but I can't tell you what everything, 00:29:07.709 --> 00:29:08.690 everyone else is doing. 00:29:08.710 --> 00:29:11.132 Like, and yeah, 00:29:11.751 --> 00:29:12.853 I don't know if that really answers your 00:29:12.873 --> 00:29:13.314 question. 00:29:13.854 --> 00:29:15.336 I was, I mean, I was wondering from, 00:29:15.435 --> 00:29:16.737 from the perspective of, 00:29:16.876 --> 00:29:18.097 of drip yard specifically. 00:29:18.178 --> 00:29:18.439 Yeah. 00:29:18.459 --> 00:29:19.779 So it sounds like that you would like, 00:29:20.175 --> 00:29:20.576 Kind of, 00:29:20.635 --> 00:29:21.616 and that's one of the things too, 00:29:21.656 --> 00:29:24.057 like if you're gating access to the files, 00:29:24.397 --> 00:29:24.538 uh, 00:29:24.617 --> 00:29:26.097 because you have to be a logged in 00:29:26.178 --> 00:29:27.159 user and you have to pay to get 00:29:27.219 --> 00:29:28.719 the login in the first place, then, 00:29:28.940 --> 00:29:30.339 then that's, that's an easy way of, 00:29:30.539 --> 00:29:32.201 of making sure that people are, 00:29:32.580 --> 00:29:33.760 are paying for your stuff. 00:29:34.182 --> 00:29:34.402 Yeah. 00:29:34.521 --> 00:29:34.622 Yeah. 00:29:34.642 --> 00:29:35.082 We're doing that. 00:29:35.122 --> 00:29:36.823 And, and there's, there's like, 00:29:36.843 --> 00:29:37.403 to tell you the truth, 00:29:37.423 --> 00:29:39.144 there's like nothing stopping people, 00:29:39.624 --> 00:29:39.943 you know, 00:29:40.003 --> 00:29:42.144 from redistributing our stuff after, 00:29:42.325 --> 00:29:44.026 after they purchase it, you know, like, 00:29:44.445 --> 00:29:46.606 like we could sue them, but you know, 00:29:46.926 --> 00:29:48.247 we still have themes for a hundred 00:29:48.287 --> 00:29:49.488 dollars, you know? 00:29:51.087 --> 00:29:53.008 more than likely I'll end up spilling 00:29:53.028 --> 00:29:57.749 something on my DrupalCon or something. 00:29:59.150 --> 00:29:59.910 But at the same time, 00:29:59.990 --> 00:30:02.470 our thought process is, well, 00:30:03.029 --> 00:30:06.411 if you're starting a project with Drupal, 00:30:06.431 --> 00:30:07.851 you're probably spending significantly 00:30:07.891 --> 00:30:09.510 more than ten thousand dollars to spend 00:30:09.550 --> 00:30:11.031 like five hundred dollars on a theme. 00:30:12.332 --> 00:30:13.971 Add in some support seems pretty 00:30:14.031 --> 00:30:14.451 reasonable. 00:30:14.491 --> 00:30:15.432 And honestly, 00:30:16.232 --> 00:30:17.553 these themes that we developed, 00:30:19.420 --> 00:30:21.381 over ten months and I'm like probably 00:30:21.421 --> 00:30:23.362 thousands of hours, you know, 00:30:23.642 --> 00:30:26.163 and they're really good. 00:30:26.523 --> 00:30:28.344 You know, they're awesome. 00:30:29.045 --> 00:30:31.425 And it's going to save people tens of 00:30:31.445 --> 00:30:32.987 thousands of dollars, you know, 00:30:33.467 --> 00:30:34.247 by using these. 00:30:37.320 --> 00:30:38.361 So what I, 00:30:38.381 --> 00:30:39.781 we've talked a lot about Drupal and we've 00:30:39.821 --> 00:30:40.741 talked a lot about WordPress. 00:30:40.761 --> 00:30:43.882 What I often like to do, uh, 00:30:43.942 --> 00:30:46.942 is to really talk about, um, 00:30:46.982 --> 00:30:50.144 sort of what your journey to tech or 00:30:50.203 --> 00:30:52.144 web development was sort of like in the 00:30:52.183 --> 00:30:52.683 first place. 00:30:52.703 --> 00:30:56.204 Like, how did you get to be, uh, 00:30:56.224 --> 00:30:58.165 how did you get to be Mike Herschel 00:30:58.205 --> 00:30:59.445 co-founder of Dripyard? 00:30:59.486 --> 00:31:01.526 Like what, what led to, uh, 00:31:01.566 --> 00:31:03.247 to you just getting involved in this stuff 00:31:03.267 --> 00:31:03.846 in the first place? 00:31:04.510 --> 00:31:05.912 so i was born at a very young 00:31:06.031 --> 00:31:12.557 age i got i got into uh computers 00:31:12.617 --> 00:31:14.720 back in like i used to do technical 00:31:14.759 --> 00:31:16.201 support for dell and gateway computers 00:31:16.221 --> 00:31:17.563 before they like shipped off all that 00:31:17.583 --> 00:31:19.444 stuff over to india you know so i 00:31:19.464 --> 00:31:20.965 would talk to your grandmother trying to 00:31:20.986 --> 00:31:24.709 troubleshoot windows i moved up to up to 00:31:24.749 --> 00:31:26.351 gainesville and i got this job doing 00:31:26.411 --> 00:31:27.892 technical support over the phone technical 00:31:27.932 --> 00:31:30.173 support uh just because like i had done 00:31:30.213 --> 00:31:30.694 that before 00:31:31.490 --> 00:31:33.132 And it was this enterprise software 00:31:33.231 --> 00:31:35.054 company called Bar Systems that would 00:31:35.074 --> 00:31:37.915 interface between mainframes and regular 00:31:37.976 --> 00:31:39.116 networks and stuff. 00:31:39.137 --> 00:31:41.819 And it was so slow that we would 00:31:41.960 --> 00:31:43.321 just sit there and twiddle our thumbs. 00:31:43.342 --> 00:31:45.202 And the guy in the office next to 00:31:45.222 --> 00:31:46.684 me, he was doing these websites. 00:31:46.704 --> 00:31:49.346 And he was using Macromedia Fireworks and 00:31:50.107 --> 00:31:51.048 showed me how to do that. 00:31:51.068 --> 00:31:52.049 And I had to use Photoshop. 00:31:52.069 --> 00:31:53.530 This would have been like, like, 00:31:54.971 --> 00:31:57.173 And I would literally do all my designs 00:31:57.233 --> 00:31:57.973 and fireworks. 00:31:57.993 --> 00:31:58.755 We both would. 00:31:58.795 --> 00:32:00.476 And then we would slice it up. 00:32:00.536 --> 00:32:01.876 And we would just export it. 00:32:01.916 --> 00:32:04.358 And it was literally a table full of 00:32:04.419 --> 00:32:04.940 images. 00:32:05.019 --> 00:32:05.759 That would be your website. 00:32:05.779 --> 00:32:06.681 I remember those. 00:32:08.001 --> 00:32:09.323 That was awful. 00:32:09.343 --> 00:32:09.583 I hate those. 00:32:09.603 --> 00:32:10.743 I found some of those on my old 00:32:10.784 --> 00:32:11.224 hard drive. 00:32:11.244 --> 00:32:12.526 And I have some of those up on 00:32:12.746 --> 00:32:13.746 my GitHub. 00:32:13.826 --> 00:32:15.327 If you have some links or something, 00:32:15.708 --> 00:32:16.749 like show notes or something, 00:32:16.949 --> 00:32:18.150 I'll shoot you some links. 00:32:18.170 --> 00:32:20.050 You can see Spacer GIFs and stuff in 00:32:20.070 --> 00:32:20.211 there. 00:32:20.250 --> 00:32:20.351 Yeah. 00:32:21.211 --> 00:32:23.233 So I got into websites and I started 00:32:23.253 --> 00:32:25.315 doing like my brother's band's website. 00:32:25.335 --> 00:32:26.796 I did it at my brother's friend's man's 00:32:26.836 --> 00:32:28.076 websites. 00:32:28.116 --> 00:32:29.577 And I started like, you know, 00:32:29.637 --> 00:32:32.920 doing websites as a side hustle and stuff 00:32:32.940 --> 00:32:34.121 like that. 00:32:34.141 --> 00:32:34.842 I remember I would, 00:32:34.981 --> 00:32:36.502 I would put these ads on Craigslist for 00:32:36.563 --> 00:32:38.763 barter to do websites for like to have 00:32:39.045 --> 00:32:40.625 people do stuff for our house. 00:32:40.665 --> 00:32:42.047 And I ended up getting this guy who 00:32:42.067 --> 00:32:44.127 was starting a lawn care company. 00:32:44.749 --> 00:32:45.189 And, uh, 00:32:46.262 --> 00:32:47.523 We became friends, you know, 00:32:47.564 --> 00:32:48.905 you put in a sprinkler system and, 00:32:49.185 --> 00:32:49.546 and he, 00:32:49.605 --> 00:32:51.909 he said he had this website called, uh, 00:32:51.949 --> 00:32:53.410 or he had a domain name called gator 00:32:53.450 --> 00:32:54.851 tailgating.com, you know, 00:32:54.891 --> 00:32:57.693 and I'm a big Florida Gator football fan, 00:32:57.713 --> 00:32:58.954 you know, and I was like, 00:32:58.994 --> 00:32:59.615 I like tailgating. 00:32:59.655 --> 00:33:00.876 I'm like, let's do this, you know? 00:33:01.837 --> 00:33:04.941 So I, um, I started looking for CMSs. 00:33:04.961 --> 00:33:05.582 This has been. 00:33:07.886 --> 00:33:09.607 And I don't know why I didn't look 00:33:09.647 --> 00:33:10.548 at WordPress, but I, 00:33:11.009 --> 00:33:12.650 I looked at Joomla and I looked at 00:33:12.690 --> 00:33:15.090 Drupal and I chose Drupal to be honest, 00:33:15.131 --> 00:33:16.791 because it had an integrated forum, 00:33:16.811 --> 00:33:19.073 which is like such a funny thing to 00:33:19.113 --> 00:33:19.472 select. 00:33:19.492 --> 00:33:20.753 But then I kind of got into it 00:33:21.674 --> 00:33:22.515 and around, 00:33:22.615 --> 00:33:24.355 and I started doing like a little bit 00:33:24.375 --> 00:33:25.957 of freelance and Drupal, you know, 00:33:26.037 --> 00:33:28.278 I would just literally like do everything 00:33:28.317 --> 00:33:29.538 the wrong way, you know, 00:33:29.598 --> 00:33:31.059 like edit the files and core, 00:33:31.079 --> 00:33:32.220 which you're not supposed to do, 00:33:32.320 --> 00:33:33.141 et cetera, et cetera. 00:33:34.182 --> 00:33:34.942 And, um, 00:33:35.586 --> 00:33:37.865 I eventually made my way, like, 00:33:37.885 --> 00:33:39.987 I remember I Googled, you know, 00:33:40.846 --> 00:33:42.467 Gainesville Drupal just to see if there 00:33:42.507 --> 00:33:44.107 was what would happen, you know, 00:33:44.127 --> 00:33:44.768 and I found, 00:33:44.948 --> 00:33:47.428 I found this thing on groups.drupal.org 00:33:47.468 --> 00:33:49.628 that led me to Florida Drupal camp. 00:33:50.209 --> 00:33:51.949 And I went down there in early, 00:33:51.989 --> 00:33:53.430 and I was kind of hooked on the, 00:33:53.450 --> 00:33:54.230 I was like, holy shit. 00:33:54.289 --> 00:33:55.630 I didn't know that there was actual 00:33:55.690 --> 00:33:56.170 community. 00:33:56.210 --> 00:33:57.329 I thought it was just like a bunch 00:33:57.349 --> 00:33:59.671 of nerds developing this, you know, 00:33:59.691 --> 00:34:01.030 and they taught me how to do stuff 00:34:01.050 --> 00:34:02.030 that I didn't know how to do. 00:34:02.050 --> 00:34:03.112 I went home and I was like, 00:34:03.192 --> 00:34:04.711 so enthusiastic, you know, 00:34:05.352 --> 00:34:06.792 I ended up going the next few years 00:34:06.833 --> 00:34:08.493 and started volunteering and stuff. 00:34:09.355 --> 00:34:11.776 And I started looking for Drupal jobs at 00:34:11.796 --> 00:34:12.115 that point. 00:34:12.135 --> 00:34:13.978 I was working for the Florida High School 00:34:13.998 --> 00:34:15.979 Athletic Association at the time, 00:34:16.019 --> 00:34:17.720 just doing like all their computer stuff. 00:34:17.779 --> 00:34:20.261 And I migrated their like fairly large 00:34:20.301 --> 00:34:22.063 website to Drupal six at the time. 00:34:23.003 --> 00:34:24.525 And then I, 00:34:26.286 --> 00:34:27.567 I ended up, uh, you know, 00:34:27.766 --> 00:34:29.208 kind of getting more involved with Florida 00:34:29.228 --> 00:34:29.909 Drupal camp. 00:34:29.929 --> 00:34:31.829 I ended up, uh, you know, 00:34:32.190 --> 00:34:35.333 getting my job at Lullabot back in, uh, 00:34:35.452 --> 00:34:37.994 uh, and, uh, kind of just, 00:34:38.394 --> 00:34:40.036 kind of just went head on into Drupal 00:34:40.056 --> 00:34:41.077 at that point, you know, 00:34:41.137 --> 00:34:43.778 if I wasn't already there and I ended 00:34:43.878 --> 00:34:44.378 up, uh, 00:34:45.079 --> 00:34:46.300 getting involved in Drupal core 00:34:46.320 --> 00:34:48.983 development at Lullabot where, you know, 00:34:49.282 --> 00:34:50.864 uh, I, uh, 00:34:52.175 --> 00:34:54.677 I kind of got roped into leading a 00:34:54.717 --> 00:34:56.878 team to do a new theme for Drupal, 00:34:56.918 --> 00:34:59.159 where the previous theme for Drupal just 00:34:59.179 --> 00:35:00.501 had been around for so long. 00:35:01.280 --> 00:35:01.702 At the time, 00:35:01.762 --> 00:35:03.623 it was probably like ten years old, 00:35:03.663 --> 00:35:05.443 which is like a million in internet years. 00:35:07.565 --> 00:35:08.646 And so I went through that, 00:35:08.666 --> 00:35:10.166 and everybody was really happy. 00:35:10.467 --> 00:35:12.148 And I ended up doing a bunch of 00:35:12.208 --> 00:35:13.688 other cool stuff. 00:35:15.478 --> 00:35:17.858 And then I ended up quitting Lullabot for 00:35:17.898 --> 00:35:19.199 more money, you know, 00:35:19.239 --> 00:35:20.699 and then quitting that job for more money 00:35:21.460 --> 00:35:22.581 and I'm getting laid off. 00:35:22.601 --> 00:35:23.621 And that, you know, 00:35:23.681 --> 00:35:25.621 and then I was like, you know, 00:35:25.661 --> 00:35:26.523 that led me to here. 00:35:26.543 --> 00:35:27.242 And I was like, 00:35:27.543 --> 00:35:29.923 cause I had been mulling this company for 00:35:29.963 --> 00:35:30.503 a while. 00:35:30.583 --> 00:35:32.445 And I was even talking to other developers 00:35:32.485 --> 00:35:34.326 while I was still like, you know, 00:35:34.585 --> 00:35:35.985 in various different jobs about 00:35:36.045 --> 00:35:37.527 potentially starting this with them. 00:35:38.547 --> 00:35:39.068 And then I was like, 00:35:39.108 --> 00:35:39.907 this is going to be it. 00:35:40.268 --> 00:35:42.009 I'm going to, I'm, 00:35:42.028 --> 00:35:42.889 I just got laid off. 00:35:42.909 --> 00:35:44.110 This is going to be my kick in 00:35:44.130 --> 00:35:44.570 the ass. 00:35:44.610 --> 00:35:44.969 I'm going to, 00:35:45.878 --> 00:35:46.938 I'm going to start this up. 00:35:47.438 --> 00:35:49.639 And, you know, so I, I, uh, 00:35:50.300 --> 00:35:52.021 I reached out to my current business 00:35:52.061 --> 00:35:53.782 partners, guy named Andy Giles, 00:35:53.822 --> 00:35:55.324 who lives in Asheville, North Carolina. 00:35:55.364 --> 00:35:57.105 And he's a amazing backend dev. 00:35:57.125 --> 00:35:59.507 He's, he's, he's a horrible front end dev. 00:36:00.286 --> 00:36:00.527 And, 00:36:00.547 --> 00:36:02.168 but he's also like really good at things 00:36:02.228 --> 00:36:04.650 like DevOps and e-commerce. 00:36:04.869 --> 00:36:06.632 And he's a nice guy, you know, and, 00:36:06.652 --> 00:36:08.532 uh, we ended up, uh, 00:36:08.572 --> 00:36:09.452 I ended up talking to him, 00:36:09.574 --> 00:36:10.454 talking to him and I said, 00:36:10.494 --> 00:36:13.016 we're going to get rich, you know, 00:36:13.036 --> 00:36:14.077 all this type of stuff. 00:36:14.277 --> 00:36:14.637 And, uh, 00:36:15.324 --> 00:36:17.065 You know, I, I, you know, 00:36:17.965 --> 00:36:18.666 like money wise, 00:36:18.686 --> 00:36:20.606 we had to invest in some designers, 00:36:20.847 --> 00:36:21.146 you know, 00:36:21.186 --> 00:36:23.347 so we ended up at this point, 00:36:23.367 --> 00:36:25.128 we both probably threw in about like five 00:36:25.148 --> 00:36:26.929 grand into the business to pay for some 00:36:27.050 --> 00:36:28.291 designs, you know, 00:36:29.190 --> 00:36:31.512 and just a heck of a lot of 00:36:31.552 --> 00:36:33.052 work ended up taking the equity line of 00:36:33.112 --> 00:36:34.054 credit against my house. 00:36:34.074 --> 00:36:35.213 So I have something to live off of 00:36:36.835 --> 00:36:38.576 and ended up just 00:36:40.532 --> 00:36:42.034 I thought we were going to have this 00:36:42.114 --> 00:36:43.795 first theme out in like three months. 00:36:43.835 --> 00:36:45.076 It took like ten months. 00:36:45.675 --> 00:36:50.579 Because it's funny how much work goes into 00:36:50.840 --> 00:36:53.661 making sure your themes can support almost 00:36:53.742 --> 00:36:57.704 anything that the kitchen sink. 00:36:59.184 --> 00:37:01.246 But now we have this whole design system. 00:37:02.206 --> 00:37:03.427 We have a system behind everything. 00:37:03.467 --> 00:37:05.429 So it's really easy to kind of turn 00:37:05.449 --> 00:37:06.329 around new themes. 00:37:07.152 --> 00:37:09.496 at this point, but what we're, um, 00:37:10.438 --> 00:37:11.539 I guess the answer to your question, 00:37:11.559 --> 00:37:12.601 but I guess where I'm going with this 00:37:12.661 --> 00:37:13.001 is like, 00:37:13.182 --> 00:37:15.385 currently we're kind of working on, uh, 00:37:15.445 --> 00:37:16.909 making sure we have full support for 00:37:16.929 --> 00:37:17.590 Drupal canvas, 00:37:17.670 --> 00:37:19.172 which is that next gen page builder. 00:37:19.192 --> 00:37:20.494 That's going to come out in about a 00:37:20.554 --> 00:37:20.735 month. 00:37:22.335 --> 00:37:23.275 Yeah, tell me about, 00:37:23.735 --> 00:37:26.376 so I've been sort of watching the 00:37:26.496 --> 00:37:32.400 evolution of Drupal CMS since, well, 00:37:32.460 --> 00:37:34.641 I guess since January this year, 00:37:34.742 --> 00:37:36.302 pretty much. 00:37:36.844 --> 00:37:39.844 And I went back before I went to 00:37:39.885 --> 00:37:42.726 DrupalCon in Atlanta, 00:37:43.507 --> 00:37:45.568 I went back and I watched Dries' last 00:37:45.628 --> 00:37:47.230 two keynotes before that. 00:37:48.269 --> 00:37:50.251 And I watched the one from Vienna this 00:37:50.311 --> 00:37:51.751 last couple weeks. 00:37:53.632 --> 00:37:56.134 And I remember when I was in Atlanta 00:37:56.273 --> 00:37:58.576 and he was showing what was then referred 00:37:58.615 --> 00:37:59.876 to as Experience Builder, 00:37:59.896 --> 00:38:01.036 which is now Drupal Canvas. 00:38:01.996 --> 00:38:05.119 I was like... I tweeted... Actually, 00:38:05.358 --> 00:38:06.400 it's not tweeting if you do it on 00:38:06.420 --> 00:38:06.920 Blue Sky. 00:38:07.139 --> 00:38:08.181 It's like bloot. 00:38:08.240 --> 00:38:08.721 I don't know. 00:38:10.581 --> 00:38:12.483 I posted on Blue Sky that... 00:38:13.427 --> 00:38:16.969 this looks like the thing that Gutenberg 00:38:16.989 --> 00:38:18.590 should have been all along. 00:38:19.530 --> 00:38:24.213 I was so incredibly impressed by what 00:38:24.333 --> 00:38:26.713 looked to be way more intuitive, 00:38:26.773 --> 00:38:28.835 way easier to use. 00:38:28.894 --> 00:38:32.056 And I've played with and installed Drupal 00:38:32.097 --> 00:38:35.699 CMS, and I fully believe... In fact, 00:38:35.719 --> 00:38:37.059 I wrote a blog post on the Pantheon 00:38:37.079 --> 00:38:37.820 blog about this. 00:38:38.260 --> 00:38:39.561 I fully believe that that is... 00:38:41.226 --> 00:38:43.307 a thousand times better experience, 00:38:44.289 --> 00:38:46.311 first-time user experience for installing 00:38:47.052 --> 00:38:49.195 a CMS than WordPress. 00:38:49.496 --> 00:38:50.856 And part of that has to do with 00:38:50.916 --> 00:38:52.739 like, it's more of like a guided install. 00:38:52.820 --> 00:38:53.920 It's asking you questions, 00:38:53.940 --> 00:38:56.963 but also it's asking you like, 00:38:58.346 --> 00:39:00.987 what type of site you want to create. 00:39:01.409 --> 00:39:02.909 And most, 00:39:03.411 --> 00:39:06.813 like every other CMS I've ever installed 00:39:06.833 --> 00:39:08.916 just gives you a bunch of form fields. 00:39:09.476 --> 00:39:10.777 And it doesn't ask you the question, 00:39:10.818 --> 00:39:11.798 what are you trying to build? 00:39:12.500 --> 00:39:14.440 And so because of that, 00:39:15.021 --> 00:39:17.923 uh you never ask the question of yourself 00:39:18.465 --> 00:39:20.065 what type of website are you trying to 00:39:20.085 --> 00:39:21.266 build you just kind of like oh well 00:39:21.286 --> 00:39:22.547 i'm just going to click a couple buttons 00:39:22.568 --> 00:39:23.547 and then i have a website and then 00:39:23.608 --> 00:39:25.188 i'm just going to do stuff right like 00:39:25.228 --> 00:39:26.250 but you never actually have to 00:39:26.309 --> 00:39:28.391 intentionally like come up with like no 00:39:28.472 --> 00:39:30.092 what am i actually trying to create and 00:39:30.112 --> 00:39:31.393 i thought that that was a really uh 00:39:31.414 --> 00:39:33.956 a really good like just like just slow 00:39:33.996 --> 00:39:36.016 down and like make this the process a 00:39:36.036 --> 00:39:37.619 little bit more more user friendly and 00:39:37.639 --> 00:39:39.820 then also when it when it installs like 00:39:39.880 --> 00:39:40.420 i feel like 00:39:41.061 --> 00:39:42.422 Like the user interface, 00:39:42.442 --> 00:39:44.922 which in the past for me as somebody 00:39:44.943 --> 00:39:46.563 who is more familiar with WordPress, 00:39:46.583 --> 00:39:48.485 the user interface and the Drupal admin is 00:39:49.045 --> 00:39:52.086 very complex and hard for me to navigate 00:39:52.126 --> 00:39:53.367 and know where all the stuff is. 00:39:53.427 --> 00:39:55.047 And it feels better. 00:39:55.088 --> 00:39:56.528 And maybe it's just because it looks more 00:39:56.568 --> 00:39:57.650 like the WordPress admin. 00:39:57.690 --> 00:39:58.050 I don't know. 00:39:58.750 --> 00:40:00.612 But it feels better for me to like 00:40:00.733 --> 00:40:02.235 in the Drupal CMS admin. 00:40:02.795 --> 00:40:04.277 I don't know, 00:40:04.317 --> 00:40:05.539 maybe just because stuff is on the left, 00:40:05.579 --> 00:40:05.878 I guess. 00:40:06.579 --> 00:40:06.860 But like, 00:40:06.880 --> 00:40:08.121 it feels like it's easier for me to 00:40:08.161 --> 00:40:08.963 navigate. 00:40:08.983 --> 00:40:10.324 So I guess my question is like, 00:40:11.306 --> 00:40:12.387 somewhere in here is the question, 00:40:12.427 --> 00:40:15.510 I think, which is like, 00:40:16.452 --> 00:40:17.974 Where do you see, like, 00:40:18.014 --> 00:40:22.376 do you believe that capturing the sort of 00:40:22.597 --> 00:40:24.177 mid-market or that first time user 00:40:24.217 --> 00:40:28.942 experience will be like the changing point 00:40:29.041 --> 00:40:33.405 for driving more Drupal adoption? 00:40:33.485 --> 00:40:36.128 I mean, I would say definitely, you know, 00:40:36.188 --> 00:40:38.009 like there's a lot more mid-market stuff. 00:40:38.432 --> 00:40:42.577 than uh enterprise market you know and and 00:40:42.717 --> 00:40:44.458 and honestly to tell you the truth like 00:40:44.478 --> 00:40:46.420 the enterprise people want the same crap 00:40:46.480 --> 00:40:48.181 as the mid-market people for for the most 00:40:48.240 --> 00:40:49.282 part you know they want to be able 00:40:49.322 --> 00:40:52.184 to assemble pages without having to like 00:40:52.224 --> 00:40:53.846 you know have a post-doctorate or 00:40:53.885 --> 00:40:57.588 something like that you know um like you 00:40:57.608 --> 00:40:59.090 know like i don't know if you're familiar 00:40:59.110 --> 00:40:59.911 with like um 00:41:00.474 --> 00:41:03.717 Adobe enterprise, uh, yeah. 00:41:04.117 --> 00:41:04.478 Yeah. 00:41:04.577 --> 00:41:04.858 Yeah. 00:41:04.878 --> 00:41:05.057 Yeah. 00:41:05.338 --> 00:41:06.259 Yeah. 00:41:06.298 --> 00:41:07.960 Like they have like nice drag and drop 00:41:07.981 --> 00:41:09.521 stuff, but they don't do what Drupal does, 00:41:09.621 --> 00:41:10.101 you know? 00:41:10.943 --> 00:41:12.664 And, but, but they ended up, 00:41:12.704 --> 00:41:13.744 they ended up selling, 00:41:14.105 --> 00:41:15.505 selling their product based on like 00:41:15.545 --> 00:41:18.027 showing that drag and drop stuff to the 00:41:18.068 --> 00:41:20.369 marketers and the marketers, you know, 00:41:21.090 --> 00:41:22.811 get super excited about that because it's 00:41:22.831 --> 00:41:24.373 pretty sexy, you know? 00:41:24.952 --> 00:41:26.233 And, and, and if, if, 00:41:26.373 --> 00:41:28.096 if we can match that and surpass it, 00:41:28.115 --> 00:41:29.896 which I believe we will, like, 00:41:30.300 --> 00:41:31.481 that's going to be a big deal, 00:41:31.961 --> 00:41:32.362 you know? 00:41:32.523 --> 00:41:32.623 And, 00:41:32.802 --> 00:41:34.063 and the same thing with like Gutenberg, 00:41:34.103 --> 00:41:38.347 like, like, like Canvas is built by, 00:41:38.708 --> 00:41:40.809 by looking at the lessons from everything, 00:41:40.849 --> 00:41:41.289 you know, 00:41:41.570 --> 00:41:43.710 from things like Gutenberg and AM and, 00:41:43.871 --> 00:41:45.532 and almost every other page builder out 00:41:45.552 --> 00:41:48.235 there, they were all evaluated as, 00:41:48.614 --> 00:41:50.396 as these technical requirements started 00:41:50.436 --> 00:41:53.318 coming in for Drupal Canvas, you know? 00:41:53.579 --> 00:41:55.880 And like, like, 00:41:56.539 --> 00:41:58.500 One thing that I really like, 00:41:58.659 --> 00:42:00.081 I've done a little bit of Gutenberg 00:42:00.101 --> 00:42:01.882 development under Drupal because there is 00:42:02.061 --> 00:42:03.762 a Gutenberg module for Drupal. 00:42:04.463 --> 00:42:07.304 But one thing that I really disliked about 00:42:07.483 --> 00:42:09.505 Gutenberg is you have to have almost two 00:42:09.545 --> 00:42:11.226 versions of your markup. 00:42:11.346 --> 00:42:13.226 You have to have the one that appears 00:42:13.746 --> 00:42:15.989 in the editor and the one that appears 00:42:16.289 --> 00:42:17.849 on the home page and stuff. 00:42:19.010 --> 00:42:22.351 And that's something that I 00:42:25.684 --> 00:42:26.405 with Drupal Canvas, 00:42:26.686 --> 00:42:28.266 like right now I'm in the process of, 00:42:29.007 --> 00:42:29.226 you know, 00:42:29.246 --> 00:42:30.967 making sure all of our components work 00:42:31.027 --> 00:42:31.327 well. 00:42:32.507 --> 00:42:33.929 And there's some funky things I'm having 00:42:33.949 --> 00:42:35.630 to kind of work through, but you know, 00:42:37.050 --> 00:42:38.990 it's, all this is kind of normal, 00:42:39.070 --> 00:42:39.632 but like, 00:42:40.592 --> 00:42:42.072 I add like an additional setting, 00:42:42.132 --> 00:42:43.532 like a prop or, you know, 00:42:43.572 --> 00:42:45.134 a slot and it just shows, it just, 00:42:45.333 --> 00:42:46.614 it's just like nice. 00:42:47.474 --> 00:42:47.934 And, 00:42:48.235 --> 00:42:50.255 and it's like to develop your experiences 00:42:50.336 --> 00:42:51.416 getting right up there. 00:42:51.817 --> 00:42:53.498 And then like coming back, 00:42:54.474 --> 00:42:57.155 from previous drupal page builders which 00:42:57.235 --> 00:42:58.934 was honestly a lot of them are like 00:42:59.476 --> 00:43:01.376 really kind of rough unless you did a 00:43:01.416 --> 00:43:03.056 lot of manual work like you can make 00:43:03.077 --> 00:43:05.157 these page builders awesome but that 00:43:05.177 --> 00:43:08.119 requires you know a person who knows what 00:43:08.139 --> 00:43:09.498 they're doing to install a bunch of 00:43:09.559 --> 00:43:13.199 modules configure them just so you know um 00:43:13.239 --> 00:43:14.820 but just like right out of the box 00:43:14.880 --> 00:43:16.541 it's just like nice you start dragging 00:43:16.581 --> 00:43:18.961 stuff you start copying and pasting stuff 00:43:19.362 --> 00:43:21.503 everything it updates on the fly 00:43:22.355 --> 00:43:24.295 There's a nice preview button. 00:43:25.135 --> 00:43:28.137 There's all these things that just feel 00:43:28.197 --> 00:43:29.036 very intuitive. 00:43:31.516 --> 00:43:32.318 So it's nice. 00:43:32.878 --> 00:43:35.398 And there's still a little rough edges. 00:43:35.557 --> 00:43:38.179 I go in there and I'm filing bugs. 00:43:38.898 --> 00:43:40.599 I find stuff and I'm filing bugs because 00:43:40.619 --> 00:43:41.500 it's not stable yet. 00:43:42.280 --> 00:43:45.860 But it's like head and shoulders above. 00:43:46.893 --> 00:43:47.193 you know, 00:43:47.275 --> 00:43:49.898 anything else that Drupal's done before. 00:43:50.257 --> 00:43:52.581 And, like, as far as, like, 00:43:54.222 --> 00:43:55.644 I like it better than Gutenberg, too, 00:43:55.684 --> 00:43:59.329 although Gutenberg, to tell you the truth, 00:43:59.369 --> 00:43:59.530 like, 00:43:59.570 --> 00:44:00.811 it's going to be interesting to see how 00:44:00.831 --> 00:44:03.875 that works out, you know? 00:44:03.954 --> 00:44:05.137 Yeah, I... 00:44:07.181 --> 00:44:09.302 So I've been in the last year or 00:44:09.362 --> 00:44:11.963 so been playing a lot more. 00:44:12.143 --> 00:44:15.405 So as Gutenberg has developed in the 00:44:15.425 --> 00:44:16.585 WordPress ecosystem, 00:44:16.766 --> 00:44:19.307 it's extended to be more than just like 00:44:19.327 --> 00:44:21.969 the block editor in content stuff. 00:44:22.849 --> 00:44:25.411 expanded to do more site editing things. 00:44:26.231 --> 00:44:28.431 The site that this podcast is, 00:44:29.092 --> 00:44:30.032 is the website, 00:44:30.052 --> 00:44:33.552 the Community & Code website is just a 00:44:33.612 --> 00:44:36.512 twenty twenty five like default theme and 00:44:36.632 --> 00:44:39.514 a bunch of customizations in the full site 00:44:39.574 --> 00:44:41.494 editor to change the different layouts for 00:44:41.514 --> 00:44:43.914 the different pages and the episodes and 00:44:43.934 --> 00:44:44.255 whatever. 00:44:44.295 --> 00:44:47.275 Like so like I can do a lot 00:44:47.315 --> 00:44:47.896 of stuff 00:44:48.476 --> 00:44:51.336 just using the tools that are core without 00:44:51.376 --> 00:44:54.719 having to build a theme at all or 00:44:54.739 --> 00:44:55.559 think about that anymore, 00:44:55.579 --> 00:44:56.599 which is pretty impressive. 00:44:56.800 --> 00:44:57.880 It didn't used to be like that. 00:44:59.360 --> 00:45:01.581 But it took a long time to get 00:45:01.601 --> 00:45:02.121 to that point. 00:45:02.161 --> 00:45:03.822 And for a long time, it was like, 00:45:04.811 --> 00:45:09.434 there's a lot of limitations that I was 00:45:09.534 --> 00:45:12.496 running up against and like, oh, 00:45:12.635 --> 00:45:13.657 I don't know how to do this thing, 00:45:13.697 --> 00:45:16.057 or I just need to change a line 00:45:16.097 --> 00:45:17.778 of CSS to fix this other problem, 00:45:17.818 --> 00:45:18.159 whatever. 00:45:19.079 --> 00:45:20.481 And it took a lot to get to 00:45:20.521 --> 00:45:22.061 the point where it is now. 00:45:23.161 --> 00:45:24.922 But it does seem like... I mean, 00:45:25.483 --> 00:45:26.983 demos aren't live. 00:45:28.184 --> 00:45:30.443 And so the proof is in the pudding 00:45:30.463 --> 00:45:31.543 when you actually start to use it. 00:45:31.563 --> 00:45:34.784 But what I've seen of Drupal Canvas, 00:45:35.465 --> 00:45:37.565 it feels like it's a better... 00:45:38.126 --> 00:45:42.547 It's further along that timeline to a 00:45:42.847 --> 00:45:44.228 usable thing than... 00:45:45.148 --> 00:45:46.809 a lot of the stuff that has been 00:45:46.989 --> 00:45:50.289 in WordPress core for the last couple 00:45:50.329 --> 00:45:52.391 years and then iterate it on to get 00:45:52.411 --> 00:45:53.391 to the point where it is now. 00:45:54.972 --> 00:45:56.391 Yeah, I can't really speak to like... 00:46:00.313 --> 00:46:02.293 I don't know WordPress nearly as well as 00:46:02.353 --> 00:46:04.614 you, and I haven't used it recently, 00:46:04.695 --> 00:46:06.436 so I can't really speak to how it 00:46:06.456 --> 00:46:09.496 feels compared to modern Gutenberg. 00:46:09.817 --> 00:46:11.597 Most of my Gutenberg experience comes 00:46:11.637 --> 00:46:11.918 within 00:46:12.713 --> 00:46:14.974 the context of drupal which is not not 00:46:15.034 --> 00:46:17.958 the correct specific flavor yeah yeah yeah 00:46:18.097 --> 00:46:20.199 yeah and i i can tell you that 00:46:20.300 --> 00:46:23.302 like there are some some things in drupal 00:46:23.322 --> 00:46:26.425 canvas that like you know need to be 00:46:26.465 --> 00:46:28.327 worked on and sure and i've been filing 00:46:28.367 --> 00:46:31.331 bugs and pinging the appropriate people in 00:46:31.411 --> 00:46:33.211 slack which i'm pretty sure they're 00:46:33.231 --> 00:46:35.835 probably you know oh oh crap here's 00:46:35.875 --> 00:46:37.976 herschel again you know but um 00:46:39.168 --> 00:46:40.329 But at the same time, 00:46:40.349 --> 00:46:41.849 a number of the bugs I found have 00:46:41.869 --> 00:46:45.592 become release blockers and things like 00:46:45.612 --> 00:46:45.771 that. 00:46:45.791 --> 00:46:46.411 And that helps. 00:46:46.992 --> 00:46:51.594 So it's going to take iteration. 00:46:52.094 --> 00:46:58.076 I think the success or failure on Canvas 00:46:58.376 --> 00:47:00.436 is going to be how it feels. 00:47:01.702 --> 00:47:02.744 How intuitive is it? 00:47:02.844 --> 00:47:03.625 How it feels? 00:47:03.905 --> 00:47:06.306 How many paper cuts are there? 00:47:06.346 --> 00:47:08.266 We can deal with a couple paper cuts, 00:47:08.286 --> 00:47:09.788 but if there's too many paper cuts, 00:47:09.807 --> 00:47:11.648 it starts to get really, really annoying. 00:47:14.251 --> 00:47:15.050 And on top of that, 00:47:15.451 --> 00:47:20.014 how well developers can extend it. 00:47:20.434 --> 00:47:23.795 If I want to inject XYZ or something 00:47:23.856 --> 00:47:28.139 in there into the editorial interface, 00:47:28.833 --> 00:47:30.295 How easy can I do that? 00:47:30.815 --> 00:47:33.056 Yeah, 00:47:33.277 --> 00:47:35.219 that's actually a really good point and 00:47:35.239 --> 00:47:36.579 something that I want to talk about too. 00:47:36.619 --> 00:47:37.800 And I know we're getting close to time, 00:47:37.820 --> 00:47:38.902 but I want to still throw this in 00:47:38.942 --> 00:47:44.065 because one of the things about that when 00:47:44.126 --> 00:47:46.909 Gutenberg development started forced 00:47:47.409 --> 00:47:51.572 WordPress developers to learn was the fact 00:47:51.592 --> 00:47:51.753 that 00:47:52.193 --> 00:47:52.793 Gutenberg, 00:47:53.193 --> 00:47:55.317 the decision was made very early on to 00:47:55.376 --> 00:47:56.898 make it a React interface. 00:47:56.938 --> 00:47:58.960 And so that meant that not only did 00:47:59.601 --> 00:48:01.304 WordPress developers need to learn 00:48:01.364 --> 00:48:01.884 JavaScript, 00:48:01.903 --> 00:48:03.365 but they also needed to specifically learn 00:48:03.385 --> 00:48:03.766 React. 00:48:04.106 --> 00:48:06.909 And the learning curve, like... 00:48:08.492 --> 00:48:10.994 Having played with React a little bit... 00:48:11.074 --> 00:48:13.576 I mean, not before Gutenberg, obviously. 00:48:13.956 --> 00:48:14.336 Why would I? 00:48:15.657 --> 00:48:16.898 But having played with it since, 00:48:17.099 --> 00:48:21.842 I do like using React coming from a 00:48:21.882 --> 00:48:23.403 PHP background because it makes a little 00:48:23.423 --> 00:48:25.126 bit more sense to my brain. 00:48:25.565 --> 00:48:27.128 But there's definitely a learning curve 00:48:27.148 --> 00:48:27.407 there. 00:48:28.688 --> 00:48:31.932 Talk about the developer experience for 00:48:32.012 --> 00:48:33.213 building things for Canvas, 00:48:33.233 --> 00:48:34.275 because as I understand it, 00:48:34.295 --> 00:48:35.996 it's not that same sort of like you 00:48:36.016 --> 00:48:37.699 need to learn a fundamentally different 00:48:37.798 --> 00:48:39.239 language anymore. 00:48:39.360 --> 00:48:40.300 Yeah, yeah. 00:48:40.420 --> 00:48:42.483 So if I want to create a component 00:48:42.643 --> 00:48:44.264 that works in and outside of Canvas, 00:48:44.405 --> 00:48:46.728 it's the same as creating a component 00:48:47.027 --> 00:48:47.768 outside of Canvas. 00:48:48.358 --> 00:48:48.699 You know, 00:48:48.820 --> 00:48:51.684 so I mentioned that Drupal has this 00:48:51.764 --> 00:48:54.206 concept of direct components, 00:48:55.489 --> 00:48:56.469 which are called single directory 00:48:56.510 --> 00:48:56.911 components. 00:48:56.951 --> 00:48:58.492 And basically, like within your theme, 00:48:58.512 --> 00:48:59.655 you have a component directory. 00:49:00.135 --> 00:49:02.217 And within that component directory, 00:49:02.237 --> 00:49:04.581 you have a directory for every single 00:49:04.621 --> 00:49:05.021 component. 00:49:06.221 --> 00:49:08.342 uh and there's two mandatory files for 00:49:08.402 --> 00:49:10.641 your component there's a twig file which 00:49:10.702 --> 00:49:12.862 is which is like the markup language that 00:49:12.882 --> 00:49:16.423 drupal uses it's like standard html and 00:49:16.443 --> 00:49:18.483 then some curly brackets you can put for 00:49:18.543 --> 00:49:19.824 loops and all that type of stuff in 00:49:19.844 --> 00:49:22.784 there and then there's a the 00:49:22.824 --> 00:49:24.626 component.yaml file the component.yaml 00:49:24.646 --> 00:49:26.365 file will say hey this is a component 00:49:26.425 --> 00:49:30.146 and then it'll also list the um 00:49:30.815 --> 00:49:32.257 type of data that that Twig file is 00:49:32.297 --> 00:49:32.817 expecting. 00:49:32.936 --> 00:49:33.958 You know, so you say like, 00:49:34.018 --> 00:49:35.057 I'm going to have a title, 00:49:35.217 --> 00:49:37.139 it's going to be a string and, 00:49:37.219 --> 00:49:39.360 you know, you can call it, you know, 00:49:39.920 --> 00:49:41.561 title or something, you know, or, 00:49:41.601 --> 00:49:42.382 you know, I'm going to have this, 00:49:43.021 --> 00:49:45.302 you know, portrait landscape checkbox, 00:49:45.583 --> 00:49:47.264 you see Boolean, you know, 00:49:47.344 --> 00:49:48.545 I have an array, all the, 00:49:48.605 --> 00:49:49.364 all this type of stuff. 00:49:49.405 --> 00:49:49.706 Right. 00:49:50.405 --> 00:49:51.967 And so, 00:49:52.226 --> 00:49:54.407 so it describes what the Twig file is 00:49:54.447 --> 00:49:54.907 expecting. 00:49:55.387 --> 00:49:56.429 And then you have a couple of optional 00:49:56.449 --> 00:49:56.728 files. 00:49:56.748 --> 00:49:58.070 You can have a CSS file in there. 00:49:58.449 --> 00:50:00.110 You can have a JavaScript file in there 00:50:00.170 --> 00:50:00.590 if, if, 00:50:00.940 --> 00:50:01.842 If it sees those, 00:50:01.902 --> 00:50:04.802 it'll automatically be loaded whenever the 00:50:04.822 --> 00:50:05.684 component is loaded. 00:50:06.143 --> 00:50:07.485 And you can also like put into the 00:50:07.505 --> 00:50:08.666 YAML file, you know, 00:50:08.706 --> 00:50:11.726 stuff for additional CSS files or, 00:50:12.427 --> 00:50:14.949 you know, dependencies on other type of, 00:50:15.289 --> 00:50:17.411 you know, stuff too, if you want. 00:50:19.030 --> 00:50:21.652 So at that point, you have a directory, 00:50:21.672 --> 00:50:23.693 I mean, a single directory component. 00:50:24.554 --> 00:50:28.597 And as soon as Canvas sees that single 00:50:28.637 --> 00:50:30.358 directory component, it'll be available. 00:50:31.432 --> 00:50:31.592 Now, 00:50:31.612 --> 00:50:33.173 if something is screwed up in the YAML 00:50:33.193 --> 00:50:33.715 file, 00:50:33.994 --> 00:50:36.137 like let's say like you got your YAML 00:50:36.217 --> 00:50:37.697 indentation incorrect or something like 00:50:37.717 --> 00:50:37.938 that, 00:50:37.958 --> 00:50:39.139 what's this kind of cool is you can 00:50:39.159 --> 00:50:40.599 go to like a little reports page, 00:50:41.061 --> 00:50:42.141 find your component in there and it'll 00:50:42.161 --> 00:50:43.483 tell you exactly what's wrong with it, 00:50:43.503 --> 00:50:44.943 which is super nice from a development 00:50:44.983 --> 00:50:45.603 experience. 00:50:46.784 --> 00:50:50.128 Um, but once that component is, 00:50:50.628 --> 00:50:53.110 is there and it's working, uh, 00:50:53.751 --> 00:50:56.132 like Drupal will know, Hey, 00:50:56.552 --> 00:50:58.235 this is a string. 00:50:59.215 --> 00:51:00.777 Uh, so I'm going to put a. 00:51:01.518 --> 00:51:03.099 you know, a little text field in there, 00:51:03.621 --> 00:51:04.840 you know, and you, and there's some other, 00:51:05.322 --> 00:51:06.402 uh, like stuff in your Yammer, 00:51:06.422 --> 00:51:07.422 you can add to say like, 00:51:07.463 --> 00:51:09.063 I want to load a rich text editor, 00:51:09.244 --> 00:51:10.505 you know, and there's, 00:51:10.706 --> 00:51:11.826 there's some stuff in there that says 00:51:11.846 --> 00:51:13.146 this, you know, you can say, 00:51:13.166 --> 00:51:14.467 this is an object and it's going to 00:51:14.487 --> 00:51:15.449 accept, you know, 00:51:15.509 --> 00:51:16.730 this is going to be an image. 00:51:16.809 --> 00:51:18.771 So that'll give you like a little widget 00:51:18.791 --> 00:51:19.632 to browse to, 00:51:19.751 --> 00:51:21.413 to an image load under your media library 00:51:21.432 --> 00:51:23.213 and stuff like that, you know, 00:51:23.253 --> 00:51:25.155 and at that point it kind of, it's, 00:51:25.275 --> 00:51:26.117 it's kind of works. 00:51:26.396 --> 00:51:26.597 So. 00:51:27.311 --> 00:51:29.413 the development experience for creating 00:51:29.452 --> 00:51:31.434 components is pretty, pretty good. 00:51:31.635 --> 00:51:33.255 There's a couple of rough edges, 00:51:33.576 --> 00:51:34.197 like a couple, 00:51:34.597 --> 00:51:35.898 and these are being worked on, you know, 00:51:35.918 --> 00:51:36.438 and I'm like, 00:51:36.918 --> 00:51:37.938 I'm totally on top of that. 00:51:38.840 --> 00:51:40.061 Um, 00:51:40.101 --> 00:51:42.202 but even the rough edges have workarounds, 00:51:42.362 --> 00:51:43.523 you know, and, and like, 00:51:43.802 --> 00:51:45.563 if you go to the drip yard blog 00:51:45.603 --> 00:51:45.903 and stuff, 00:51:45.923 --> 00:51:47.686 I actually blog about this type of stuff 00:51:47.706 --> 00:51:49.827 because it's kind of, it's kind of fun, 00:51:50.086 --> 00:51:50.947 you know, it's fun to, 00:51:51.547 --> 00:51:53.309 to like solve these problems as I'm doing 00:51:53.329 --> 00:51:55.451 this and, you know, um, 00:51:57.132 --> 00:51:58.552 As far as the development experience of 00:51:58.612 --> 00:52:01.554 extending the actual editorial interface, 00:52:02.094 --> 00:52:03.074 that's a good question. 00:52:03.134 --> 00:52:04.795 Like, I haven't done that, you know? 00:52:05.974 --> 00:52:06.295 Like, 00:52:06.815 --> 00:52:08.815 Dripyard's editorial interface is built 00:52:08.896 --> 00:52:09.635 within React. 00:52:10.056 --> 00:52:11.376 But that being said, like, 00:52:12.275 --> 00:52:15.277 when Gutenberg was, you know, started, 00:52:15.416 --> 00:52:17.257 what was this, probably like five, six, 00:52:17.297 --> 00:52:18.737 seven years ago or something like that, 00:52:19.978 --> 00:52:20.498 React, 00:52:21.099 --> 00:52:22.539 a lot more people know React than they 00:52:22.559 --> 00:52:23.059 did back then. 00:52:23.503 --> 00:52:27.748 You know, like React was common back then, 00:52:27.768 --> 00:52:29.190 but it's much more common right now. 00:52:29.829 --> 00:52:30.490 So like, 00:52:30.570 --> 00:52:32.172 I feel that people will be able to 00:52:32.193 --> 00:52:34.635 kind of jump in there and get into 00:52:34.695 --> 00:52:34.815 it. 00:52:35.135 --> 00:52:37.677 But that being said, like, you know, 00:52:37.737 --> 00:52:39.539 people have not yet because it's not 00:52:39.579 --> 00:52:40.760 technically stable right now. 00:52:40.780 --> 00:52:42.222 Like as of the time of this recording, 00:52:42.282 --> 00:52:44.025 it's a release can't like RC one, 00:52:44.045 --> 00:52:44.985 RC two or something like that. 00:52:45.025 --> 00:52:45.365 Right. 00:52:45.485 --> 00:52:46.487 Yeah. 00:52:47.211 --> 00:52:48.432 Yeah, but I mean, that's interesting, 00:52:48.472 --> 00:52:48.652 though, 00:52:48.672 --> 00:52:50.775 because fundamentally what I'm hearing is 00:52:50.956 --> 00:52:52.896 if you want to build something that can 00:52:52.936 --> 00:52:54.298 be used by Canvas, 00:52:54.699 --> 00:52:56.501 you don't have to learn a completely 00:52:56.541 --> 00:52:57.041 different language. 00:52:57.061 --> 00:52:58.121 And I think that that's huge. 00:52:58.141 --> 00:53:00.784 I think that's a really big thing that 00:53:02.186 --> 00:53:03.166 Canvas has going for it. 00:53:03.447 --> 00:53:06.047 and like you said like even even beyond 00:53:06.088 --> 00:53:10.329 that the the developer ecosystem today for 00:53:10.668 --> 00:53:12.650 people who know react or people who have 00:53:12.670 --> 00:53:14.230 encountered react is probably a lot 00:53:14.349 --> 00:53:16.630 broader and bigger than it was five or 00:53:16.650 --> 00:53:18.152 six years ago when we were talking about 00:53:18.331 --> 00:53:19.751 uh whether we were going to use reactor 00:53:19.811 --> 00:53:22.132 view to put into to build gutenberg on 00:53:22.172 --> 00:53:24.472 top of so yeah absolutely so like just 00:53:24.534 --> 00:53:25.713 the ecosystem is different 00:53:26.954 --> 00:53:27.235 Yeah, well, 00:53:27.255 --> 00:53:29.034 thank you so much for coming on, Mike. 00:53:29.235 --> 00:53:32.697 I appreciate learning about Drupal and 00:53:32.896 --> 00:53:34.818 having this extremely interesting 00:53:34.878 --> 00:53:37.418 conversation comparing CMSs. 00:53:38.860 --> 00:53:40.780 Where can people find you if they're 00:53:40.800 --> 00:53:41.721 looking for you online? 00:53:42.681 --> 00:53:43.481 That's a good question. 00:53:43.561 --> 00:53:46.163 So my website is herschel.com, 00:53:46.202 --> 00:53:47.563 and that's spelled with a C like there's 00:53:47.603 --> 00:53:48.463 no S's in there. 00:53:48.503 --> 00:53:49.905 So H-E-R-C-H-E-L.com. 00:53:50.773 --> 00:53:52.215 Dripyard.com is my company. 00:53:52.275 --> 00:53:53.574 If you're into Drupal, 00:53:53.755 --> 00:53:55.376 check out our blog and, you know, 00:53:55.416 --> 00:53:56.215 buy our stuff. 00:53:56.775 --> 00:54:01.617 I'm on like blueskyatmike.herschel.com and 00:54:01.677 --> 00:54:02.677 I'm on master. 00:54:02.697 --> 00:54:03.217 You can, 00:54:03.838 --> 00:54:05.119 I'm on like most of the things. 00:54:05.559 --> 00:54:06.260 Oh, on LinkedIn, 00:54:06.420 --> 00:54:08.659 I am Mike Herschel's disembodied head and 00:54:08.679 --> 00:54:10.460 it has like my head floating right there. 00:54:11.300 --> 00:54:13.481 And people have like come up to me 00:54:13.521 --> 00:54:15.063 at conferences like you're the disembodied 00:54:15.103 --> 00:54:15.282 head. 00:54:15.302 --> 00:54:15.402 Yeah. 00:54:15.762 --> 00:54:17.844 Hello, Mr. Disembodied Head. 00:54:17.864 --> 00:54:18.023 Yep, yep. 00:54:20.275 --> 00:54:20.536 Awesome. 00:54:20.675 --> 00:54:21.757 Well, thank you so much, Mike, 00:54:21.797 --> 00:54:23.878 again for coming on and for everyone else 00:54:24.599 --> 00:54:27.739 for listening either now or in the future 00:54:27.780 --> 00:54:30.802 if you're coming across this episode at 00:54:30.822 --> 00:54:32.063 some distant point in the future. 00:54:32.983 --> 00:54:34.284 And until next time, 00:54:34.603 --> 00:54:35.684 we'll see you on the internet. 00:54:35.724 --> 00:54:36.485 All right. 00:54:36.505 --> 00:54:36.945 Bye, everybody.