Episode Number 12

Craft Plugins with Ben Parizek

Feb 06, 2014 @ 11AM MT

Are you contemplating the Craft CMS? Ben Parizek is on the show to explain why it has become his CMS of choice, what developing for Craft is like, his thoughts on its architecture and its future, as well as ideas on education, documentation and the future of plugin development for the platform.

Also, we’ve been nominated as Podcast of the Year for the 2014 .net awards! We appreciate the honor and would love it if you would vote for us. Thank you for all your support!

Tags:
ben parizek
guest
interview
plugins
add-ons
craft
craft cms
development
programming
education
content management

Episode Transcript

Download Transcript

CTRL+CLICK CAST is proud to provide transcripts for our audience members who prefer text-based content. However, our episodes are designed for an audio experience, which includes emotion and emphasis that don't always translate to our transcripts. Additionally, our transcripts are generated by human transcribers and may contain errors. If you require clarification, please listen to the audio.

[Music]

Lea Alcantara:  You are listening to CTRL+CLICK CAST.  We inspect the web for you!  Today we’re talking about plugins with the Craft CMS with special guest, Ben Parizek.  I’m your host, Lea Alcantara, and I’m joined by my fab co-host:

Emily Lewis:  Emily Lewis.

Lea Alcantara:  This episode is brought to you by Squarespace, the all-in-one platform that makes it fast and easy to create your own professional website or online portfolio.  For a free trial and 10% off your first purchase, go to squarespace.com/click and use offer code CLICK.

Emily Lewis: CTRL+CLICK would also like to thank Pixel & Tonic for being our major sponsor of the year.  [Music ends]  Hey Lea, how are you doing?

Lea Alcantara:  Go Seahawks!

Emily Lewis:  [Laughs]

Lea Alcantara:  That’s how I’m doing.  [Laughs]

Emily Lewis:  So congratulations to your new hometown for winning the Super Bowl yesterday.  [Laughs]

Lea Alcantara:  Yeah, that was a lot of fun.  I mean, I didn’t go out to a bar or anything.  It was actually pretty cool that we can watch the big game streaming live.

Emily Lewis:  [Agrees]

Lea Alcantara:  We actually just went to like nfl.com and it was actually a pretty good stream, like I didn’t have high expectations since it was a free stream.

Emily Lewis:  [Agrees]

Lea Alcantara:  But it was actually pretty good.

Emily Lewis:  Did you still get commercials?

Lea Alcantara:  Yes, yes.

Emily Lewis:  Oh okay.

Lea Alcantara:  What was interesting is that I was watching the game while I had Twitter on.

Emily Lewis:  [Agrees]

Lea Alcantara:  So it was interesting because it looked like some of the ads that they were showing on the streaming section was not the same as what was showing on TV live.

Emily Lewis:  Oh.

Lea Alcantara:  I think eventually they were showing the same ads, but not at the same time.

Emily Lewis:  Interesting.

Lea Alcantara:  Yeah.  I think that was kind of interesting.

Emily Lewis:  Yeah, that was quite a game as we were chatting before we hit the record button, it was really like an annihilation.  [Laughs]

Lea Alcantara:  [Laughs]

Emily Lewis:  Of the Denver Broncos.

Lea Alcantara:  I actually felt kind of bad, you know?

Emily Lewis:  Yeah.

Lea Alcantara:  It was one of those things where you wanted to have a bit of a challenge.

Emily Lewis:  Right.

Lea Alcantara:  Like you want your team to win, but at the same time you’re like, “Well, nothing is happening on the other team.”  [Laughs]

Emily Lewis:  I know, like when they went towards, I think it was the fourth quarter when they were like, “There is no point in filming the actual field.”  So they were like cutting to the sidelines, and I just felt so sorry for the guys in orange.  They looked so sad.  [Laughs]

Lea Alcantara:  Yeah, I know, especially when they were already celebrating.  Like I could see they were throwing the Gatorade over the coach already.  [Laughs]

Emily Lewis:  [Agrees]

Lea Alcantara:  But there’s still five minutes left in the game and they were already like, you know, and then I felt, well, I felt bad for Peyton Manning because he was still on the field even in that last quarter and I just kept thinking it was like the captain of a sinking ship.

Emily Lewis:  [Laughs]

Lea Alcantara:  Like it doesn’t matter how bad it is, he’s just going to stand there until the very end.  [Laughs]

Emily Lewis:  I think despite yesterday’s performance, he’s a legendary athlete.

Lea Alcantara:  Of course.

Emily Lewis:  From everything I’ve read and seen in interviews, he’s just a really stand-up guy so I’m kind of not surprised that he didn’t leave, that he just stuck it out until the end.

Lea Alcantara:  Yeah, I agree.

Emily Lewis:  That took a lot of character.  [Laughs]

Lea Alcantara:  Yeah, I would agree.  I think I watched this amazing documentary actually on the Manning family on Netflix, so anyone who’s a football fan I think should watch that, and I’m not even that much of a football fan and I really enjoyed that documentary because that family is ridiculous.  [Laughs]

Emily Lewis:  Why?  [Laughs]

