Talking Drupal #524 - SDC with Drupal Easy

October 13, 2025

Today we are talking about Single Directory Components, Leveling up your skills, and How DrupalEasy can help with our guest Mike Anello. We’ll also cover Markdown Easy as our module of the week.

Listen:

direct Link

Topics

  • Discussion on Single Directory Components
  • Drupal Easy's Training Programs
  • Light Bulb Moments in Learning
  • Choosing Post CSS for Front-End Development
  • Course Materials and Updates
  • Course Structure and Student Engagement
  • Introducing the Show and Tell Series
  • Brief description:
    • Have you ever wanted an easy way to use Markdown to write content in your Drupal site? There’s a module for that.
  • Module name/project name:
  • Brief history
    • How old: created in July 2023 by Michael Anello (ultimike) of Drupal Easy
  • Versions available: 1.0.1 and 2.0.0, both of which work with Drupal 9 or later
  • Maintainership
    • Actively maintained
    • Security coverage
    • Test coverage
    • Documentation guide available
    • Number of open issues: 9 open issues, none of which are bugs against the 2.x branch
  • Usage stats:
    • 556 sites
  • Module features and usage
    • For anyone who doesn’t know, Markdown is a popular, lightweight markup language for creating formatted text using a plain-text editor. Initially defined in 2004, Markdown grew out of existing conventions for formatting text in emails and usenet posts
    • People like writing in Markdown because it allows them to focus on what’s being said without the distraction of concerns about how it will look
    • With the Markdown Easy module installed, your Drupal site will now have a Markdown Easy text format available. Within the settings for that format, you can choose "Standard Markdown", "GitHub-flavored Markdown", or "Markdown Smörgåsbord" as the variant of Markdown syntax you want to use. Standard Markdown is the most restrictive, and the other two allow more elements to be included. You can also configure which HTML tags you want to allow, as part of the normal text format configuration.
    • It’s worth noting that Dries has posted a couple of blogs about using this module, the more recent about working with Mike to better handle HTML tags. So Mike, what inspired you to write this module, and what can you tell us about the experience of collaborating with Dries?
Transcript

 

Nic: This is Talking Drupal, a weekly chat about web design and development from a group of people with one thing in common. We love Drupal. This is episode 524, single directory components with Drupal Easy. On today's show, we are talking about single directory components, leveling up your skills and how Drupal Easy can help with our guest, Mike Anello.

We'll also cover Markdown Easy as our module of the week. Welcome to Talking Drupal. Our guest today is Mike Anello by Via Claude. Mike is co-founder and vice president of Drupal Easy, a Drupal training consulting firm based in central Florida, where he has been developing Drupal sites since 2007 and developed one of the first long form Drupal career training programs.

Drupal career online. He has been an integral part of the Drupal community for nearly 20 years. In in 2024, he was honored with the Aaron Win Born Award for personal integrity, kindness and above, and the beyond commitment to the Drupal project and community. He spends his days working with clients as well as teaching long form Drupal training classes, including professional module development and professional single directory components.

Mike, welcome back to the show and thank you for joining us.

Mike: Always fun to be here. Thanks for having me back.

Nic: I'm Nick, founder nLightened Development at today my are Hayden ba head marketing dragon at Hero Devs.

Also joining us, Stephen Cross, founder and host Ed Talking Drupal, welcome back.

Mike: Hello, internet friends, the man behind the the podcast emerges.

Nic: Glad you could join us last minute, John, having to troubles today. So, it's Stephen graciously stepping in, and now to talk about our module of the week. Let's turn over to Martin Anderson, includes a principal solutions and Jean Aquia, and a maintainer of a number of Drupal modules and recipes of his own Martin Rudy offers this week.

Martin: Thanks, Nic. Have you ever wanted an easy way to use markdown to write content in your Drupal site? There's a module for that. It's called Markdown Easy, and it was created in July, 2023 by Mike Anello otherwise known as Ulta, mic of Drupal. Easy. It has 1.0, 0.1 and 2.0 versions available, both of which.

Work with Drupal nine or later is actively maintained, has security and test coverage, and a documentation guide available Does have nine open issues, none of which are bugs against the two point x branch, which is quite good considering it is officially in use by 556 sites according to drupal org. Now, for anyone who doesn't know, markdown is a popular lightweight markup language for creating formatted text using a plain text editor initially defined in 2004, markdown grew out of existing conventions for formatting, text, and emails and Usenet posts.

People like writing in markdown because it allows them to focus on what's being said without the distraction of concerns about how it will look. With the markdown easy module installed, your Drupal site will now have a markdown easy text format available within the settings for that format, you can choose standard markdown, GitHub flavored markdown, or markdown smorgasbord as the variant of markdown syntax you want to use.

Standard markdown is the most restrictive, and the other two allow more elements to be included. You can also configure which H TM L tags you want to allow as part of the normal text format configuration. It's worth noting that DRE has posted a couple of blogs about this module, the more recent about working with Mike to better handle HTML tags.

So Mike, what inspired you to write this module and what can you tell us about the experience of collaborating with Drees?

Mike: So the inspiration, and I think anyone who's used the markdown module. Dr, but that's the, the, the machine they marked down possibly overwhelmed by its just level of configuration and, and, and, and what you need to do to actually use it first time out the box.

As well as, I know for me it, it hasn't been continuously maintained. It goes and fits and spurts a little bit. So I know when I was trying to go from eight to nine, maybe there's a big lag. So, and, and I just thought it shouldn't be this hard, right? Because there's a library, there's a, there's a great common Mark library that does all the work for you.

