Episode Number 08

Statamic with Jack McDade

Nov 28, 2013 @ 11AM MT

Creator of Statamic, Jack McDade, stops by the show to give us the lowdown on his CMS. He goes through the benefits of a flat-file structure, how the control panel is entirely optional, documentation efforts, add-on development, and what’s in store! Tune in to find out more! We also have a slew of CMS news and briefly chat about open sourcing CMS efforts.

Tags:
jack mcdade
statamic
statamic cms
flat files
cms
interview
interviews

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 the Statamic content management system with Jack McDade.  I’m your host, Lea Alcantara, and I’m joined by my fab co-host.

Emily Lewis:  Emily Lewis. 

Lea Alcantara:  This episode is sponsored by Visual Chefs, web development focusing on content management system integration and custom web application development.  Visit visualchefs.com to find out more. 

Emily Lewis:  CTRL+CLICK would also like to thank Pixel & Tonic for being our major sponsor of the year.  [Music ends] Hi Lea, I was thinking this episode is going to be live on November 28th and you were now in the US, so happy Thanksgiving!  [Laughs]

Lea Alcantara:  Happy Thanksgiving to you too.

Emily Lewis:  So are you going to be doing anything special for US Thanksgiving.  I mean, Canadians have a Thanksgiving, right?

Lea Alcantara:  Yeah, we had our Thanksgiving last month and we already did like the turkey thing and friend get together stuff.  So this Thanksgiving, I think all we’re really doing is looking at the sales. 

Emily Lewis:  [Laughs]  Which sale…

Lea Alcantara:  Oh, so awful, but…

Emily Lewis:  You’re turning into an American.  [Laughs]

Lea Alcantara:  Yes, exactly, and I’m assimilating.  Properly assimilating by checking out the sales.  [Laughs]

Emily Lewis:  Oh yeah, I’m not a shopper.  I will not be shopping.  I will be eating, and the eating has already started.  My sister arrived on Saturday and we had planned out menus.  We went shopping.  I went to four different trips to the store.  The fridge is at max capacity.

Lea Alcantara:  Oh!  [Laughs]

Emily Lewis:  It’s kind of exciting like every day I’m like, “Oh my God, we’re going to have this great meal tonight!”  [Laughs]

Lea Alcantara:  Oh, so much fun, I love that.  That’s so much fun. 

Emily Lewis:  Yeah, the best part, honestly, I mean, the food is great, but the best part is like having my sister here and the two of us cooking together.  It’s fun. 

Lea Alcantara:  Yeah, you know I love that.  I do that with my sisters too back in Christmas, and that’s what I’ll be doing in December. 

Emily Lewis:  Yeah.  All right, well, let’s get to some news in the world of content management systems. 

Lea Alcantara:  All right, so Perch 2.3.3 is now out.  If you go to grabaperch.com/update, you can see more information about that.  It includes a few bug fixes and introduces a few new features which includes a login screen redesign. 

Emily Lewis:  Pixel & Tonic released Wygwam 3.2.2 for ExpressionEngine, which includes three new extension hooks and we’ll include the link to that in our show notes. 

Lea Alcantara:  And if you weren’t able to attend the ExpressionEngine conference, you can watch the recorded sessions for a $150.  You just go to expressionengineconference.com/access, you should be able to purchase them there.

Emily Lewis:  And for our listeners interested in the Craft CMS, there’s a little Craft resource site run by Ben Parizek who’s going to be one of our guest for 2014.  It’s got a few tutorials.  It’s straightupcraft.com, and again, we’ll include that in our show notes as well.

Lea Alcantara:  And it’s interesting, it seems like, and I don’t know if this is really accurate, but a lot more people are creating CMSs.

Emily Lewis:  [Agrees]

Lea Alcantara:  And they’re coming out with them.  There’s a new PHP CMS that’s coming on 2014 that I heard on Twitter called PageKit, and what’s interesting is it’s developers who created Joomla and WordPress theme.

Emily Lewis:  Ya?

Lea Alcantara:  Yeah, so I found that really interesting, especially because that CMS, the templating engine is run through Laravel PHP, which I feel like is the new hotness for, at least, based on Twitter.  What’s interesting is that they want to offer this CMS for free and open source. 

Emily Lewis:  [Agrees]

Lea Alcantara:  Yeah, so they’re currently looking for partners help develop it.  I find that really interesting though that anybody who’s creating a new CMS these days are willing to do it for free and open source it.  I guess it’s kind of like the WordPress business model, but considering how much work it is, which I’m sure Jack will probably tell us in the show about creating a CMS, to do that for free and open source, it’s going to be a very interesting.

Emily Lewis:  Yeah, yeah, I have to wonder, and this certainly comes up sometimes with clients, and I sometimes wonder, and this sounds so bad because it suggest that open source, it doesn’t suggest that it’s always the best and everyone likes to think it’s so great because it’s such a contribution.  But sometimes I wonder if open source is like, “Well, I don’t have to make the full commitment to supporting it. 

Lea Alcantara:  Yeah.

Emily Lewis:  Because it’s open source.  Everyone can support it.  The more people, the merrier, but sometimes that leads to not the best support or people messing in a code base that don’t really have any business messing in a code base.  I don’t know.