Lea Alcantara:  Ridiculously talented.

Emily Lewis:  [Agrees]  And really community service-minded too.

Lea Alcantara:  Yeah, yeah, I know, like I ended up really liking everybody, like all their stories and how they got there, and it seemed like a really happy family growing up despite the fact that Eli and him both made the pros and they had to play against each other and things like that.  But they all seemed like they really encourage each other to be their best.

Emily Lewis:  [Agrees]

Lea Alcantara:  And it’s like, oh, heartwarming.  [Laughs]

Emily Lewis:  [Laughs]  Nice.  I’ll add that to my cue.

Lea Alcantara:  [Agrees]

Emily Lewis:  So we’ve actually got quite a bit of news in the world of content management systems.  Why don’t we get to that right away?

Lea Alcantara:  Sounds good.  So remember on our first episode of the year where Ryan Masuga was looking for a very simple strip-down CMS?

Emily Lewis:  [Agrees]

Lea Alcantara:  It looks like he finally made a decision which seemed apropos considering the topic today.  He chose Craft in the end.

Emily Lewis:  Oh okay, cool.

Lea Alcantara:  And he wrote a whole blog post about it, and so we’re going to link that to the show notes.

Emily Lewis:  Cool, I haven’t read that.  I have to check it out.

Lea Alcantara:  [Agrees]

Emily Lewis:  Speaking of Craft, Brandon Kelly has compiled a page on GitHub explaining the difference between templating in EE versus Craft, and it seems like a good reference to take a look at for those trying to bridge the gap or testing out Craft for a site, and that too we’ll have the link in our show notes.

Lea Alcantara:  And as of this recording, nothing has been announced yet, but Statamic is teasing some sort of giveaway of playing cards that looked very Statamic themed, like there are pictures of a stag and stuff like that.  So stay tuned they say and we will.  [Laughs]

Emily Lewis:  Perch has released a diagnostic check to make sure you’re running the latest version of PHP for their system, which basically is going to like nag you to upgrade to make sure your site still works with their software.  This is the kind of thing I like when the system is intelligent enough to tell me when there’s something for me to do.

Lea Alcantara:  [Agrees]

Emily Lewis:  So I like that idea.

Lea Alcantara:  Yeah, instead of waiting for things to break.

Emily Lewis:  [Agrees]  And that’s a nice feature of Craft as well where if you’re not running the right PHP, it gives you an alert and…

Lea Alcantara:  Tells you what to do.

Emily Lewis:  Yeah, tells you what’s happening as opposed to just not working and you searching the internet for a browser error codes.  [Laughs]

Lea Alcantara:  Yeah, I agree, and our sponsor, Squarespace, has a lot of new updates.  I’ll mention them later in the show, but you really should check out their blog to find out more, and the link will be in the show notes.

Emily Lewis:  And sort of switching a little bit from content management systems to conferences, the dates and location for this year’s Peers Conference were announced.  It will be April 23rd to the 25th in Washington, DC.  You can sign up on the site for updates.  It’s peersconf.com/2014.

Lea Alcantara:  And speaking of conferences, tickets are now on sale for ConvergeSE which both Emily and I spoke at last year and loved it so you should go.

Emily Lewis:  Yeah.

Lea Alcantara:  And the site is convergese.com.

Emily Lewis:  Nice.  If we overlook news about a CMS you favor or are interested in, let us know and we’ll get it on our radar for future updates.

Lea Alcantara:  [Agrees]

Emily Lewis:  So today we’re talking about Craft plugins with Ben Parizek.  Ben is a partner and creative director of (barrel strength) design.  In addition to design and user experience, Ben works with content management systems including ExpressionEngine, and of course, Craft.  Welcome to the show, Ben.  Thank you for joining us.

Ben Parizek:  Good morning.

Lea Alcantara:  Good morning.

Ben Parizek:  A pleasure to be here.

Lea Alcantara:  Awesome.  So Ben, can you tell our listeners a bit more about yourself?

Ben Parizek:  Well, yes.  I guess starting dramatically, the Super Bowl marks an important day in my life because eight years ago, it is the day that I had my first date with my later to become wife.

Emily Lewis:  Oh.

Lea Alcantara:  Oh/

Ben Parizek:  We decided just for the heck of it to make our anniversary on Super Bowl Sunday every year because it’s way easier to remember than the cumbersome random day of the week.

Emily Lewis:  [Laughs]  Smarter.

Lea Alcantara:  [Laughs]

Ben Parizek:  And somebody always invites us to a Super Bowl party that we generally try to avoid and go out to dinner or something instead.  [Laughs]

Emily Lewis:  That’s sweet.

Ben Parizek:  It works so nicely, and it’s a great day to go out.  Places are usually casual and fun. [laughs], if you pick the right ones.  So I guess yes.  So anyway, I’ve got a wonderful wife and we live in Los Angeles, California with our cats, Sir Percival the Attentive, who’s a retired action movie star.

Emily Lewis:  [Laughs]

Lea Alcantara:  [Laughs]  Amazing.