We just need a simple Drupal wrapper around that. So that's what I did. I wanted a module, you know, personally, I use it on drupes.com and other sites. I just wanted a module that was as simple as possible, secure by default, easy to maintain. And so that's what I ended up writing. And then the collaboration with DRE was kind of, was kind of fun.

He dmd me out of the blue one day and was asking me questions about it. And you know, I I, I wanted to write this module in a way that I could reference it in some of my classes. So I, you know, definitely used best practices. It's got really good test coverage. And, you know, Drees wanted to use it.

He, he wanted to use it from a more power user standpoint and maybe remove some of the guardrails. And, you know, Drees is a pretty bright guy and he had some really good ideas for it that made sense. And in just in chatting with them about it, I, I figured out like, you know, we figured out how to implement these features without making it more complex, without, you know, adding any additional hurdles, without lowering the, the security standards that I had.

So we've implemented them and Andres was, he was an issue queue. He was reviewing stuff, he was providing comments on it. So that was great. It was, it was a fun little, you know, little experience. And now with 2.0 out if you go into issue queue and look, we're really focused on modernizing the code base.

So Nick actually just helped me the other day for Drupal Easy show and Tell, we recorded a bit where we upgraded all the hooks to object-oriented hooks. We have another issue in the queue about getting rid of annotations and moving to PHP attributes. So I'm not looking to add more features to it.

I'm just looking to make it very forward looking. Best practice focused, solid, reliable module.

Martin: I have to say, one of the things that I thought was really interesting in the one blog post by Dre was about how by design there's no actual like, configuration page for the module itself. That there are certain things that if you want to change how it works, you actually need to either go into your settings php or it sounds like there's a Dr command that you can use to sort of change a couple of those things.

So I thought that was, that was pretty interesting, especially for a module called Markdown Easy that making some of those changes is almost more of like a power user way to, to make

Mike: them, 'cause all of those changes reduce the security of the module, right? So a lot of it is about, you know, not being tied to the limit HTML filter.

So we didn't want people to get around issues, you know, who didn't know better or new to Drupal to get around issues by, just by disabling that. We wanted them to make sure they understood the consequences of disabling that. So that's why we put it behind, it's basically configuration value that doesn't have a ui.

So it's not a custom dush command, it's it's dush, you know, config set. But yeah, so it just, it, it basically unlocks it, so, okay. You know what you're doing. So I've at it, but for everyone else, secure by default.

Nic: Yeah. And so I, I, I actually heard about this module from Theres's blog post as well, and I kind of looked for the issue just to see, because I was curious about the collaboration too.

So I looked for the issue that he had worked on, and I noticed the implement Oh, oh hooks issue and, and thought I would share some tips there. And that's how I got got pulled into the show and tell which was, which was fun. Yeah. When is that episode coming out by the way?

Mike: I think you're, I think it's yours is next up.

So probably this weekend, I believe yours is number three. So we've had two out already. And don't quote me on that 'cause I've, we have three ready to go. I'm just not sure of the order. So, so

Nic: the next couple of weeks?

Mike: Yeah. Okay. Something like that. The goal is to re, to release one every week. That's the goal.

Awesome. And I recorded one with Martin, what, a couple weeks ago? Something. Yeah, I think I saw that

Nic: one's out already. Right? That one's out

Mike: Great. That one's, that one's nutty. 'cause it's on the storage entities module, which I really should have heard of by now and I hadn't heard of it, so that's one of my students brought it up to me and I looked at it, I'm like, why haven't I heard of this?

And, you know, and it's, it's Martin's, you know, Martin is one of the maintainers, so I'm like, oh, that's perfect. So I, I didn't even look at it when the student brought it up. I really brought it up in office hours. I'm like. It's a perfect example of show and tell where I'm gonna use something for the first time.

And I asked Martin and he was gracious enough to be my my guardian angel on that one. That

Martin: was, it

Mike: was fun doing

Martin: that show.

Nic: Well, thank you Martin. If folks wanted to connect or suggest a mod week, what's the best way for them to do that?

Martin: We're always happy to have lively discussions about potential candidates for the module of the week in the Talking Drupal channel of Drupal Slack.

Or folks can reach out to me directly as man clue on all of the Drupal and social platforms.

Nic: Awesome. See you next week. See you then.

And here is Arron to tell us about Drupal Camp Scotland.

Speaker: Drupal Camp Scotland is back for 2025. Join us on Friday, the 7th of November in the historic city of Edinburgh for a full day of sessions, networking and an evening social event. For more details and to get your tickets, visit the camp website at Camp Drupal Scot.

Nic: Thank you, Aaron. And this is a rare event. We have two promos. So here's Martin to tell us about the Southwestern Ontario Drupal Camp.

Speaker 2: Join us in Kitchener, Ontario, Canada for the first ever Southwestern Ontario Drupal Camp. On October 24th, we'll have a full day of informative sessions, free lunch and refreshments. Awesome networking opportunities, and more. Thanks to our generous sponsors. Admission is free. Registration is now open.

Visit ssw dot drupal canada.org for more information.

Nic: Thanks, Martin.

So let's start with kind of a high level question. Mike. Can you tell our listeners if they haven't heard about them yet, what are single directory components?

Mike: Single directory components are a way of, you know, kind of organizing your Drupal theme into individual components. And you can think about a component as a portion of your page.