Lea Alcantara:  Well, I mean, this is like really a larger conversation.  It’s really that double-edge sword because I mean, clearly, WordPress is doing just fine starting off from that open source mentality.  But you mentioned some of the caveats to that, but I even think about it in terms of using iOS versus Android systems, and then when you’re talking to a developer, how difficult it is to develop, let’s say, for an Android system because it is an open source system so it’s hard to make sure that your app working on all these devices because every device is using a different version of Android, and at least with iOS, you can complain about how much it’s a closed source and like heavily guarded and really monitored, but it means that if there’s any issues, there’s one place to go to.

Emily Lewis:  Right, it seems more standardized. 

Lea Alcantara:  [Agrees]

Emily Lewis:  I don’t know, but it would be interesting.  Well, anyways, for our listeners, if we overlook news about a CMS you favor or are interested in, let us know and we’ll make sure to get it on our radar for our future episodes.

Today we’re talking about the Statamic CMS with its creator, Jack McDade.  Jack is a designer, developer and entrepreneur.  He is an expert in PHP and Rails as well as ExpressionEngine, and of course, his own CMS Statamic.  Welcome to the show, Jack.  Thanks for joining us.

Jack McDade:  Hey thanks, and thank you for saying Statamic correctly.  [Laughs]

Lea Alcantara:  [Laughs]

Emily Lewis:  [Laughs]  For our listeners…

Lea Alcantara:  Six tries…

Emily Lewis:  Yeah, for our listeners who don’t know, we’ve edited out about six tries.  [Laughs]

Lea Alcantara:  So Jack, can you tell our listeners a little bit more about yourself.

Jack McDade:  Oh, sure.  My name is Jack.  I have a wife and two boys.  They are four and almost two.  I live in Upstate New York near Saratoga so kind of in the Albany-Saratoga area, right at the foothills of the Adirondack Mountains, which means I love to fly fish because the fishing is really great around here. 

Lea Alcantara:  Cool.  So why don’t we start at the beginning.  At least from what I know of you from the EE community, you’ve worked with it for several years and you built one of the biggest add-ons, I believe, with another developer called Structure.  Is that correct?

Jack McDade:  That is correct.  Yeah, I started using ExpressionEngine back in I think 2005 or 2006, and I was in the agency, the marketing-advertising agency world.

Lea Alcantara:  [Agrees]

Jack McDade:  And the CMS choices were way more narrow than they are today. 

Emily Lewis:  Yeah.

Jack McDade:  So you have Joomla or it was probably called Mambo at the time. 

Lea Alcantara:  [Agrees]

Jack McDade:  You have WordPress which was nowhere near as robust as it is today.  We have Drupal and Textpattern maybe, and all of those platforms didn’t give me the control as a designer/developer that I wanted, and I think a lot of listeners know what I’m talking about.  I want to be able to use my own HTML.  I want to be able to set up my fields in a way that make sense to my clients so that they understand what it is they’re editing, and ExpressionEngine at the time was the best tool for that.

Lea Alcantara:  [Agrees]

Jack McDade:  There are a lot more choices today.  I know a lot of people still love EE.  I don’t really use it that much myself anymore because I have Statamic and when I’m not building websites, I tend to work on larger scale apps so I don’t do a lot of small websites. 

Lea Alcantara:  [Agrees]

Jack McDade:  But it’s still kicking, and I think that’s a good thing.

Emily Lewis:  Well, it got you into add-on development.  Structure is one of my favorite add-ons.  It’s not a small endeavor, especially for Structures, which seems to be really robust and it’s a paid add-on so I’m sure you have to support it on some level.

Jack McDade:  Yeah.  The biggest problem I had with ExpressionEngine at the time was how do I let my clients find the thing they want to edit, and the idea of Structure having a hierarchical content was the most appealing way to do that.  Not everybody knows.  I didn’t actually build Structure 1.0.  I joined up with Travis (Schmeisser) after – I don’t know – Version 1.2 maybe.

Emily Lewis:  [Agrees]

Jack McDade:  A number of people kind of contributed bits and pieces and Travis was kind of the parent that lovingly brought it together, and so I joined in.  We built Structure 2.0, we built it all the way through Structure 3.0, and it was a great product.  It filled a need and still does today.  I’m actually no longer part of Structure.

Lea Alcantara:  [Agrees]

Emily Lewis:  [Agrees]

Jack McDade:  I basically detached myself from the EE community to focus on Statamic, and for all the good and bad, that means you know, but luckily the users for Statamic, the user base, there’s a lot of crossover people, so I still get to hang out with my old friends. 

Emily Lewis:  Yeah, it’s interesting you mentioned a bit of disconnection from the EE community.  Was that just so you could keep your focus, or was it almost difficult to be straddling two different approaches to a CMS?

Jack McDade:  It was complicated to try and sit in two different competing worlds.  I thought that Statamic solved a lot of the things that I didn’t like in EE, and trying to focus on one really meant I had to not work on the other, and I like the Ron Swanson quote where “You don’t have half-ass two things.  You whole-ass one thing.”

Lea Alcantara:  [Laughs]

Emily Lewis:  [Laughs]