Ben Parizek:  And we live a simple life.  We enjoy swing dancing in our free time and just kind of hanging out at coffee shops, reading and working on things that we enjoy.

Emily Lewis:  Oh, that sounds fun.  I love swing dancing.  I took a couple of years of lindy hop classes for a while.

Ben Parizek:  That is the most fun thing.

Emily Lewis:  [Agrees]

Ben Parizek:  You bend your knees and swing around in circles.  [Laughs]

Lea Alcantara:  [Laughs]

Emily Lewis:  Well, let’s take a shift to talking about your professional life.  So Craft is, I guess, comparatively new in the content management world.  How did you get involved with it?

Ben Parizek:  I had been a long time user of ExpressionEngine, and I had gotten into ExpressionEngine as a designer.  It was easy to use and kind of allowed me to build more than a blog, and it had been a great system for a long time, and I think one of the reasons that it had become so powerful had a lot to do with Brandon Kelly and Pixel & Tonic.

Lea Alcantara:  [Agrees]

Ben Parizek:  Initially, they were the ones to introduce field frame which kind of took ExpressionEngine from just having channels to having flexible field types within channels, and I feel they were the first to also really push the bar of user experience.  ExpressionEngine was great for designers because of its easy templating language and good documentation and kind of allowed us to get involved with it without needing to know PHP, and for those reasons, or I mean, and on top of those reasons, it was well designed and easy for our clients to use.  Having field types like the ones that Pixel & Tonic created were always a pleasure.

Emily Lewis:  [Agrees]

Lea Alcantara:  [Agrees]

Ben Parizek:  You’re never worried about the client demo when you’re going to be showing them your matrix field or Playa field and how it worked, how it can help them out in their content management system.  So as time went on, and your business needs grow, your project needs grow and you run into more challenges with any system you’re using, you kind of start to develop your preferences of what you wanted.  In some sense, you make a decision for the product you’re going to use next before that product exist, and you do your best to give feedback to the company, which you do use their products of, but frequently they just don’t move quicker.  They get in established.  They have audiences to please and they have to accommodate older systems and a lot of things that make it harder for them to innovate.

Timestamp: 00:09:56

Then Pixel & Tonic announced Craft, and I think before I even saw the content management system, I knew it was going to be the right one for me.  It just felt like from the history of Pixel & Tonic, their emphasis on solving challenging problems and having really high standard user interface designs, I kind of assumed or took that Brandon would have a lot of those intuitions and be restless unless he was solving those problems really well.

Lea Alcantara:  [Agrees]

Ben Parizek:  And it’s been a long road since the private beta came out, but it’s been consistent.  From Day 1, I think it has really shown promise and has been taking our ability to be doing content management to a whole new level.

Emily Lewis:  You even on your website, for (barrel strength) design, you even say that Craft is your current primary CMS.  That seems to be a pretty bold business move.  Once you got your hands on it, was it just a given or was it after several projects that you really felt that’s where you wanted your business to focus on?

Ben Parizek:  Yeah, I mean, you have to try things out a few times before you can, and as much as we want to say love at first sight exist, usually there’s a contemplation at third sight and trying to evaluate and kind of making sure it is the right decision.  So I think that the way I like to think about this is we started using it on client projects in 2012 in private beta and maybe that was a little crazy, but it just seemed like the right thing to do, and I think the way I like to think about it is it’s easy to sit back and say, “I want the best tool for the job,” and try to get the best tool out there on the market.  I think we see this in a lot of places, and then it’s another thing to say that I have a client that has current situation that is so bad and that they’ve asked me to come up with a solution for them that is better, and depending on their budget, we kind of have to work with tradeoffs.  Maybe they have a big budget, small budget, and at a certain point, you say like, “Hey, well, I’ll give you a deal if you let me do this.”  [Laughs]

Emily Lewis:  [Agrees]

Lea Alcantara:  [Agrees]

Ben Parizek:  And I think it’s a good decision too because it will put you in a good position for this later.  So we’ve started using it on smaller sites and sites where people were coming from just terrible content management systems, and we could have probably done anything and they would have been happier than they were.  And at first, we did it on kind of low barrier to entry projects that really if we needed to rewrite, it wouldn’t have been a big deal, and since then we’ve started deciding on it as the right platform we should be on moving forward.  I’ve told clients, “You know, if you want me to build you a site that my team is going to be a specialist in two years, let me build it in Craft.  If you want me to build it in an established product that you like, [laughs] I can’t guarantee my team’s enthusiasm, but we’ll try to build it in what you want.”

Emily Lewis:  [Agrees]

Ben Parizek:  And we still make decisions to go in different directions based on client situation.

Lea Alcantara:  Sure, sure.

Ben Parizek:  Some people just have strong reach in WordPress or EE or multiple sites, and I don’t believe in like fragmenting people’s ecosystems.

Emily Lewis:  [Agrees]

Ben Parizek:  You’ve got to work to what they feel comfortable with, but as far as usability and happiness of our clients, we feel that we’ve never had higher ratings from them since using Craft.

Lea Alcantara:  Wow!