Maybe it's a, a call out, maybe it's a block, maybe it's a, a heading, maybe it's a card something like that. And the idea is that everything that, that, that, that. That component needs is encapsulated in a single directory. So we're talking the template file, we're talking any JavaScript, and we're talking any CSS as well as kind of the magic that brings it all together, which is this thing called a component, that YAML file, which basically defines the schema for the props or the properties that can control that particular component.

And obviously there's a little bit more to all that, but that's, that's the gist. It's just a way of, of, of, of putting a theme together or assembling a theme with these individual building blocks or individual components that are self-contained.

Nic: I, I would go one step further that the, the component in yaml, it took me a while to realize this, but the component in YAML really is the magic.

It's what tells Absolutely. It tells Drupal what it can expect to feed into it.

Mike: Well, it allows the component to do more than. Just be embedded in the template file and show up on a page. Yeah, exactly. But I agree with you a hundred percent that the magic is in the component that you, the file.

Nic: Yeah. No, and, and I think that there's, it basically allows you to also decouple kind of display features like the way something looks from the business logic as well.

'cause it's, it's, it's self-contained in a way ahead. Yeah. And that,

Mike: it's actually one of the nice things about single directory components, and I don't know if everyone's gonna agree with this, but there's no PHP, like you can't have PHP in a single directory components. So it's a little bit liberating in my opinion.

It kind of removes that, you know, you know, here's a single directory component. But if you wanted to, you could, you know, add this or add that, you know, write this PHP code. But no, there's none of that. It's just template file. JavaScript CSS go.

Nic: And we, we've had a few shows that dive deeper into SDCs as well, so listeners can feel free to go back and, and listen to if they want a deeper dive into SDCs, we can we can put those in the show notes as well.

Stephen: I think you guys are touching on this a little bit, but why are they so popular and what are the great, you've just started to touch on the benefits. Yeah. So why would someone wanna pay attention to SDCs?

Mike: I think there's really two reasons. Yeah. Number one, 'cause there's a lot of great design tools out there that will allow you to design things component by component, you know, Figma Storybook and others.

So it's a nice, it's, it's a nice. Way of, you know, taking what a designer does in a design system and applying it to Drupal using that same like component idea of everything self-contained. So that's reason number one. I think the other reason is, you know, quite frankly Drupal Canvas Drupal Canvas is going to, it's, it's the main thing that Canvas is gonna consume is single directory components.

And I you could say the same thing about the UI Suite set of modules and that whole module ecosystem, it revolves around Drupal Canvas as the food that it consumes to display things on the page. I,

Nic: I would say there's one other thing too, and this is from personal experience and, and I think I use STCs slightly differently than most people.

Most tutorials assume you're, and even Josh generate assumes you're putting the s STC in the theme, right? And the theme actually has the magic to make the com like props don't have to actually be added. Have to be declared if it's in a theme. But for several of my clients, I've been putting them in modules which enforces that.

You have to declare every prop, every slot. You can't, you can't use it with a module without declaring those. But the other thing is, is it makes it truly portable, right? In my mind, having SEC in a theme, it's helpful, it has benefits, it's a step in the right direction, but it doesn't make it truly portable.

You can't, like, you can't, well, maybe drip yard will change this but you can't really just install a theme on a site still and just have it work, right? But if you're providing SDCs in a module, you can require that module. And because the other piece of magic is attributes. Because attributes do percolate down into different levels.

You can define certain display logic in an SDC, and it'll percolate down, like if you have a button. SD see, and that button is.

And so what I mean by percolating down is like if you have a, a button, STC and that button is, is used in multiple other SDCs, like a a card or a header or something else, you can define certain attributes on the button and they just kind of pass through. Like you can be like, Hey, this is a, a tertiary button, or secondary button or something.

And you don't, you don't have to worry about remembering when you're integrating, oh, this button is being put in this particular parent component, so we need to make sure we set this attri. No, it's just you pass the attributes in and then when the parent SDC gets it, it just depends. Whatever attribute needs to whatever at, okay, this is where overloading of terms gets a little confusing, but just says the attribute on the attribute object and it automatically percolates down and that is really powerful.

Mike: Yeah. I, I love, I, I've been a big fan of Custom Field Formatters for a long time. And you obviously implement, implement those in a, in a module or a custom module, and it's a no brainer to create a custom field formatter with a single directory component in a module these days. It's actually one of the examples that we do in, in the course that I teach,

Hayden: teach.

Well, I've, I've heard a lot about Drupal Easy just in my short time in Drupal. It seems like y'all have been a go-to name for long form Drupal education for a long time. So what are y'all specifically doing to help folks like, I guess, level up with these SDCs.

Mike: So over the summer we've launched a new two week course.

It's six half days over two weeks. So Monday, Wednesday, Friday for two weeks, I'll call it professional single directory components. And so far it's, it's going great. We beta tested it with our other long form alumni over the summer. I've run two public versions of it and a private version of it since then.

The next semester is early November and I mean, no, no, no lie, no marketing speech here, but it's actually almost sold out already, which I'm absolutely, you know, tickled by. And you know, the goal of that is basically to take people who may have heard of single directory components or may have dabbled in it, and really show them how to create them the right way.

And I kind of, I laughed earlier when Nick said that, you know, you could write a single directed component without the component YAML file. I actually, when I teach it, I basically tell our students that never create a single directed component without that component YAML file. We use, I teach the SST c develop module, which has aush command that will validate that file against your template file and make sure that everything looks good.

And you're not, you don't have any props or slots that aren't represented in one or the other. So I, I really teach like the, the right way to create them. We go, I think we cover all, if not the vast majority of every single key that's in that, that schema that, that component, that yamo file.