Lea Alcantara:  That’s amazing.

Jack McDade:  So I decided to put it into practice, and I’m pretty happy about it.

Timestamp:  00:09:58

Emily Lewis:  So in terms of launching Statamic, what was the biggest challenge?

Jack McDade:  Getting people to pronounce it correctly, I think.

Emily Lewis:  [Laughs]

Lea Alcantara:  [Laughs]

Jack McDade:  It’s funny to never have anybody else try and read it before we launched it, and as soon as we released it, I think it was Paul Burton who immediately went on with the Statamic alternate pronunciation and did the double horns thing on the logo, and I was like, “Oh no, I didn’t even think about that.”  But it’s fine.  I think it’s actually one of those things that helps people remember it, even if they can’t say it correctly, “It’s the Sta… Stata… oh, I don’t know.  That one?”  “Yeah, that’s the one.”  [Laughs]

Lea Alcantara:  [Laughs]

Emily Lewis:  [Laughs]

Jack McDade:  But other than that, I mean, that’s kind of tongue in cheek, but building a new product or actually building an app itself is not really that hard.  You know what you’re doing.  It’s documentation and marketing.  It was really one of the biggest challenges/

Lea Alcantara:  [Agrees]

Jack McDade:  And so writing and rewriting and rewriting documentation so that people jump in and know what they’re doing, I think a lot of people maybe take it for granted until they do it themselves, and then they know what goes behind the scenes.

Lea Alcantara:  Yeah, I can imagine it’s hard to write documentation when you’re so deep into how it works.

Emily Lewis:  [Agrees]

Lea Alcantara:  Because you built it, you exactly how to do things with it.

Jack McDade:  Yeah.

Lea Alcantara:  But when you’re a beginner, I used to teach at my local college back in Edmonton, and I made the huge mistake of not understanding really what beginning HTML and CSS was.  Because I was so far into the professional world, my idea of what beginner’s level is was totally different to the reality of how much I needed to chunk out to like specifically say, “Okay, this one specific thing, this is how you do this one very, very specific thing as opposed to like a bigger how-to.”  Did you find that too for yourself?

Jack McDade:  Yeah, you are constantly having to build context from scratch.

Emily Lewis:  [Agrees]

Jack McDade:  I think the first version of the documentation really assumed even if just subconsciously that you knew how ExpressionEngine work because that’s where I spend a lot of my time.

Emily Lewis:  [Agrees]

Jack McDade:  And so people who are jumping into Statamic from ExpressionEngine were like, “Wow, this is really… I get it.  It totally make sense.  I understand why it’s different, why some things are kind of similar.”  But coming from a WordPress background or coming from a “I’ve never used a CMS” background, those people are really confused at first, and so I constantly have to keep taking steps backwards and building up context from scratch.  So the documentation really took on a very plain English kind of approach to language.

Lea Alcantara:  [Agrees]

Jack McDade:  And I think people really liked that.  Sometimes it’s a little bit more verbose that way, but I feel if you actually sit down and read the documentation, it’s going to spell everything out for you really correctly, and I think that’s a good thing. 

Lea Alcantara:  So you kind of have mentioned how a lot of people from the EE community, they could perhaps understand Statamic a little bit more, but really that makes me wonder how is Statamic different from the rest of the CMSs out there?  Like what makes it stand out?

Jack McDade:  Yeah, well, the first and most obvious part, that sensitive part is that it’s a flat file content management system.

Lea Alcantara:  [Agrees]

Jack McDade:  There’s no database.  For all the pros and cons that brings, I won’t pretend there aren’t a few cons, but that is a really big difference in approach where you can literally touch your content.  It’s in a file that you can open up in your favorite text editor.  You can Version Control everything, everything from your content to your settings, your file, your configuration, your theme files, your CSS.  Everything is in Version Control, so you can deploy it to any server you want, with any method you like, FTP or Deploy HQ or Git post hooks or anything you like.  So those things help to set it apart in a lot of ways.

Another thing about it, which is really interesting that I’ve never seen anywhere else do, there are other flat file CMSs, there are ways of version controlling things that are maybe more complicated with databases, but it’s the way we built the templating system.  I liken it to CSS where you have cascading style sheets.  We have cascading template variables, so if you set something in the global scope, it’s available everywhere, you don’t need to wrap it in a tag pair to output it.  But you can then override it on the page level, on the entry level or inside of the tag loop.  You can continually choose to, if you’d like, override a variable.  What that does is give you a lot of options that other systems don’t because uniqueness is loosely enforced.

Emily Lewis:  Now…

Jack McDade:  If that make sense…  [Laughs]

Emily Lewis:  Well, let me step back to the flat file structure, so you mentioned that that eliminates the need for a database, and Lea and I have our own experience with what a pain dealing with the database is when you are version controlling.

Jack McDade:  Yes.

Emily Lewis:  But what other kind of benefits come from that ability to not have to deal with the database?  Is it something that affects performance in any way?

Jack McDade:  Well, everything has its own particular bottleneck, so there would be points of scale with Statamic that might have performance issues.  If you have 100,000 pages, that’s probably not the CMS for you, but some of the benefits are really compelling, and one of the reasons why I wanted to build Statamic in the first place is to eliminate some of the bottlenecks that really affected my workflow.