Emily Lewis:  So you mentioned you worked with ExpressionEngine in the past.  Do you work with any other CMSs previously or even currently depending on the project?

Ben Parizek:  Yeah, I guess WordPress and ExpressionEngine have been our two big ones.  As a team, we worked with a ton of different CMSs.  We have folks on our team that have built small custom CMSs to over the years I’ve worked with Drupal and Joomla and Ektron in more of a maintenance capacity, and yeah, so we have plenty of experience with CMSs.  However, as we’re deciding on for our business, we started there with ExpressionEngine.  We felt that was the right one at the time to be using for our client work.  It led us to the right level of usability and kind of features and costs, and then WordPress is just so many people coming across the plate that have something to do with WordPress.

Emily Lewis:  Right.

Ben Parizek:  It’s an easy one to have.  I haven’t gotten into Statamic and Perch, and I hear good things about a lot of smaller CMSs these days, and I don’t feel like I’m in a position to comment on them, but they seem to have good communities and good products.  They just never seemed to have the right scalability or volume that we felt we wanted to have for our client projects.

Lea Alcantara:  Well, I’m curious because you’ve been talking a lot about usability and user interface when you were deciding on ExpressionEngine first and then Craft next, and how happy your clients are with the UI and things like that.  That seems to be designerly focused.  What about the development side?  Did you find that when deciding on a CMS to work with, which takes precedence when you’re deciding what to work with, the client UI first or how easy it is to develop for you?

Ben Parizek:  I guess I would say it depends on the project, and if you have a really app-heavy thing and you need to take the technical level really deep, you probably have to consider development to some degree first.  But I feel most of what we work on is client services and content management focused or I mean, I guess I should frame that, in the content management industry, usually you’re solving the problem of how do somebody manage their content.

Lea Alcantara:  [Agrees]

Ben Parizek:  And so I like to tell most client when they come in to me and they ask for a website that they’re actually asking me for two websites.  They’re asking to build one for their audience.

Emily Lewis:  [Agrees]

Ben Parizek:  And they want that to be branded with their messaging and communicate with their audience effectively and be easy to use for their audience, and they’re asking you for a second one which is the website that faces them every day when they log in and have to use it.  Most of the time in business sketches, the clients never see that second website.  Everything they’re told is it’s usable.  It will be usable.  It will be flexible, and usually what that means is based on the current standards in our industry, we’ll do the best we can to make any fields editable that we can for you and not give you too much control to screw up your website.

Lea Alcantara:  [Laughs]

Ben Parizek:  And I think finally, I think EE solved that to some degree.  It made that conversation easier.  WordPress over the years has gotten more plugins and kind of flexibility to do that a little bit better, but you have to work really hard.

Emily Lewis:  [Agrees]

Ben Parizek:  And both of those, if you look at the underlying information architecture and data structure of the system, they’re not designed around the problem of content.  They kind of originate from this problem of blogging and it get bent and twisted into the problem of content.

Emily Lewis:  [Agrees]

Ben Parizek:  And I think Craft to me is the first system that I’ve worked with from the ground up that it is designed for content, and every decision made in the system looks like it’s designed for content.  It reads like it’s designed for content, and when you get to that user interface layer that you’re handing off to the client, it feels like you’re handing them something off that’s designed for content.

Lea Alcantara:  [Agrees]

Ben Parizek:  In Craft, a shortlist of features that are great in Craft when they started, Craft allows you to create single pages for your content, a really basic thing.  Every site has an About page or a Contact page that you kind of just want a dedicated page to, but no other system is using that—I’m being blanket statement-y here from my own experience.  I’m sure there are more systems out there that address these problems in different ways that I haven’t had the chance to work with.  But Craft allows you to manage single’s content.  It allows you have hierarchical content or re-orderable content right from the get-go.  It allows you to have multiple entry types within your content and it allows you to have multiple entry layouts within your content as well, which really allows you the flexibility to solve your client’s problems better.

Emily Lewis:  [Agrees]

Ben Parizek:  A lot of these problems are complex and you need the granularity of multiple layouts within layouts kind of, and you don’t want to give them too much control because they don’t have the technical proficiency in many cases, but you do want to give them the control over their content in that area, and it’s been really hard to doing, but Craft solves it extremely well.

Emily Lewis:  And right out of the box.  You don’t have to get a whole bunch of add-ons or plugins to enable that sort of stuff.

Ben Parizek:  Correct, yeah.

Lea Alcantara:  But our topic at hand is add-on development, but right before we get into that, which some can argue it’s more of an advanced discussion, let’s talk about the fundamentals.  You are teaching virtual classroom actually on Craft fundamentals.  How is that going?

Ben Parizek:  Oh, it’s going great.  We’re having a lot of fun with it, and yeah, it’s going great.  I think for those folks, we’re getting good feedback and it’s been fun to really kind of have to structure our knowledge about Craft.  I mean, structure my knowledge about Craft in the sense of understanding how the principles in Craft kind of stack on top of one another as we’re introducing them.

Lea Alcantara:  What’s the most surprising thing so far that you’ve found since teaching these fundamentals?

Ben Parizek:  It’s a hard question I guess.  I think in some sense it’s the obviousness of it.