And it's got a number of examples. I think there's eight or nine total examples. We use AI and some of them to create. Some single directory components, and a couple of those examples are using the components that we've, we've created in class inside of Drupal Canvas, which as you can imagine, that's a very dynamic lesson because Yeah, you know, Drupal Canvas changes from, from class to class at this point.

But yeah, every, every day is

Nic: changing. Yeah. Minor, minor programming note. The, the component is always required. It's just that themes don't require you to define the props and, and slots. So you still would need, like the, I I think technically the only thing you need is the name.

Mike: Yeah. I think, yeah. Which for a while there, you just needed an empty file, but I think that's actually

Nic: makes it completely useless.

I, I think it's a good, a good strategy to just teach it as required because it's, that's really what the utility is because like Drupal Canvas won't know what to do with it if it's in a theme and doesn't have any props or slots defined,

Mike: nor will UI suite.

Nic: Yeah. So when you're putting together a new class like this, how are you.

How are you making, like SDCs are still relatively new, they've only been around for, what, 18 months, maybe a year? How are you kind of exploring it and making, in putting together kind of a curriculum that you think will help, you know, because I assume that this isn't just for new Drupal, it's also for, you know, existing Drupal.

How do you put together a curriculum like this?

Mike: Yeah, it's some are easier than others. This one wasn't too bad, but for me, the most, like the, the thing that gets me rolling is I want to like, make the case of why people should care about whatever I'm gonna teach them. Right? And a great example of this is when I, years ago, when I was developing our module development course I just didn't wanna teach services and dependency injection.

I, I needed to be able to convince people that. They care about this stuff and why should they care about this stuff? 'cause once you, once you buy in that I need to learn this, it becomes ea easier to learn. So with single directory components, it's like, okay, so I can do everything already. I can build a, a, a custom theme, and Drupal, why should I learn this new thing and adjust my, my workflow to, to implement this new thing?

So for me, the first step is really convincing them that there's enough benefit in this new thing for them to put the effort in to learn. And then after that, it's, it's, it's really, I'm, I'm very best practice driven when it comes to this stuff. So what's the right way to create these things? What are the best tools?

So we use trust generate and most of these for the scaffolding, I use that, like I mentioned, the SDC develop module for the validation. And I, I really want people to understand. You know, props versus slots when, when to use one versus the other. And if you're using a prop, you know, it's strongly typed.

And you know how, you know, if you're a backend developer, just think about a single directory component as as, as a, as a method, right? You're calling this thing and you're passing in arguments and you're passing in data and it's gonna give you something back. And, you know, you want it to be strongly typed, like the best, you know, PHP methods are.

So,

Nic: I wanna give you, let, lemme find this, but I wanna give you one tip that one of my clients found that's incredibly useful when doing SDCs. Yeah. Which is when you're and maybe you already do this, but you, one of the primary ways you get an SDC on a page is you use the include sometimes use embed, but usually you use, include, right?

And you, you name the sdc, right? Yeah. And then you say with, and you give it all the arguments, right? Before you put width, you wanna put ignore missing. Because if you ever, if you've ever worked with an SDC and moved it or renamed it or changed it and Drupal tries to load it and doesn't know what it is, the entire page blows up.

But if you put ignore, missing, no, put it so we can put in the show notes and you can show you class. But if you put Ignore missing, if Drupal comes upon an SEC that it doesn't know about or can't find for some reason, or you remove it, dependency, it just doesn't do that block and it won't blow up.

Mike: I have not seen that.

That's really interesting. I will definitely check that out. That Ignore missing. Yeah. I can't believe I haven't run across that or seen that somewhere. But

Nic: this is the, I, this is the first time that we've been talking about SDCs since they, I found this. I thought I'd throw that in and, and is this class, I think you alluded to this or, but just to be explicit, this class isn't just for Drupal newbies, it's also for experience.

No, absolutely. They wanna get. They, you just have to not know about SDCs very well, right?

Mike: Yeah. Or you wanna learn the right way to create 'em. And, you know, the class is basically nine or 10 examples at this point that we're, we, we're, we're building different SDCs. It's very hands-on. And unlike most of my classes at the beginning, I introduced the basic concepts of what we're gonna learn.

And then through each example we'll kind of build upon the last one and add a new concept that we haven't covered yet, and just kind of build it up. And so it's a combination of, it's a lot. I don't wanna say a lot of repetition, but it's repetition. So it gets, it cements in your mind that, okay, first I'm gonna do this, then I'm gonna do this, and then I gotta define this, and then I'm gonna validate and boom, and then we're gonna consume it somewhere.

Stephen: Now, this couldn't have worked out any better today from like, so the reason I say that, so John's internet went out today and I jumped on a minute before the program started, and I recently signed up for this course.

Nic: Did you really? Yeah,

Stephen: I did. Yeah.

Mike: Yeah.

Stephen: And I can, and I can explain why that's the best marketing,

Mike: so I know.

Fantastic.

Stephen: So in the past few months, probably probably about a year, I've taken a couple of courses in an area that I wanted to learn about. So video editing and video production. And in August I took like this two week, three hour day course about some video editing tools. I came out of that I thought I knew the tool pretty well.

I came out of that like with my mind blown about like when I really took someone else's course and I learned what they had to say was the best way to do something. I came outta that course just learning way more than I ever thought I would. And SDC is something I wanted to get into. And I saw a Mike Post on Twitter that he was gonna run this course, and I took the same approach, you know, my whole Drupal career.