So we mentioned version control and deployment which is a big thing.  With the database, when you have a client making content changes on a live server, it’s really painful to actually sync those back to your local environment, make changes, push them back up without overriding something else that they did in the last ten minutes.  With your entire site in the Version Control, that eliminates that problem.

But the other thing is the actual time to build.  My personal sites, the sites that I ended building myself, I build twice as fast now because I don’t have a lot of clicking around to do in the control panel so I don’t have to do the whole create a channel, create a channel group, create a field, link the field to the group, link the group to the channel, start over, click, click, click, click, click, click, click, click a hundred times.

Everything is kind of like loosely coupled until you want to tighten it up so you can use any variable name anywhere and you can create it on the fly on a specific page, and so it’s not until you’re hooking up the last bits of the back end that you want to pick convention, and it really gives you a lot of options as far as building and scaffolding a site really quickly.

Emily Lewis:  Yeah, that makes sense.  If you’re not to ultimately create tables and then create keys for those tables that relate to other tables, it is a lot faster.  Now, I will say that I installed Statamic and am using it for a simple personal project just to sort of get a feel for the flavor of it, but one thing, and I don’t know if this is a benefit or a con, but I guess it depends on who you are and what your goals are, but I really feel like Statamic is, well, ultimately the control panel is optional.

Jack McDade:  Yeah.

Emily Lewis:  So you can basically set everything up just working in files on your server or your local environment.  But myself coming from ExpressionEngine and I guess my perspective when I set about creating a CMS for a client is like how do I set this up so that they can edit things in the control panel and control all these things.  But this is so disconnected from the control panel, it feels like for me, and so I guess I’m just wondering like why is the control panel like not really critical for this particular CMS?

Jack McDade:  Well, one of the reasons is just like a natural architecture approach, and that if you’re going to manage something with only flat files, people are going to want to edit those files. 

Emily Lewis:  [Agrees]

Jack McDade:  We wanted to make sure everything Statamic could do could be done without the control panel.  A lot of people only end up using a control panel in other CMS because there’s no other way to do that thing.

Lea Alcantara:  [Agrees]

Jack McDade:  There’s no other way to put content unless you want to manually link your entry ID with a channel ID.  Nobody wants to do that.  So we want to make sure that it can work without the control panel, and that the control panel really is a content management tool, not a sight building tool or a system workflow, and that let us focus on the pieces that we thought were most important first being a bootstrapped product.  I mean, there are only two of us developers, there’s just me and Fred LeBlanc, and so we wanted to work on the things that we were most passionate about, and configuring system options in a control panel weren’t those. 

Emily Lewis:  So does that mean, and I just may not have worked with clients that are comfortable without a control panel, so does that mean you work with projects where the marketing person who’s in charge of the site is comfortable going into files and editing them, even if it’s like an HTML extension or an MD extension or whatever?

Jack McDade:  No, actually, I have never done that because once you kind of have your site with the structure built out, you then can hook that up to the control panel and then it becomes like every other site.  The thing that’s different is the workflow where you build it up from the files which you need to do anyway.  As a developer, you need to set up your templates.  You just end up setting also part of the back end along with that.  So you will pick your custom fields that you want to use for a particular page or an entry listing, and you can customize all those, but you do that in the files, and then once you’re done, you hand it off to the client and they can create new pages, new entries.  They can rename things.  They can move things around.

So the things that the client needs at the end of the day are available in the control panel.  They just can’t turn on and off admin notifications for form post, that kind of thing.

Timestamp:  00:20:07

Emily Lewis:  [Agrees]

Jack McDade:  That’s all done on the file level, which really are things that the developer only should be touching anyway.  So we keep those things in the world where the developer only has access to them, the files.

Emily Lewis:  So it’s kind of like a different work or offers a different workflow for a developer to build everything with the files, but then the content author or the client or whoever owns the site, they then work in the control panel and it’s really no different for them.

Jack McDade:  Exactly.  I would say probably 90% of the clients using the back end would never know the difference at the end of the day. 

Emily Lewis:  So with that said, would you say that Statamic is more geared toward someone who comes from a design background or development background?

Jack McDade:  I would say it’s kind of geared for someone who knows, well, for a pairing, so someone who knows HTML and/or is handing it off to a client.

Emily Lewis:  [Agrees]

Jack McDade:  So when I build a Statamic site for myself, I don’t use the control panel most of the time because I have these little scripts I use, Grunt scripts or Alfred scripts that generate files in the right folder, and I just kind of skip the control panel.  So if you’re like that, great, your workflow can accommodate that.  But if you want to hand it off to a client, I’ll hook it up and I’ll do that.  So in a perfect world, the correct pairing would be a client with a developer who’s helping him out.

Lea Alcantara:  Well, what I find interesting is that we’ve been talking a lot about how you could totally develop a site with Statamic just through files and especially if it’s just your personal site and not handing it off to a client.  You don’t even need a CP.  But speaking of the CP, I feel like even with that thought process, it’s one of the most visually styled CMSs I’ve seen, even though you can potentially not necessarily even need it.  It’s a very typographical and colorful CP.  Can you tell us a little bit more about your process in designing that CP, especially when you don’t even really need it?