Emily Lewis:  [Agrees]

Ben Parizek:  I feel like my background, I actually taught Economics.  I taught Economics after I graduated.  My degree is in Economics, and I was involved in the education industry for a while, and I feel like the education in the user interface world kind of all have a similar problem in that you’re trying to communicate complex ideas in a simple way, and they have different components.  In education, you get more of a real-time component in the classroom where you can have a back and forth.  With UI, it’s more like a book or something where you’re actually kind of laying out your argument and your presentation and somebody has to interact with it at a different point in time than you.

Timestamp: 00:20:00

So I guess one of the surprising things I feel is I feel like I look at these things Craft is doing, things that for ten years I’ve been trying to find something to do for me and that Craft is finally just doing it the way that it feels right to be doing it, and you think that would be hard to explain, and then you’d give the examples and it really isn’t that hard to explain because it maps well to the problem we\re dealing with in the world.

Lea Alcantara:  [Agrees]

Ben Parizek:  So in some sense the biggest surprise is that it’s almost obvious what we’re doing.  [Laughs].  It’s really just kind of connecting the dots on how to output the content and interact with the system that needs to happen.

Emily Lewis:  What’s the agenda for the class?  Like what are the fundamentals you’re covering?

Ben Parizek:  It’s an intro to intermediate class, so we’re starting off just kind of in general with “Here’s Craft.  This is how we add content.  These are the different types of contents in the system.  These are how fields work.”  And then we’re trying to expand on those concepts, and we go through templating, how we’re outputting all of the data in our system in templates as well as starting to look at users and how we interact with users on the site, how we deal with multiple languages.  Craft has a great localization support if you need to have a multilingual site.  We’ll look at deploying the multiple environments and stuff too, and just going through a lot of the features, entry types, matrix, interacting with more complex types of content in Craft.

Emily Lewis:  How do you feel the learning curve of your students?  Are they picking it up pretty quickly?

Ben Parizek:  I think we’re getting good feedback.  I’ll say that.

Emily Lewis:  [Laughs]

Ben Parizek:  I feel I’d step out of line if I speak for other people speaking about me.  [Laughs]

Emily Lewis:  [Laughs]

Ben Parizek:  So I feel that’s best spoken by them, but I do feel that we’re making progress in the course.  We’re covering more complex concepts and the questions are good.  They reflect understanding of what we’re talking about and also pushing the boundaries of what we’re talking about to a deeper level.

Lea Alcantara:  Well, before we go on, we’d like to take a moment again to thank our sponsor, Squarespace who make it really easy to get a website up and running.  So even though I’m not a huge sports fan, I really enjoy watching Super Bowl ads and apparently, Squarespace had a spot for the Super Bowl.

Emily Lewis:  I saw it.  [Laughs]

Lea Alcantara:  Yeah, so we’ll have a link in our show notes to that one.  They’re also seemed to be really busy releasing a ton of new features including a logo generator and e-commerce integration with Stripe, so it looks like they’re really trying to be an all-in-one business solution to get someone up and running.  If you can’t wait to try the service out, they’re giving our listeners a free trial and 10% off their first purchase.  You just need to go to squarespace.com/click and use the offer code CLICK.  Now, back to the topic at hand.

Emily Lewis:  So Ben, you obviously must have a solid understanding of the fundamentals to get into add-on development.  So was that your process?  You sort of messed around with the site, experimenting it, trying it on some smaller projects, and then you moved into add-on development, or did you try and kind of learned that at that same time you were learning Craft from just building a basic CMS?

Ben Parizek:  I don’t recall.  We started using Craft pretty early, and right off the bat, there was a document.  There still is very light documentation on how to do that, and so I’d say for the first six months or so, the main documentation we had when using the system was the Craft app folder itself, and one really cool thing about Craft is that the whole control panel is written in the Twig which you use in your front-end templates, and the whole control panel is written in a similar folder structure as you would structure your plugins, and so as you run into problems…

I don’t feel you should go out of your way to make plugins if you don’t need to.  Plugins are kind of what you do when you reach for something and it’s not there and you decide like, “Okay, well, we really need this or we can’t do this in another way.  Let’s explore plugin development.”  So I guess since we started with Craft so early, there were a lot of things that weren’t there that we were reaching for and it was natural too since we wanted to be using Craft so early we had to build a lot of these little utility plugins that helped us output an Archive page or kind of simulate category functionality or something like that.  Well, Craft kind of added more features that could help us handle more complex situations.

So I think right off the bat, we were reaching for plugins.  We were reaching for plugins, but I’d say half of the paths we started down to create plugins kind of got solved by Craft natively and we actually can remove a lot of those little utility plugins we created along the way, but they were great training wheels to get us started and building more complex plugins as well.

Emily Lewis:  So you’re using the term “plugin,” do you use plugin and add-on interchangeably?  Do they mean the same thing in the Craft universe?

Ben Parizek:  I think so.  I’m not going to complain if somebody uses one or the other.  Craft uses the word “plugin.”  I think we have summarized in the EE community to kind of call things add-ons because there are so many different names for them.