I kind of like, you learn it as you go along and you fumble through it. And I'm like, here's one thing that I really wanted to learn. Well, let me do the same thing. Let me sign up for this course and see how it should really be implemented. And I know I'm gonna learn far more than just stumbling through it on my own.

So, so I signed up and I'm really looking forward to it. So, Mike, what should I expect is the outcome of this, like, at the end of this two weeks that we're gonna do in November, where should I be sitting after that?

Mike: Well, first of all clearly I owe you dinner now, Ned camp. So you call that you know, I, like I said before, at the beginning of the course, I, I, I, I'm thinking about I gotta sell it.

I gotta make you convince that you, that you need this stuff. So that you wanna learn so that you're open to learning. And my goal by the end of it is not necessarily technical skill 1, 2, 3, 4, 5, 6, 7, but confidence. Like, I want you to leave the course saying, oh, I know how to create A SDC. Now, you may not remember every little nook and cranny that we cover in the course, but we've taken the fear away of, you know, utilizing and creating new SDCs.

You know, we've taken that fear away. So say, okay, I can do this. You know, I might stumble here and there, but you know, I can go back and look at the material, or I can, I can, you know, I, I can ask questions or do a little research, but it, it's just leaving, you know, it doesn't matter what you learn, whether you're learning how to like, you know, fix your car or, you know, play a sport.

You know, it just, it all comes down to confidence that when it comes time for you to actually do it, you can say, okay, can. You've got a good attitude about it and boom, I'm gonna, I'm gonna do it. 'cause I've, you know, I've got that foundational knowledge. So that's what I, that's for any of our courses, that's what we, we want people to get outta it.

Hayden: Are you

Stephen: and just, I just wanna add to that, like, Nick was asking earlier if you think it's for, you know, a Drupal newbie or not. I clearly, I'm not a Drupal newbie,

Mike: right. Very few of our students. It, it's, it's unbelievable to me, some of the people that sign up for our courses that I've known for a long time, or I know that they've been in the community for a long time and a lot of times I'm like, you don't need this course.

Why taking this course? And they're like, no, I want, you know, I know there's stuff that I, that I may not know that well. And you know, they, they just wanna go through it to make sure that they're not missing something. Right. And so even with, with the SDC course and any of our courses, like they're never done.

Like I will be adding and I'm not sure how I'm gonna add it yet, but variants are a thing with single director components that as of this moment are not in the course, but they will be for the November November semester or semester occurrence of the course. Yeah. So we wanna make sure that, you know, we're providing this information so that even if, you know, you've been around Drupal for a long time, you're comfortable front end developer, you know you're gonna get something outta it.

Hayden: I, and so I, I had a question 'cause I just had a, a baby a baby disturbance here. So I may have missed this, but when you, like, when people take this kind of STC course, right? Are they, is there, are they, is there hands-on kind of real world like project exercise or is it okay, it should not just conceptual or foundational?

A lot of hands on.

Mike: Yes. Yeah, we do. It's, it's all, I mean, basically from class one, it's HandsOn. There's we, we do a, a, an opening section on post CSS 'cause I, I like to use post CSS for, for whatever I do in components. So we, we set that up. That's all hands on. Then we've got eight or nine, maybe 10 at this point, examples, SDCs that we build together and you know, and it's up to students whether or not they wanna do it, you know, hands on or if they just wanna watch

Hayden: like follow up.

Is there like a specific kind of exercise that y'all do or a project that y'all do in the course that really feels like it's the light bulb click for people that are kind of getting into ccs and is there a certain one?

Mike: I dunno, I think that's more of a question for our students than for me. I know the first example we do, I kind of call the tour de force.

Because we, we, you know, I've talked about props before. I've talked about component yaml, but that first example, we go really slow and we, we, we generate all the files and then we go line by line through the component yaml and we learn how everything connects. And, you know, in the end we've got a very, you know, simple DC but we understand every single line of it.

So that could be the light bulb moment for some folks. But then every example we do after that, we just, we, we tweak it a little bit. We add a little bit more on top of it, make it a little bit more complex as we go. So I think it depends on the student where, you know, that light bulb, that light bulb flickers on.

Stephen: Hey Mike, I'm gonna channel John here a little bit. He's, he's playing my role this week when he's listening in the background and asking some questions. Yeah. So I'm gonna go there and say, so you mentioned post CSS, why do you like that?

Mike: That was a difficult decision. You know, the, the. The feeling I get in, in my experience in talking to other people is that front end developers are moving away from SaaS because modern Drupal is so powerful.

And I, for a long time, I considered not using anything, just writing modern CSS for these things. For this, for this class. And I, I landed on post CSS for a couple reasons. Number one, Drupal core uses it.

Stephen: I was gonna say

Mike: that. So, yep. So that, that was reason number one. Reason number two in, you know, in the courses that I teach and the students that I taught to, or even the, the, the, the projects that I coach you know, with clients.

A lot of people see NPM and setting this stuff up as like this magic, like, okay, I'm gonna run this command and cross my fingers and hope everything works. So when I kind of decided that, okay, maybe post CSS is what I wanna use, I'm like, you know what? I'm gonna take it a step further and I'm gonna walk people through using NPM to set up, post CSS, install these plugins, configure them.

It's almost like an aside to the class because it's not strictly, it's not strictly SDC related. But we've gotten a lot of good feedback about it. After I taught the beta class, you know, a couple of questions on the survey were, did you find it useful? Should I get rid of it? Because I was really unsure about it.

And the vast majority of the students were like, no, leave it because, you know, we learned a lot about it even though it wasn't directly related.