Jack McDade:  [Laughs]  Well, I like pretty things. 

Lea Alcantara:  Okay.

Emily Lewis:  [Laughs]

Jack McDade:  So I wanted a control panel that didn’t make you fall asleep when you log into it.  I’m not saying they all do that.

Lea Alcantara:  Sure.

Jack McDade:  But absolutely some of them do.  So I feel like it looks nice, at least I think it does.  But we wanted to build a control panel that was mobile first in the design approach, and so we built it with the iPhone and the iPad, and if you like Android because that’s your thing, it works great on all of these platforms and you really can manage your site from anywhere and you can do it in any way you’d like.

So one of the big goals was Statamic lets you build your websites your way, and if you like using Dropbox and a markdown editor, you can do that.  You can send link to your content folder right into Statamic and right from your iPad, bypass the control panel in that way, and so just giving people the power to do things whatever way they wanted instead of blocking them in was a big piece of what we’re doing, and the control panel kind of shows that, and that’s very simple, everything.  The form fields are all a 100% width for the most part and so everything really just fits responsibly on whatever device you’re using.

Emily Lewis:  I think another thing that’s nice about the control panel is that the hierarchical structure that you offer for pages is really similar to the structure add-on that I love so much for ExpressionEngine, but that’s just like right away available for you.  I guess it’s a navigational structure, but it’s really like a structure that can convey the navigation of the site and also kind of outputs that navigation with I guess the nav tag.

Jack McDade:  Yeah.

Emily Lewis:  I really liked that that’s just already available.  I found that with the projects I’ve worked with, clients really respond to viewing their content in a structure like that.

Jack McDade:  Yeah, it’s definitely an accident.  After building a lot of sites in the advertising-marketing world, that was just the way that clients got it.  When they see their site map, because you’ve already worked through the site map process with them.  You’ve drawn like you’re on the graphical site map and you’ve worked everything out, well, then you log into your control panel, and guess what?  There it is.  I know where everything is.

Emily Lewis:  [Agrees]

Jack McDade:  It’s really easy for them to understand where to find things rather than, “Well, this channel is mainly this, but it’s actually that.”  And you also use it to do this other thing, but generally, it doesn’t get built that way.  You just see your site, you click it, you see what you expect and you’re done.  It really makes it easier to train your clients on how to use it because it’s intuitive. 

Emily Lewis:  Yeah, I love that if that’s the default.  It’s really, really nice.  Just a couple of other things that I liked about it, they seem small, but I think these are the things that make a difference when you work with lots of different CMSs and you just notice like a little nice thing.  I really loved that when you install, you give this like file to check your server.

Jack McDade:  Yeah. 

Emily Lewis:  It seems so simple, and it really does.

Jack McDade:  [Laughs]

Emily Lewis:  But I usually take ten minutes and make a list of what the requirements are for the server, and then I go on to the client’s server and make sure that it accommodates that.  All I have to do is drag the file to the server and run it, and it will tell me whether my server would let Statamic run.  I just thought that was so simple and straightforward and it saved me ten minutes which I loved.

Jack McDade:  Well, by saving you ten minutes, it saved me thousands of minutes.  [Laughs]

Emily Lewis:  [Laughs]

Jack McDade:  Because I didn’t have to explain it to a bunch of people.

Lea Alcantara:  [Agrees]

Jack McDade:  So that’s really a selfish feature for me, and that it makes my support life easier by making other people’s…

Emily Lewis:  That makes a lot of sense.

Jack McDade:  Of course, by making other people’s lives easier, and that’s really what we’re trying to do. 

Emily Lewis:  Yeah, it’s those things, and I also love the helper tags that you have for theme assets like JavaScripts, styles, images and things like that.

Jack McDade:  [Agrees]

Emily Lewis:  It’s really straightforward and it eliminates the need to like make note of what the server paths are if you’re building a theme according to the best practices that you advised.

Jack McDade:  Yeah. 

Emily Lewis:  So let’s talk about theming a little bit.  Do you want to describe for our listeners the approach that you have?  You have layouts, templates and partials.

Jack McDade:  Yeah, so like the word theme in this case is a very loose term.  It’s not like a really rigid structure.  It’s just like a folder naming mechanism that we encourage.  You don’t have to follow it for the most part.

Emily Lewis:  Oh, you could not do it the way you’ve like document it?

Jack McDade:  You could not do that if you want to.  [Laughs]

Lea Alcantara:  [Laughs]

Emily Lewis:  [Laughs]

Jack McDade:  Yes, so like you could name the theme path variable like blank and so you could then have like an assets folder and you could put everything there.  But by having that themes folder, it’s kind of giving people the convention to be familiar with, which I think is a good thing because it makes it easier to pop in and out of sites and so like having the theme helper tags, you don’t have to use them, but if you do, your site becomes that much more importable.