Lea Alcantara:  [Agrees]

Ben Parizek:  I think they mean the same.  It’s just something that extends the system and allows you to do something more with it.

Emily Lewis:  Now, had you have that same approach with WordPress or ExpressionEngine if you’re needing to solve something yourself and developing an add-on or a plugin for another content management system?

Ben Parizek:  Yeah, we’ve done the same with WordPress and ExpressionEngine.

Emily Lewis:  How would you say is Craft?  Is it unique in terms of developing for Craft versus those other ones, or is the process still the same, it’s just the language is different?

Ben Parizek:  Well, I think from the business sense, you’re really solving a problem for a client and it’s the same.  I think under the hood where it starts to get a bit different, and I guess I’d say I feel less dirty after I build a Craft add-on.

Emily Lewis:  [Laughs]

Lea Alcantara:  [Laughs]

Ben Parizek:  I feel like I’m more likely to want to share it.  Maybe that’s why I’m on here today even.  We’ve built several things for ExpressionEngine and WordPress and maybe we’re just lazy to market.  There are a lot of solutions out there that we didn’t need to kind of duplicate, but I just never really felt the need or a desire to release what we have done there.

Lea Alcantara:  [Agrees]

Ben Parizek:  And with Craft, it’s really a pleasure.  I guess it feels native what you’re doing.  You feel like you have the flexibility.  You feel like you have the flexibility to work in the languages that you know.  I don’t know how to say this.  I come from a design background, and one of the things that we work with as designers is HTML and CSS, and if we’re going to design something, just give us the HTML of it and we can work it out and make it happen.  Designing for other systems in my experience, it’s always been a challenge to just have HTML or CSS without having to kind of jump through hoops and you feel like you had to be out putting some things in PHP or not having other things available.

One of the things I think Craft really succeeds at is you have a templates folder where you kind of can keep your HTML files and your Twig files, but in your plugin you have a templates folder as well, and it’s very intuitive that you can keep it structured like you would your HTML on the front end of your site.  You can work with it like you would the HTML on the front end of your site.  It displays in the graphic control panel, but it’s very intuitive to work, which I think gives you a lot more control or comfort in working with the UI and things that you’re doing there.

For the most part, Brandon has done most of the work you need for the UI as well.  A lot of your plugin development, you can kind of extend what he’s doing or what Craft is doing natively in the control panel and focus on the business logic or the problem you’re solving.  So yeah, I’d say it’s a very intuitive plugin architecture and once you get into it, it’s really easy to work with.

Lea Alcantara:  Well, you mentioned about how sometimes Brandon already has laid the foundations to make things easier.  What do you think the best way is to approach add-on development while remaining compliant with the native functionality and the rules of making sure you don’t actually break the native system?

Ben Parizek:  It’s a little hard with Craft right now because documentation is a little thin in that respect.  So I guess some of the things we’ve done were kind of using undocumented functions and now and then something will change and break, but we’re stepping over that line on our own and by choice.  Pixel & Tonic is very clear in saying that they’re not going to break things for us, and if they do need to break something they’ll do it at a point release in the future.  There’s a developers community for Craft on Google Plus and Brandon and Brad are very open about kind of what we can use and can’t use reliably.  So if you just look at the documentation, it’s harder to tell the whole story, but if you start reaching out and communicating with Pixel & Tonic and the community in general, I think there is more knowledge and clarity on what we can be doing and can’t be doing kind of within that framework.  With that said, Craft is built with Craft to some degree.

Emily Lewis:  [Laughs]

Ben Parizek:  So frequently your best example is just looking at what Craft is doing itself and understanding what’s going on there, and you can follow a lot of those conventions to keep your code similar to what it’s doing and kind of understanding the conventions they’re using without stepping too far outside the box.

Timestamp: 00:29:44

Emily Lewis:  So when you’ve decided to build a plugin for Craft, what’s your process for that?  Do you sort of scope out the problem and the solution that you want like whiteboard or paper first, or do you dive right into the programming first?  Do you use Version Control in your development for that?

Ben Parizek:  Yeah, the start of the process is good old fashioned pencil and paper, I think it is.  Usually when you finally reached that point where you need to solve a problem, I find that I work best if I just turn off computer and head to the coffee shop with a notebook, and I’ve been using props.  It’s my new favorite tool in my toolbox.

There’s a new note binder called Sorta.  Sorta.la is their website.  But it’s a note binder that you could rearrange the pages in so it’s kind of like a big binder clip, and I find it a really useful tool when kind of concepting add-ons or larger add-ons that we’re working with because you generally don’t have a contiguous flow, I guess.  One day you might kind of map out certain features of the add-on and another day you might come on to other features and in between you might have taken notes on three or four other things, and if you have a note binder that’s like got a bound edge, you can’t kind of rearrange the pages to kind of reorder.  So I find myself kind of over the course of a couple of weeks or months, you’re laying out the different parts of what you want to be working and then having the ability to kind of recompose them, reorder them and just kind of see it all on paper.