Nic: I, I'll be, I'll be honest, I, I, I know uses post CSS. And I understand part of the reasoning is because they don't wanna have a build process for core themes, really.

But I don't get post CSS. Yeah. Really. I mean, I would prefer, I, I think I, I can also understand your, take that from, in general, like scaling back, like the build tools is important. 'cause it, it's a class about something else. It's not a class about build tools, keeping SaaS, all that kind of stuff. Up to date is, is a nightmare.

Yeah. But I, I guess what's the benefit of using post CSS over something like just native CSS at this point?

Mike: Yeah. I, I, well, like I said before, I make the case for that in the class. Okay. And I, I basically make the case is if Yeah, if you're coming from a SaaS background Yeah. Then you might wanna take your mix-ins with you.

So. I, we, we use a post CSS plugin that has their flavor of mixings auto prefixing the backward compatibility with older browsers, which thankfully is becoming less and less of an issue as as, as time goes on. What else do we I mean, there's a couple other plugins. I, I I use most of the same plugins that Drupal Core uses the inline SVGs.

I really like that one that brings SVG files in line to CSS automatically. The, the, those really nice media queries, the, I forget what that plugin is called, but it allows you to write kind of more nat more natural language media queries. So it's a lot of little things that, yeah, I think again, once you take the fear out of a tool.

Like post CSS it becomes easier for people to use and it just becomes, you know, a safer alternative than just writing modern CSS. And hopefully, you know, maybe in five years we won't need it anymore, but I,

Nic: I think, I think that's helpful. John, John has another question. Going back a little bit. No.

If John wants

Mike: to argue with me, he should show his face. That's all I'm saying.

Nic: No, I think, I think this is a, a good one though. But he, you had mentioned, you're always updating the course and, and you made it sound like people have access to the materials ongoing. Like how is, how are, how are materials shared going forward?

Like if Steven wants to see an update in two weeks after it's a

Mike: Google doc. I mean, our curriculum is provided to students as Google Docs. I don't notify students when changes are made unless there are big changes. And then I'll put something, we have a, a Drup Slack workspace private channels for all of our courses.

So I'll, I'll, I'll put something in a channel if I've made a big change. Okay. But yeah, no, so any, you know, students do not lose access to the materials, the screencasts, any of that stuff.

Nic: Okay. I think we've, I think we've covered a couple of aspects of this question, but it's worth asking directly are there, are there prerequisites to signing up.

Mike: You know, very low bar. I mean, we use the command line, you know, I recommend you use d Dev and the Drupal recommended project to, to get your, you know, get a fresh site up and running. You know, you don't have to use D dev. D devs easiest 'cause it has NPM. So it allows us to do that stuff pretty easily.

You know, anyone who knows me knows I'm a big D dev supporter. You know, just some front end knowledge is helpful as well. You don't have to be an expert. But we do assume that, you know, you understand some, you understand a little bit about theme anatomy, but you know, I normally design these courses so that if someone had taken my beginner class, they can roll right into any of our other classes.

Perfect.

Stephen: So I have a, I have a question about the, and I'm coming at this from, you know, preparing myself or being ready for the time it's gonna take. Yeah. Take this class. Could you quickly review like the structure of Sure. The class, like it's, yep. It's over a two week period, but Yes. It's not two weeks straight.

Mike: No, no. So it's funny 'cause I originally designed this class to be five days, Monday through Friday, half days or three hours, actually three hour classes, five days a week. And that's the way I taught the beta version. And the rest of our classes that we teach are two days a week for two half days a week.

And I, I actually, I am not a fan of teaching eight hour days back to back. Number one, it's exhausting, but number two, it's so much information for students to absorb in a short amount of time. And I know for a fact, just from the feedback that I get, that students appreciate that break between classes.

I call it soak time. Mm-hmm. Right. Ability for them just to soak in the knowledge for a day, maybe review something if they were thinking about it, you know, maybe play and you know, with something, you know, on their own. Yeah. So the course is over two weeks, Monday, Wednesday, Friday, three hours a day for Monday, Wednesday, Friday.

So it's a very relaxed pace. Everything's recorded. And recordings are normally available later that same day. So, you know, I get it. People have meetings or they have a family commitment that they can't get out of. They have to dip in and outta class. None of that's ever a problem. So it's $600 for 18 hours of instruction which is, you know, a pretty good deal.

I think, you know, if you look at like what a full day training at a Drupal count is you know, I, I think we're, we're giving you a pretty good bang for your buck for that, for that time.

Stephen: So how much of the three hours Mike are you, is broken up between lecture and exercises and sort of working on your own to learn things

Mike: after the first class?

Very little lecture. Okay. Even the first class doesn't have a ton, to be honest with you. Okay. I want, I like it. And students have told me they like to be engaged. They like to be, you know, doing things. So there's a couple places where there's some independent exercises where I'll, I'll stop talking for 15 minutes and have the students do something.

But the vast majority of, of those 18 hours we're just, we're working together and every class I tell. I say the same thing, that the less I talk, the better the class is. Right? So the more students interact, the more questions they have, the better the class is. This class, you know, and I started with the professional module, development class I built in time.

Like I don't wanna be rushed teaching it. I never, I never wanna get to the point where I'm like, look, I can't take questions right now 'cause we gotta get through this example. Right. That none of that, yeah. I want, I want enough time so that a student asks me a question that I wasn't anticipating. We can take 15 or 20 minutes and dig in and still, and still have the time that we need.

Stephen: And, and how much homework, how much homework is there outside of the class?