So that’s on one hand, but the actual detail is you have layouts and templates, which kind of it’s a Rails convention where you have a layout file which has all of your global elements.  You would have like your header stuff.  You have your footer stuff and then you have the “everything else goes here” tag, which happens to be layout_content, and so that’s where your templates get rendered, and every URL in Statamic can have its template it’s rendered with, and so that just gets inserted in place of that one variable.  So instead of every template needing a include header, include footer, you no longer have to do that.  It’s just one less thing that you need to do or remember to do or have to do like this segment 1 equals this, then do that.  It tries to make that whole process simpler.

Emily Lewis:  Yeah, I liked it because, oh, gosh, I forget, Lea, when was it that we first talked about DRY on the podcast?  Like a year and a half ago?

Lea Alcantara:  About a year and a half ago.

Emily Lewis:  Yeah, well, since then I’ve been trying to get more “don’t repeat myself each time, and when I went to build the theme for Statamic, obviously, I could see that I could have put everything in one file and been really slow in repeating myself.  But because the steps that you walk through in the documentation broke everything down, like I saw the whole DRY approach, like it clicked through me kind of for the first time.  It’s something I’ve been trying to do in ExpressionEngine sites with a combination of either Low Variables and Global Variables or even back in the day with embeds, but I really liked how simple it was, and again, this probably speaks to the effort you’ve put in towards your documentation, but creating a theme was really straightforward.

Jack McDade:  Good, I’m glad to hear that. 

Emily Lewis:  So do you anticipate that, well, I mean, I think you have like a site where you anticipate having a lot of themes, Trading Post.

Jack McDade:  Yes.

Emily Lewis:  Is that something where you think like people could just create all these different looks, look and feels for Statamic sites and just sort of change themes like you could with the WordPress?

Jack McDade:  Yeah, that’s one of the ideas, and we’ve been working on that for a while.  It’s not ready yet.  We’ve been juggling a lot of different balls this year, but we are working hard and getting close to having the Statamic Trading Post ready.  But our thought there is in the ExpressionEngine world, you have Devot:ee or Devot:ee, however you say that, and we wanted to place where people knew where all the latest add-ons were and what themes people had released, and giving them a place to connect and talk to each other, and so we’re building that.  There’s no reason why Statamic can’t be as easy as WordPress to switch themes.  It’s literally one variable you change and it’s giving you a different theme. 

Emily Lewis:  [Agrees]

Jack McDade:  The thing that’s interesting is that it’s still kind of an ExpressionEngine-like approach and that you can name your variables anything you want and you can kind of structure things how you want.  So having a place for people can kind of develop a convention would be a really positive thing, and so we’re hoping to get there.

Timestamp:  00:30:03

Emily Lewis:  Yeah, and I noticed, I mean, I’ve always been a big fan of standards, not just in terms of like web standards in general, but naming conventions and things like that.  Like I did think that in terms of building the theme following your best practices, I was like, “Oh okay, this is what he’s suggesting that I name things so that this could be importable down the road.  It was a nice approach, so do you think that there might be down the road people commoditizing themes for Statamic?

Jack McDade:  Yeah, and when we’re building that.  Trading Post is going to be a place where you can buy and sell or trade posts and list, so building a theme and selling it is definitely in the works.  We have partnered with a couple of theme and template shops like Press75 is going to have most or all of their templates from WordPress imported to Statamic, so I think of themes, we talked about doing a few, and so there really will be hopefully sometime next year, practically speaking, a place where you can go, pick a theme, drop it right at the Statamic and be up and running in even less time than you are now. 

Lea Alcantara:  So I want to kind of play devil’s advocate a bit.

Jack McDade:  Please.

Lea Alcantara:  And we’ve been talking a lot about the static portion of Statamic, and I feel like a lot of people approaching Statamic are still confused by the lack of database.  So can you talk a little bit more about the dynamic portion of Statamic and perhaps, what sites are not a good fit for Statamic?

Jack McDade:  Sure.  So the dynamic portion of a content management system is kind of the routing system.  It’s the translation of URLs into pages without duplicating static files with the way you create reusable templates, the way you store content, abstract from the layout, all of those things kind of make up what is dynamic.  In our case, we just don’t store those bits of data in a database.  We store them in a file that you can touch, and so what that lets you do is kind of see on the folder level how everything is put together.  You kind of get how the routing system works.  The benefits, we’ve talked about Version Control being able to actually edit those files and create your own workflow.

But on the other side, people are kind of concerned about performance and granularity of like relational data, and so we’ve done a lot of things to address those concerns, but there’s like every tool, there are just things that’s not particularly awesome at doing it, and probably will never be.  So if you have a site that has thousands or tens of thousands of bits of granular relational data, Statamic is probably not your right choice because maintaining those relationships gets more complex the more the site grows.  So it’s harder to go back and run batch changes across all the files than it would be to update an ID, for example.

But on the other side, small sites, blogs and events, news sites, kind of your standard small to medium sites, actually, they’re really easy and really quick to build.  I’m not sure if that addresses your question about Statamic versus dynamic, but it’s that storing of the files and storing of the content rather in flat files, but giving you all those features that you expect, so tags that automatically update your navigation and pull your blog entries, limit orders, sort, all of those things are possible.  We have a caching layer built in natively that takes your content, caches it to a file and so that your speed is as quick as possible, and it works really well.

Lea Alcantara:  I think that make sense.

Jack McDade:  I kind of run with it a little bit, but… [Laughs]