So paper is definitely a big part of that process, and then comes the development, and in some part, just good development practices are good there and trying to follow conventions of Craft where possible or if EE is the system it’s built on if necessary.  If we can’t kind of follow Craft convention, we might follow EE convention or following Twig conventions and your HTML and CSS conventions where possible.

We do use Version Control.  We use Git and keep our projects in a repo with different features of a plugin might be on separate branches of that repo, and then another cool thing that Craft has, actually it’s kind of reaches the limits of my development knowledge, but Craft has built in testing.  I think they use PHP unit and there is basically a test folder that you could have in your plugin, and you can extend the Craft test file.  I’m going to get this wrong if there are developers listening, but this is the general idea.  You could kind of extend what Craft is doing to do testing, and then write tests for your plugins if you choose to.

So we’re not doing that on all of our plugins by any means.  There are a lot of small plugins that are just short and sweet and don’t need too much, but we’ve been working on several more advanced plugins as well, and for those, we’re beginning to integrate testing functionality just because it will be more important that they are stable as we make the changes in the long run.

Lea Alcantara:  So you’re talking about your testing process.  Do you believe in beta or silent releases, or do you try to get it out in the real world as soon as possible?

Ben Parizek:  Well, I guess I speak more as a consumer than a business owner on this topic sometimes, but we’ve just started entering this plugin market, and with Craft, it’s kind of our first releases into the wild here, and I enjoy the beta release or silent release or whatever.  Generally, what happens is kind of we’re solving a client’s problem and we’re using something internally.  We’ll try to put it on as many of our own sites as we can just because we kind of can keep an eye on it and improve on it there, and then as we feel it’s a bit more stable, we start to kind of just mentioning it more out and about, and as we see people post in the forums that they might have needs, we’ve been working on a forum plugin and you’ll see that one kind of pop up a lot in the forums people are looking for contact form solutions or multiple forum solutions on their site.

We’ve just started to release that, and I’d say that’s one of our more advanced plugins that we started to kind of released in private beta status, and we quickly started to get feedback on scenarios that you didn’t predict or used cases that are just right under your nose and you didn’t notice them because they weren’t your user’s case.

Emily Lewis:  [Agrees]

Ben Parizek:  And that’s been very helpful.  I think very quickly and just sharing the add-on with five or ten people, we got enough feedback.  I feel to like really polish up and make it a lot more solid right out of the box.  So I do think we will continue to do silent release.  I don’t know what you want to call them, but silent, private beta release is just get folks using them in more real world scenarios and get that feedback to kind of build into the product and solve issues of why it might have been unstable or not the best way to approach part of it.

Emily Lewis:  Well, continuing to sort of like the business aspect of building plugins or add-ons, let’s refer to this form plugin that you’ve developed.  Have you decided whether you’ll make that commercially available, or will it just be free?  And then to extend on that, does that dictate your approach with documentation and support?

Ben Parizek:  I think there’s one unknown kind of in the picture still and that Pixel & Tonic is coming out with a plugin store.  They’ve said so many times, but the time line is a little unclear as to when that might happen.  So we’re interested in making some of our plugins commercial, and I think that has to be done in the sense of we haven’t entered that market before though so that’s new to us.  We can learn from our experiences watching the EE or WordPress community on how they’ve handled add-ons, but it’s going to be a new adventure for us, and I do think you’re right spot on bringing up support and documentation next because they go hand in hand.  If we’re putting our plugins out there in the wild, we want to make sure that people either know that we’re not around.  We don’t have the time to be supporting this, and we just put it out because we wanted to share, or that this is something that we were going to be around for and we’re going to do our best to help people solve problems when they come up.

So we’re new to that, so we need to figure out how we need to be pricing that, how we need to be thinking about it.  I think the biggest part of it probably is proper documentation and training resources to help people not have to have needs for support, and creating stable plugins so they do what they’re expected to do and don’t cause many problems, and so to that extent we are working on documentation and we are trying to build testing and things like that into our plugins to reduce the number of errors that we will have to be dealing with down the road.  I think as the plugin store comes out we’ll start to see more about how those plugins might be integrated into Craft and what might make sense as to how we frame the commercial nature of our plugins.

Lea Alcantara:  I’m curious since you’ve got an education background and you’re currently teaching Craft fundamentals in terms of documentation, do you believe that text documentation is enough, or do you think that if even though that’s just an add-on, I mean, how far should people or do you want to take documentation?

Ben Parizek:  I’m fascinated with documentation.  One of the reasons we started Straight Up Craft was we’ve been taking a lot of time to learn about Craft and it just seemed like we had all this knowledge and why don’t we start trying to share it, and so when I created Straight Up Craft, it’s kind of a pet education project, and it’s not really where I’d like it to be yet in that sense.  We’ve been busy and we’ve got a lot of features upcoming on Straight Up Craft that are more targeted at sharing how-to examples and tutorial content.