Mike: Zero. Zero. Okay. Yeah. How, again, you can do many, you can do as much as you want, you know, but I'm, there's never a class where I say have this done by no Wednesday.

Nic: And, and how many students in a course?

Mike: 15 max. 15 minutes topping out 15.

Hayden: The, the lack of being able to talk in your course, has that led you to, to the podcast? Is that why you do the podcast? So you can talk, talk your head off there. I was just kidding, Mike. But that being, that being said though, that being said, like, you know, I see you got the teaching stuff down, you got the podcast, but recently I've seen this show and tell what is, what's that about?

Mike: Yeah. So the podcast, let me, I lemme just address the podcast 'cause every now and then people ask me about it is I don't do it that much anymore. Honestly, IIII try and do like one or two seasons a year. But quite frankly, you guys are are killing it. And you have me on often enough. Thank you for that by the way.

Where, when I think about scheduling some podcast episodes. Over the past couple years, I've always thought, man, I wish I could do it that, like a video thing instead of a podcast, because if we're talking about something, I wanna, I wanna be doing it. And that, that was kind of part of the, the, the germ of the idea for show and tell.

The other part of that is I do office hours for our alumni every week. 50, well, let's say 51 weeks a year or maybe 50. We, around the holidays, maybe we miss one or two. But other than that, open office hours for our alumni every week for two hours. And students come, they ask me anything they want as long as they can, you know, somehow wedge the word Drupal into the question.

Sometimes it's, you know, current students asking about a lesson we just had. Sometimes it's alumni asking about something that they're doing at work. Sometimes it's alumni asking about a module they heard about or a refresher on something. So a lot of those office hours are me saying, alright.

Let's take a look at that, right? And I fire up my Drupal 11 site. I download a module and we start playing around. And students love that. And I've get, I've gotten so much feedback from students of, you know, when I'm doing a demo and maybe I don't know what I'm doing, which is fairly often, or we hit a, we hit a, a snag and we have to figure it out.

Like students like to see other people overcome little snags so that they, they, they don't feel alone when they're doing it and they hit a snag. So between that idea and the podcast stuff, I'm like, you know what? I think a YouTube series is the way to go. And quite honestly, I'm pretty busy, so I wanted it to be low preparation time as well, which is kind of what office hours is.

Office hours is, I don't prepare. I just, students ask me a question and, okay, let's see what we can do. So we're show and tell. The idea is that. There's something that interests me, or maybe someone's emailed me about it, or a student has mentioned it. I'm like, I've never checked that out. I've never played with it.

Let me try and get a subject matter expert, you know, someone who knows what they're talking about. Maybe a maintainer of the module, or with Nick, someone who actually worked on Object only to hooks and core. Let me get them to join me for the goal is like 35 minutes an episode. We'll use my screen.

I've got a fresh copy of Drupal 11 and I'm gonna try to accomplish the task. And maybe I succeed, maybe I don't. But the ideas, we're gonna learn something. I've got the guardian angel on my shoulder helping me out. And it, it's, it's a lot of fun. Like I'm, I, I've got, you know, a bunch, I've got three more that have been edited and are ready to be released.

I've got some other ones scheduled. I've got a list of other people I wanna reach out to. So I think it kind of hits the sweet spot for me where it's something that. It's kind of a proven idea. 'cause I know our students like them, and it scratches the itches that I have of not just talking about something on a podcast and saying, Hey, imagine you're going to the configuration page and doing this.

Yeah. But we're actually doing it.

Nic: Yeah. And you're sharing your screen. As somebody who was on a recent episode, it was nice because, I mean, I, I refreshed my memory in a couple things, but like, I didn't have to do a ton of prep beforehand either. Yeah. No. I don't want anybody to

Mike: have to do any prep. Yeah.

Yeah. It was just show up and let's wing. I mean, it sounds, it sounds very unprofessional to say we're just gonna wing it, but that's kind of the point.

Stephen: Yeah. I love it. I, I watched I watched one of the episodes this morning or yesterday. Yeah. It's fantastic.

Mike: Oh, that's very nice for you to say. It's great.

Stephen: It's really great, Mike. It, and it's really needed. It's, it's filling a hole. Yeah.

Mike: That needs to be filled. So I just published a blog post announcing it this morning. And I, I actually, I'm, I'm glad you said that, Stephen, because it reminded me, because I wanna give a shout out to those of us who have been in the community for a while, and I put this in the blog post, may remember Drupal Dojo back in the Drupal six, five days.

I don't even know when that was. Yeah. But it was, I don't know if it was Josh or Matt, it was one of them from Pantheon who did a lot of the Drupal Dojo, and it was on, I didn't even know it, was it Skype? I didn't even know what it was on whatever screen sharing was available back then, I don't remember.

But it was a very similar thing where they would say, okay, we're gonna open up Drupal Dojo and we're gonna play with, you know, the, the blah module, whatever, and. They'd be like two hours long. And it was just someone figuring stuff out, you know, sharing their screen. It was great. I learned so much, and I think a lot of people learned so much by watching the websites

Nic: still exist.

Mike: I know it was crazy that the website is still up Drupal Dojo. It's not, hasn't been updated in, you know, I don't even know how long, but I, I hope that people watch, show, and tell and think about like, maybe it's the spiritual successor to Drupal Dojo. That's the way I feel. That's, you know, that's, that's kind of my, my Is this, is this replacing your office hours, Mike?

No, no, no, no, no.

John: Okay.