Emily Lewis:  No.  So I’m curious, this was something that I was looking at in the site that I’m working now.  Is there a way to like the Statamic entering, like creating a member.  You have your admin members and then I guess non-admin members. 

Jack McDade:  [Agrees]

Emily Lewis:  But is there a way to extend beyond that?  Like would Statamic be a fit for a project that has like multi-author publishing workflows where like the writer can only enter content for one type of page, and then that gets reviewed by an editor who sees all types of pages.  Do you know what I’m describing?

Jack McDade:  Yeah, like a more complex and granular workflow.

Emily Lewis:  [Agrees]

Jack McDade:  Yeah, so there’s not a ton today as of Thanksgiving that would let you do that.  There is a multi-author workflow so we like to pull in members and choose who wrote an entry so you can pull entries back out by the member that kind of thing.  But 1.7 which we’re targeting to have out before the end of the yeah will add another layer of member control so you’d able to register members on the front end.  There will be certain member or group leave permission s that can set up, and so while it might not be able to do everything under the sun, we’re going to get a whole lot closer and then will iterate and see what people are looking, what they would like to have and probably build on that a bit more in the future.

Emily Lewis:  So I mean, is that just kind of how you’re approaching the CMS?  It’s you build what’s critical now and then you add on as it seems like it’s necessary, or do you already have a road map for what you’re going to build.

Jack McDade:  Oh, we have a road map.  We know a lot of the big features that we want to build, but we definitely try and stay flexible from version to version because if we think that search is really important but nobody else wants a search feature, why should we spend the time building it now when we can do that later.

Emily Lewis:  [Agrees]

Jack McDade:  So we’ve done a lot of adapting on the fly.  That’s how I like to work and I think for the most part, it’s worked out pretty well.

Emily Lewis:  You mentioned 1.7 should be out before the end of the year.  There hasn’t been an update since I installed Statamic so I’m curious, how does your update process work?

Jack McDade:  Yeah, so that’s changed quite a bit as we’ve kind of involved or evolved our own workflow.  We actually will have released 1.6.5 by the time this podcast airs.  But we basically work on a major version and use to GitHub issues internally to track all of the features, and then along the way as bugs get fixed, we wait until we have either like a critical bug that needs to go out or enough mass or enough repetitive support request for a particular like bug fix, and then we’ll do a point, like a point-point release, a patch release.  That’s kind of how we’ve been doing it in the past.  But sometimes that might mean we’ll release three or four times in a month or it might be a month because there aren’t any major bugs or something like that.

Emily Lewis:  And so when that’s ready, what does it look like for me to install that update?

Jack McDade:  Yeah, all you’re going to do is download the latest and your control panel if you choose to use it will tell you when there’s a new version.  We are also tweeting and update our mailing list and all that.  So when you downloaded the file and you’ll just replace the app in the admin folders and you’re done.

Emily Lewis:  Oh, that’s it.  That’s nice. 

Jack McDade:  Yeah, that’s it.  [Laughs]  I mean, if there are add-ons that need an update after version release, you’ll have to update them individually.

Emily Lewis:  Right.

Jack McDade:  But as far as updating the core, you swap two folders and go.

Lea Alcantara:  So now that you mentioned add-ons, what kind of options are you giving third-party developers to enhance Statamic?

Jack McDade:  Yeah, so we have, we built an API that gives you access to almost every feature and tool that we built.  We basically built Statamic with our own API so most of the features that it has can be tapped into as an add-on developer.  We also have a number of hooks and will continue to add new hooks when people request them or if we have an idea of something we like to do, we might add that.  So probably after 1.7, we’ll go on a pretty large push and add like lots of hooks and things, yeah, for people to add features to the control panel.  But we have plugin is like the nomenclature that we’re using, and a plugin would be anything that creates a new tag on the front end, and then we have field types which would be any custom field that you want to use on the back end.

Emily Lewis:  [Agrees]

Jack McDade:  And in between those, we have a few other files like tasks or hooks that will let you manipulate something on the system core level.

Emily Lewis:  So when you an add-on developer or should I be referring to this as a plugin instead of an add-on?

Jack McDade:  Well, not necessarily because an add-on could be a field type or it could be a plugin.

Emily Lewis:  Okay.

Jack McDade:  And in the future, we might have a third or fourth type like maybe we’ll use the module or something.  It’s whatever label we’d choose to ascribe to it without trying to like rebuff anybody.  [Laughs]

Lea Alcantara:  [Laughs]

Emily Lewis:  So…

Jack McDade:  But as of today, it’s plugins and field types.

Emily Lewis:  [Laughs]  So for developers that are interested in building that type of thing for Statamic, are there restrictions?  Have you worked with anyone directly to help them in their development?  Do you propose ideas to different developers?  Like how does that work with an add-on developer who’s not part of your two-person team?

Jack McDade:  Yeah, we’d love to do anything with anybody practically.  We’ve given people a read access to our repo so they can kind of see what’s going on or submit pull request to the core so if anyone is interested in that, just email me, jack@statamic.com and then let’s talk about it.  We are trying to make it as easy for everybody as possible so we’ve worked with developers one on one to kind of do like a best practices review of their add-on because they’re really excited about it, or we’ve added hooks for people who needs something, or have even like kind of reworked our own internal priorities to get a feature out sooner rather than later because it would be really helpful. 