In my view, one of the ways we learn is by observing patterns, and like you said, reading text documentation is one way to acquire knowledge, but there are other ways.  There is screencast.  There is video.  There are tweets and whatever else, and I think each medium kind of has its pros and cons.  I think text base and screenshots are great if somebody is just trying to scan for something quickly.  Whenever you’re trying to scan for something quickly and you come across a screencast or something as your only means of taking in the information, it’s always a very frustrating experience trying to shoot through the video to different points, guessing at where the one piece of information you might need is, and in that case, having text documentation is great.  Text documentations are more likely to come up in search if you plan your pages well, and around the questions at hand.

With that said, if you’re new to a topic, I think a screencast or something like that is another good option to have on the plate.  So having that first person experience kind of sitting down in the pilot seat with the driver and seeing things first hand is better.  We remember things better when we do that.  When we visualize our problems and work through them at our head, retention is improved, and so I think having good screencast on certain things could also be helpful to that extent, and then I think, yeah, kind of training people to know where the right resources is worth it.  It takes a lot of work though.

I think one of the problems is not everybody approaches the question from the same perspective, and so documentation here is kind of you’re forced to commit to a hierarchy on how you’re approaching that, and unless you start adding kind of multiple layers from… I don’t know, unless you start layering that in different ways, it’s hard to approach a hierarchy from multiple [laughs] hierarchies.  I don’t know how to say that.  So yeah, I’m going to stop.

Emily Lewis:  [Laughs]

Lea Alcantara:  [Laughs]

Emily Lewis:  Before we finish up the episode, I wanted to ask you a question about the future and it’s sort of two fold.  I’m curious what the future is for your company in terms of Craft and your plans for plugin development, and then sort of that same question but more generally like, what do you think will happen in terms of plugin development for Craft as a community, or if that store when that comes to fruition?

Timestamp: 00:40:05

Ben Parizek:  I mean, we’re big fans of Craft.  We’ve chosen it as our CMS of choice.  We think it solves a lot of those problems we’ve experienced in the past and it makes just for a better world for our clients and all of that.  We’re actively developing several plugins and we hope to share those soon and get more of them in private and public beta, and I think our future with Craft is developing in that direction, trying to help folks in the community solve a lot of those problems and solve a lot of our client business problems in just more elegant ways than we’ve been able to do so in the past.

I think due to the ways Craft is structured, we’re really going to see a different plugin marketplace than we have in the past.  For one, I think it’s easy to build, maybe not easy, but it’s easy to build the right content management system, but even with a perfect code base, unless you have a marketplace, you don’t really have much of a product when it comes to a plugin ecosystem, and I think Pixel & Tonic has that fan base from their previous work, and I think they really have a viable chance to build a strong marketplace around their product.

On top of that, they’re solving a lot of the specific content management needs within the system so I think the plugin ecosystem is going to be a lot richer and building on top of that ecosystem and solving kind of the next layer of content management problems rather than just the first layer of content management problems, which I feel a lot of the plugin marketplaces for WordPress and ExpressionEngine are.  I feel much of the plugin ecosystem isn’t solving business problems as much as its solving content management problems, and I think we’re going to start to see a lot more interesting sets of plugins come out with Craft that are solving business problems and even pushing the boundaries into application development.  We found Craft is a great system for prototyping an application quickly and being able to share with a client and make a lot of assumptions on how quickly we can build out rough websites or rough applications even with Craft.

So I think it’s hard to predict what will happen there, but I do feel like content management frequently is just this client facing problem as it is perceived, but there’s a world of intranets and software as a service.  Maybe we’ll start seeing like Craft as a service kind of site to come out.  I wouldn’t be surprised to see the plugin ecosystem kind of take on a more advanced direction about how we’re solving problems on the internet.  It’s capable of doing so, I believe.

Lea Alcantara:  Very cool.  Well, that’s all the time we have for today.  Thanks for joining us, Ben.

Ben Parizek:  My pleasure.  Thank you.

Emily Lewis:  In case our listeners want to follow up with you, where they can find you online?

Ben Parizek:  Our website, barrelstrengthdesign.com, drop us a note via the Contact form if you want, or ben@barrelstrengthdesign.com is my email.  I’m on Twitter, @benparizek.

Lea Alcantara:  [Laughs]

Ben Parizek:  And yeah, that should do.

Emily Lewis:  Awesome.  Thank you so much, Ben.

Ben Parizek:  Thank you.

Lea Alcantara:  [Music starts] We’d now like to thank our sponsors for this podcast, Squarespace and Pixel & Tonic.

Emily Lewis: We also want to thank our partners, Arcustech, Devot:ee and EE Insider.

Lea Alcantara:  And thanks to our listeners for tuning in!  If you want to know more about CTRL+CLICK, make sure you follow us on Twitter @ctrlclickcast or visit our website, ctrlclickcast.com.

Emily Lewis:  Don’t forget to tune in to our next episode when we will be talking about project management for CMS projects with special guest, Eliza Wee.  Be sure to check out our schedule on our site, ctrlclickcast.com/schedule for more upcoming topics.

Lea Alcantara:  This is Lea Alcantara …

Emily Lewis:  And Emily Lewis.

Lea Alcantara:  Signing off for CTRL+CLICK CAST.  See you next time!

Emily Lewis:  Cheers!

[Music stops]

Timestamp: 00:43:50