Mike: And actually, so I haven't even said this out loud yet, but I actually think some of the show and tell episodes are gonna, they're gonna, I'm gonna record them during office hours, I think. So kinda like a live audience, so to speak. Yeah, because I do demo often. That makes sense to me.

Yeah. I do 'em all the time in during office hours and I just did one, was it last week or the week before? Someone hadn't seen environment indicator recently, so I just, I did a full demo of the environment indicator module and I should have recorded it 'cause I could have, you know,

Stephen: and it, it sounds like to me that you learned just as much as the students in the office hours as well.

Right.

Mike: Something almost always something goes wrong. Almost always. And the funny thing is, so Nick and I hit this when we were recording his, and Nick had a great, a great, and I still don't know if it's an analogy or metaphor, but we tried something and it didn't work and Nick said we flew too close, close to the sun, you know, like ICAR and all that.

Yes. I was recording one the other day with Ted Bowman related to content templates and Drupal Canvas, and we accomplished the task that I was hoping to do during that show and tell, and Ted says, there's this one other thing we can try. And of course, we tried it and it did not work. And I, I leveraged that, that same, that same analogy, Nick, so I think I maybe even attributed it to you as well, but Uhhuh, yeah.

I, if something doesn't go wrong, I'm almost worried that, okay, maybe we're not doing enough or people like it, you know, my students, at least they, they like to see stuff go wrong. And just the thought process of, okay, how do we overcome this? It

Nic: it, it's filling a gap. I mean, it, it feel, honestly, it also feels kind of the same tone as the new TD cafe that Steven's been spearheading different, you know, different flavor.

I think. But similar thing where it's like, hey, it's more of a, it's informal, spontaneous maybe is the wrong word, but it's more spontaneous, it's less structured. And you know, I think maybe Stevens is earlier in the idea generation side where it's like, Hey, let's have a discussion about something. And you are showing a solution or an exploration of something.

A task.

Mike: It's very task.

Nic: Feels, feels, it, feels like it's in the same space.

Mike: Yeah.

Stephen: Yeah.

Mike: Can I just, Mike? Mike, you can go to YouTube youtube.com/drupal. Easy. That's where you can find it.

Stephen: One thing we forgot to point out is where can people sign up to hang out with me in November?

Mike: Oh, yeah. Google easy.com/psdc for professional single graduate components.

Psdc. Okay. Yeah. Thank you for, for, for that as well, for allowing me to say that. Appreciate that.

Nic: Well, Mike, it's always a pleasure having you on the show. Thank you for joining us.

Mike: Always great to be here. Love hanging out with you guys. And yeah, thank you for the opportunity to,

Nic: you know,

Mike: to say all of this and promote the class.

Appreciate that. And actually, before we stop, while I have Hayden Hayden, I gotta contact you at some point about sponsoring Florida Drupal Camp. And I figured as he's

Hayden: recording,

Mike: he's this, you can't say no, right?

Hayden: Ridiculous. This is ridiculous.

Mike: I cannot be trusted.

Hayden: Yeah. Well you know what maybe, maybe you'll see some dollars in your coffer.

Who knows? Maybe. Okay. I don't dunno. Best thing can do

Mike: is a maybe. Alright.

Hayden: Yeah,

Mike: I, I heard a yes. I think everyone else you think wrong. I'll say, you know, you guys were platinum sponsors last year and that was greatly appreciated. So thank you very much for last year and we certainly do hope that you'll be on board for for 2026.

Hayden: I had a lot of fun at Florida Drupal camp last year and the, I remember the karaoke place we went was absolutely awesome. Called like Big Daddy's or something like that. I don't remember. It was so fun though. I don't remember. It was packed. It was, there were so many people. Yeah. Yeah. It was so packed. It was a lot of fun.

I remember. Yeah. Great time though in Florida. Yeah. Super duper.

Stephen: Well if you have any questions or feedback, you can reach out to talking Drupal on the socials with the handle talking Drupal. Or you could email us at [email protected]. You can connect with the hosts and the listeners also on Drupal Slack, on the Talking Drupal channel.

Nic: And if you wanna be a guest on Talking Drupal or a new show, TD Cafe, you can click on the guest request button in the [email protected].

Stephen: Don't forget to promote your Drupal event coming up on Talking Drupal. You can do that by visiting talking drupal.com/td promo,

Nic: and you can get the Talking Drupal newsletter.

To learn more about our guest host show news, upcoming shows, and much more, you can sign up for the [email protected] slash newsletter.

Stephen: And we love our patrons. It certainly helps us out. You can support us by going to talking drupal.com and choose become a patron.

Nic: All right, Mike, if our listeners wanna get in touch with you, what's the best way for them to do that?

Mike: I am Ulta Mike pretty much everywhere on social media and on drupal.org, and you can always go to drupal easy.com/contact. And Hayden, how about you?

Hayden: You know, since Mike did that, I'm, I'm gonna, I'm gonna say you can, you can reach out to me on LinkedIn, but if you reach out to me for a sponsorship, you need to go through Mike.

Anybody who wants a sponsorship now needs to reach out to Mike first, and then Mike can bring me their sponsorship request.

Mike: Fantastic. So please reach

Hayden: out to Mike first.

Mike: That means I get to prioritize them as well. So even better. You're doing me a big favor. Happy about you. Do that. Roll on.

Nic: How about you Steven?

Stephen: It's Steven Cross with a pH everywhere.

Nic: You can find me at nsan N-S-C-X-V-A-N, pretty much everywhere.

Stephen: And if you've enjoyed listening, we've enjoyed talking.