Emily Lewis:  [Agrees]

Timestamp:  00:39:54

Jack McDade:  So like an example of that would be builtwithbison.com.  It’s like the first ecommerce add-on that’s coming out for Statamic, and so we’ve kind of tried to move up some of the membership stuff so that they’d be able to take advantage of that.

Emily Lewis:  Now, in terms of the moving forward with Statamic, like you mentioned 1.7, you hope to have it out before the end of the year, and 1.6.5 should be out sometime this week.  What other things are on the radar for you?  Is it just this iterative development as features become priorities, or do you have any big plans?

Jack McDade:  Yeah, all of those things.  [Laughs]

Lea Alcantara:  [Laughs]

Emily Lewis:  [Laughs]

Jack McDade:  We’ll continue to iterate and fix bugs and add features and enhancements.  We’ll also be releasing a few more first-party add-ons.  At least one, if not two, by the end of the year, so we have a search add-on called Bloodhound.  That’s going to be coming out really, really soon.  We are starting to see that out right now to get into people’s hands and we’re really excited about that.  Also, we have the Trading Post which is another thing we support that we’ve been tackling, and after 1.7 is logically 1.8.

Emily Lewis:  [Laughs]

Jack McDade:  [Laughs]  And so that we’ll have more features.  We’ll probably have more features for add-on developers to hook into the control panel and multilingual stuff and we have some really cool things I don’t want to talk about yet in case it doesn’t make it into 1.8.  But we have a lot of plans for a lot of really cool stuff, and at some point, there will be a 2.0 which will probably break some backwards compatibility for the sake of us correcting some design decisions that we have had to live with since the beginning and so that will be really cool too.

Lea Alcantara:  Well, what I’m a little bit curious about that you didn’t mention, do you have any plans for further educational materials like any type of extra tutorials or a class, or do you have any other plans for that?

Jack McDade:  I think we were planning to just delete the docs completely and to see what would happen. 

Lea Alcantara:  [Laughs]

Emily Lewis:  [Laughs]

Jack McDade:  Absolutely, we’d really wanted to do at least two parallel screencast series, and we’re really hoping to do that soon.  We get caught in the weed sometimes.  We brought in a support guy.  Gareth Redfern is ongoing part time on support, so if you’re in the Tender Support board, you’ll see him in there all the time.  So we’ve been trying to take some of the load off of us so that we can actually implement these things we want to do.  So we’ll probably do a screencast series on building add-ons which I think a lot of people want to see, and then we’ll do a longer series on building a site or series of sites to kind of show you the full circle on what Statamic can do.  In addition to that, we want to supplement our documentation with a bunch of quick 30-second videos.  So there’s a lot of things we want to do as soon as we can make the time for it.

Lea Alcantara:  Well, that sounds good. 

Emily Lewis:  Yeah, and it does, and I will say that I learn in lots of different ways.  Sometimes I learn best from reading and following along.  Sometimes learning best from videos, but I think one of the things you described earlier in our discussion was trying to make the documentation really readable.  I mean, it’s almost like saying wine is drinkable.  It’s ridiculous.

Jack McDade:  [Laughs]

Emily Lewis:  But it is really readable.  The one thing that I felt like I miss, and I think I mentioned this in the beginning, is I kept thinking of it from a control panel perspective first, and I think that’s just my history of working with content management systems.  But I feel like the documentation is pretty solid for just reading through and following along.

Jack McDade:  Yeah, and maybe that’s something that we need to address early on and I can teach it like, “Hey, you absolutely can do a 100% of everything without the control panel.”  And making sure people know that, and maybe that’s not clear enough, and so we’ll definitely take a look at that.l

Lea Alcantara:  Awesome, well, Jack, we spoke a lot about Statamic today, but that’s all the time we have. 

Jack McDade:  Right, but I’m going to tell you about so many things. 

Lea Alcantara:  No…  [Laughs]

Emily Lewis:  [Laughs]

Jack McDade:  [Laughs]

Lea Alcantara:  But thanks for joining us, Jack. 

Jack McDade:  Yeah, thanks, and if you get a chance, follow Statamic on Twitter, that’s @statamic, and keep in touch.

Emily Lewis:  Cool.  Well, speaking of that, in addition to following Statamic on Twitter, where could our listeners follow up with you online?

Jack McDade:  On Twitter @jackmcdade, and if you want to email me, jack@statamic.com would be a great place to do that.  If you want to email us as a group which is really just 2-1/2 people, you could email us at gentlemen@statamic.com.

Lea Alcantara:  [Laughs]  Nice.

Jack McDade:  And we’ll try and get back to you as quickly as we can.

Lea Alcantara:  [Music starts]  It sounds great.  Now, we’d like to thank our sponsors for this podcast, Visual Chefs 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 which is the last CTRL+CLICK of 2013.  Lea and I will be taking a look back at the past year in our annual yearend review episode.  Be sure to check out our schedule on our site, ctrlclickcast.com/schedule to see what we have lined up for you in 2014.

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:45:19