What’s PyroCMS?

What’s PyroCMS?

Tutorial Details
  • Difficulty: Easy
  • Completion Time: 15 Minutes

PyroCMS is a content management system that, in recent months, has been growing in popularity, due to its intuitive back-end design and lightweight, modular architecture. Described as “a simple, flexible, community driven content management system,” PyroCMS is easy to learn, understand, and own.


Why PyroCMS?

…More flexible and cleanly organized than other CMS platforms.

In fact, PyroCMS is built using modular MVC, which means (in short) that each part of the system is its own micro-instance of MVC. This allows the system to be more flexible and cleanly organized than other CMS platforms. PyroCMS describes itself as a simple, flexible, community driven content management system.” And because PyroCMS is powered by CodeIgniter (at least for a bit longer, while the team migrates over to a Laravel backend), it is easy to learn, understand, and own.

While it isn’t necessary for you to know the definition of modular MVC to use PyroCMS, it’s a good idea to brush up on what it refers to, before you build an add-on for PyroCMS.

PyroCMS Website

Who Develops PyroCMS?

Needless to say, PyroCMS is in very good hands.

The core developers of PyroCMS are Adam Fairholm, Jerel Unruh, Phil Sturgeon, and Joshua Pekera, all of whom make frequent contributions to the project. If you’ve worked with CodeIgniter in the past, you’ve likely run across Phil Sturgeon’s name before. He’s authored a number of very useful libraries for CodeIgniter, including a RESTful server implementation, CodeIgniter-cURL, a popular template library for CodeIgniter, and CodeIgniter oAuth solutions.

In similar fashion, Jerel Unruh wrote some of the largest components of PyroCMS, including the Multi-site Manager, a part of PyroCMS Professional that allows site admins to create, delete, and manage entire websites for their clients from a single interface.

Needless to say, PyroCMS is in very good hands.

Beyond the contributions of its core developers, PyroCMS has grown rapidly to be translated into more than 22 languages and accepted code from over 120 contributors. It is a growing open-source project!


Why Consider PyroCMS For Your Next Project?

There are a number of features that make PyroCMS a very viable option for your new website project. They include, but are not limited to:

Modular MVC

Module MVC is about taking a large project and breaking it down into many smaller, manageable pieces, with each piece of that large project becoming, itself, an instance of MVC. Having this programming pattern at your disposal makes PyroCMS very powerful and highly organized. If you've already downloaded PyroCMS, take a look in this directory:

[site_dir]/system/cms/modules/

If you haven't yet installed PyroCMS, what you'll find within this directory is every part of the core system broken down into a module. This same architecture is also used for system add-ons, and is a big part of what makes PyroCMS so easy to work with.

Control over navigation menus, email templates, and 301 redirects

In the PyroCMS control panel, admin users have the ability to build custom menus/navigation and email templates for use by the system, including add-ons. Admin users can also manage 301 redirects, using the built-in Redirects module.

Easy theme development

This particular part of the system is too large a topic to address in this introduction to PyroCMS, but building a theme in PyroCMS is easier than it is to do in WordPress and other systems, which leads to time savings. At the core of how PyroCMS outputs data is the Lex tag parser. For designers and front-end developers, tags are a simple syntax to display content and perform basic logic operations. For developers, tags are the way in which you can get your data into layouts.

Mobile device detection

A nice feature of PyroCMS is its ability to easily display separate layouts for mobile. As part of a theme, you simply place your mobile layout into a separate folder than your default web layouts. That separation is highlighted in the following examples:

Your default layout would be in a template folder, like this:

your-theme/views/web/layouts/default.html

While your mobile layout would be in a template folder, such as:

your-theme/views/mobile/layouts/default.html

Module view over-loading

Don’t like that default theme layout for the blog module in PyroCMS? Hate the way the comments are output by the system? No problem. You can customize them anyway you wish by overloading the views associated with those modules. PyroCMS allows you to replace any module view with a view inside your theme. Simply copy:

system/cms/modules/blog/views/posts.php

to:

addons/[site-ref]/themes/[theme-name]/views/modules/blog/posts.php

Once this view file is in your theme, you can edit it however you like to get the design you desire. You can learn more about overloading module views in the PyroCMS documentation.

Blog

A blog module comes packaged by default in PyroCMS. Included, if you need it, is Akismet integration to help control spam comments.

Analytics, Akismet, Storage Provider (Amazon S3 and Rackspace), SMTP, and Twitter Integration

Out of the box, PyroCMS plays quite nicely with other services. The files module, for example, offers built-in support for cloud file providers, such as Amazon S3 and Rackspace. You can place a Twitter stream on a page using the included Twitter widget, and even send email from your site using SMTP.

PyroCMS is easy (and I mean easy) to extend

For me, as a developer, the most exciting feature of PyroCMS is how easy it is to extend. Building an add-on for PyroCMS is incredibly simple, when compared to other platforms. Part of its easy-going nature is that you’re working in modular MVC. Also, a module add-on contains a “details.php” that has all of the "meta-data" and installation instructions for the module. Adding a module is as simple as adding a new folder within the “addons” folder, and taking advantage of CodeIgniter. You can learn more about building addons for PyroCMS in the developer docs.


How to Get Started Using PyroCMS

If you are just starting out, though, you can use the community version of PyroCMS.

PyroCMS comes in two different versions: a free community version and a professional version. The differences between the two are few, but include some powerful features. The professional version includes PyroStreams (a module that lets you build custom data streams for your site), a multi-site manager, and more. If you are just starting out, though, you can use the community version of PyroCMS. It’s a great choice for small to medium sized websites.

You can download PyroCMS from their website or clone the latest version from GitHub.

PyroCMS Installer

After you’ve downloaded and unzipped the PyroCMS files into your web root, loading the project in a browser for the first time will bring you to the PyroCMS installer. The installer will guide you through the steps necessary to install PyroCMS, including checking your server for the required software. Check out the server requirements page for a detailed list of what you’ll need. The installer, itself, supports multiple languages and can get you off the ground with PyroCMS very quickly.


Learn More About PyroCMS

If you require support or have questions, the core developers and community members of PyroCMS regularly answer questions on the PyroCMS forums. You’re also encouraged to pick up a copy of Phil Sturgeon’s new book about PyroCMS, titled Catapult into PyroCMS.

Now, please go discover PyroCMS! You won’t be disappointed. Questions? Leave them below! mm

Note: Want to add some source code? Type <pre><code> before it and </code></pre> after it. Find out more
  • http://www.wpguru.com.au/ Robin Thebs

    The link to the PyroCMS at very top doesnt work.
    But thnx for sharing the new CMS.

    • rmwebs

      PyroCMS isn’t new, its 3 years old now :) The docs arent great, but if you can get around that, the system is pretty decent with a great bunch of community developers.

      • http://www.wpguru.com.au/ Robin Thebs

        Thanks for the info.

  • http://miralize.com Sean O’Grady

    Used this CMS before. Its good, but it gets powerful with the PyroStreams addon

  • Patrick Miravalle

    Seems pretty nice, but I can’t seem to figure out what the advantage of using this is over other established CMS platforms ( such as WordPress ). Practically every feature listed in this article has already been done a 100 times over by other content management systems, and I just don’t see anything unique or special in this case that would make me want to switch over.

    • zvineyard
      Author

      A large part of the reason I moved is how PyroCMS takes advantage of modular MVC. Getting past the procedural code in WordPress for well organized object-oriented PHP was a professional move that allows me to save time in web dev projects.

      • Patrick Miravalle

        MVC is possible with WordPress, although it might take a bit of effort to make it streamlined.

      • styx972

        No,not really.
        The hook system turns any attempt to use real MVC structure in an insane collection of unmaintenable soup.
        Not ot mention that most of 3rd party plugins are crap as well, coded like we’re still in 1999.
        WP is procedural and don’t care about SoC. Why should i ? If the client specifically ask for WP, i give him WP code.
        And since debugging ugly code takes longer, i gain more money. Yay WP!

      • http://www.facebook.com/donallen Donald Allen

        MVC is not possible in WordPress, as the core itself is procedural.

  • http://twitter.com/jholyhead James

    You haven’t explained why I should choose this over WordPress.

    Saying that theme development is easier than in WordPress tells me absolutely nothing. How is it easier? What are the limitations of PyroCMS’ approach?

    Nothing in this ‘tutorial’ would justify me spending half a day experimenting with PyroCMS.

    • http://miralize.com Sean O’Grady

      From a long time WP Dev, I dont find it easier, mainly because I had to relearn a lot. I’m sure it gets easier

      • http://twitter.com/jholyhead James

        but if it doesn’t do anything more than WordPress, why would a WordPress dev put the effort in to overcome that learning curve? That’s the question this post should have addressed, instead we got a load of buzzwords.

        Plus, I get very nervous nowadays when I hear about a CMS switching frameworks on the back end. I got burned by Umbraco 5 and I’m not keen to repeat the experience.

      • zvineyard
        Author

        I like your idea of writing a post about “why would a WordPress dev [should] put the effort in to overcome that learning curve.” I believe it is worth it. PyroCMS does do a lot more than WordPress. It allows you to work in object-oriented modular MVC and gets you past the clumsiness of procedural extensions. And not having the Loop in the middle in all of the template files that provide your final HTML makes for a much cleaner coding experience. MVC separates the logic from the output. Also, there are lots of simple things like: instead of having to customize the WordPress sidebar or filter your content into the get_content() function, you can just add an addon to your site by placing a Lex tag in the WYSIWYG.

      • Ryan Thompson

        The learning curve is miniscule at best. It just makes sense. If you’ve been a dev for long, that’s just it.. It’ll just seem to make more sense. He time you put into learning WP will seem silly by the time you get to the same point with Pyro.

      • http://twitter.com/JBWftw Jake Williams

        Until a customer specifically asks you for a wordpress site…

      • http://twitter.com/SlKelevro Sergey Slevin

        > if it doesn’t do anything more than WordPress, why would a WordPress dev put the effort in to overcome that learning curve?
        Sorry, but a programmer doesn’t ask such questions. Only a manager, or a low-skill monkey who makes sites by just installing cms-es could ask it.

        Not only WHAT it does is important, but also HOW it’s done. My guess is – this ‘how’ in WP just can’t be compared to the ‘how’ in Pyro, especially with Pyro moving to Laravel.

        ps. Never used neither WP nor Pyro, but heard enough sad stories ’bout WP to know that it’s a mess.

      • styxies

        Don’t get nervous, the world need dev who like to work with a confortable tool who will never break backward compatibility.

        WordPress will never be enterprise level code and does not pretend to.
        Although I’m always surprised when I see a “dev” who’s afraid to learn something new. Unless “wp devs” are a specific kind of dev ?

      • http://twitter.com/JBWftw Jake Williams

        WordPress will never be enterprise level code and does not pretend to…

        Err… you are aware that numerous enterprise level sites use wp, right?

      • styxies

        Err.. you are aware that numerous enterprise level websites use tables for layout, right ?

        Does that make them an example ? Fuck responsive & CSS, table is enough, big corporations using them!

        You do know that “enterprise level” does not mean just “used in big enterprise”, right?

      • http://twitter.com/JBWftw Jake Williams

        Lol, now you’re just using conjecture to try and rationalize your opinion. When sites like CNN, who are probably top 10 in the world for pageviews and active users, are using WP – I consider that enterprise level. They don’t use tables.

        Also, responsive design has nothing to do *at all* with wordpress as a CMS. Literally nothing. You’re talking about front end stuff while trying to argue back end stuff, its almost as if you are new to this ..

      • styxies

        Do you judge code quality on whatever sites are powered by WP or can you see, understand and judge WP source code by yourself ?
        Are you’re playing dumb ?
        “WordPress is enterprise level”… Yeah, right!

      • http://twitter.com/JBWftw Jake Williams

        WP has flaws, and the source code is not perfect, but the same goes for many frameworks out there. The fact that you’re sitting here trying to tell me that WP can’t be used at the enterprise level, i.e. “Enterprise software, also known as enterprise application software (EAS), is software used in organizations, such as in a business or government” is hilarious to me, seeing as how several federal govt websites as well as many retail supergiants are currently using wordpress. Sorry, you can have the last word, but I’ll sleep well tonight knowing that there is one more goon of a developer out there that makes me look good in contrast (that’s you)

      • styxies

        Looking like a fool and don’t even know about it.

      • http://www.facebook.com/donallen Donald Allen

        PyroCMS is changing frameworks, but much of the API will remain unchanged. You’re the only person I’ve seen bring up that switching from CodeIgniter to Laravel might be a negative.

    • Guest

      You shouldn’t change. I use codeigniter since 2008 and I never used a CMS before Pyro appeared, as Pyro is based in Codeigniter it was easy for me to start using it; but this is only my experience, if you don’t want or need to change no one is forcing you to do it so.

    • http://krasimirtsonev.com/ Krasimir Tsonev

      WordPress is hell for the programmer. It’s full with anti-patterns, most of the things are just global functions. The views are full with business logic. By my opinion is not modular enough and it is really difficult to work with it if you need something custom. There is no control on the plugin quality at all. That’s why there are so many addons, which are bad written, undocumented and sooner or later break your site. I didn’t work with PyroCMS, but at least there is some kind of architecture in the core. Unfortunately WordPress is a mess of ideas and techniques which don’t offer flexibility. It became really popular and it is used for everything, but really, from developer’s point of view is not something that you will enjoy working with.

      • http://www.facebook.com/jesus.bejarano.948 Jesus Bejarano

        Ummm, this story sound so familiar.

      • Ian Simmons

        And that dam wyziwyg clients don’t want disabled and those dam P tags! I hate em I hate em I hate em!

      • http://twitter.com/JBWftw Jake Williams

        WordPress is incredibly flexible. Your post would lead me to believe that you have never actually used it for anything but a blog. It is as extensible as any CMS and is a breeze to use. The complaints against wordpress are honestly a little tired, a real complaint would be that they haven’t been careful enough about updating and removing functions so when your client updates their site, everything breaks. That’s my grip with WP

      • http://krasimirtsonev.com/ Krasimir Tsonev

        Sorry, but I can’t agree with you. The codebase of WordPress is awful. The architecture of the whole CMS is a mess and it is really difficult for bug tracing or custom modifications. I spend enough time working with WP to say that it’s not a good solution if you plan to modify it. Yes, if you want a simple blog, then ok, but otherwise there are tons of better products. Few things that makes WP a bad system:
        - most of the configurations are kept in the database
        - the routing is so deeply hidden
        - the views are full with business logic. Keeping the html and php in one place is not a good idea
        - the multi-site version has a lot of bugs and required additional fixes
        - migration of WP site to another domain is too complex
        - did you try to work on a WP site having local, staging and production environment. It’s not that flexible as you think it is :)

      • http://twitter.com/JBWftw Jake Williams

        - most of the configurations are kept in the database: which is extremely small in numbers on a fresh install, you can easily change anything that you need to.. and you rarely will need to

        - the routing is so deeply hidden: Err… well the routing is embedded for a reason and not like, say, Pyro or Codeigniter, where routing is up to you. To truly change/enhance the routing you will need to develop the class yourself. This is a fault, but not a huge deal since WP provides you with enough tools that can be used any way you need to use them which can emulate complex routing systems to some degree

        - the views are full with business logic. Keeping the html and php in one place is not a good idea: This is really more of a fault of vanilla php, and the reason why it is done this way is because it can be mixed in with plain html. If it were like other back end languages that required a templating engine to display itself in the html, then it would not work this way. You can always do what I do and go with jQuery or angular to do asynchronous data calls and write models to do what you want with that data and keep the HTML very simple

        -the multi-site version has a lot of bugs and required additional fixes: haven’t used this, so I wouldn’t know

        - migration of WP site to another domain is too complex: It would appear so, but you change the domain in the admin panel, then you simply export the database to the new domain

        -did you try to work on a WP site having local, staging and production environment. It’s not that flexible as you think it is: heh, this is kind of a pain, but its not so bad if you have a process for it, it is a small nuisance in the grand scheme of things

      • styxies

        So you basically recognize that WP’s getting old but don’t care about what other solution brings to the table to resolve its shorcomings ?

        - Conf outside of the db: other does it better
        - Routing: Other does it better.
        - Views: Even the example in the codex shows how to methodically mix together different concerns. The default template is a huge mess. And don’t even get me started on “the loop”
        - Multi site: Since you don’t use it it should be not that important right ?
        - Migration: If only it was this simple. But i’m sure that’s what they had in mind with the export tool.
        - Local, Staging, Prod: A small nuisance ? You work alone ? Are you a developper to begin with ? A small nuisance…

      • http://twitter.com/JBWftw Jake Williams

        I work alone, and I don’t need staging environments for the majority of sites that I do. I like wordpress because I can fully develop and get a 5 page ecommerce site up in under 8 hours from scratch. It is so incredibly easy to use and not to mention extremely flexible.
        I recognize it is getting old, but it is also getting better. They surprised me with their last release, nixing a lot of crappy ambiguous functions in favor of new, more conventional functions.

        Also, you are not limited by wordpress in any way, only your PHP ability. So maybe those who don’t like WP are the types who expect every feature to be handed to them on a silver platter without ever having to code any actual PHP or do any database architecture? I personally find it is the easiest site to deliver and teach to a customer – because really – THAT IS ALL that matters.

        And yes, migrating a site is that easy. I have done it possibly a hundred times or more

      • styxies

        You’re not a developper, you don’t know what you’re talking about, you don’t even know about other solutions that “might” be better because you don’t care.

        That’s okay.
        But please, keep what you think is the best quality for yourself since you don’t understand how it works nor why it’s not that good.

        “So maybe those who don’t like WP are the types who expect every feature to be handed to them on a silver platter, without ever having to code any actual PHP or do any database architecture”
        That’s funny, because most of us don’t like WP because it assume too much on our behalf.

        You don’t even know what we were talking about to begin with…

      • http://twitter.com/JBWftw Jake Williams

        Not a developer? Sorry, that’s inaccurate. And your lack of knowledge on wordpress does not make me somehow unqualified, since you don’t seem to understand it. If wordpress were so bad, people wouldn’t be shelling out 4k for a tiny site to me on the regular, pal ;)

      • styxies

        I also have clients who absolutely want to use WP and I don’t deny them (yes I also use WP, doesn’l mean that i like it obviously).

        Money that client spend on you or any agencies don’t have any values on WP code quality, bro :o

      • John M

        How is he not a developer? Do you know him personally? Geez man, quit acting like your grandmother wrote PyroCMS and he insulted her personally.

      • styxies

        If he was insulting my grand mother, I would, I would…. I would cry out and ask for help.
        Because you know, I feel so secure behind my keyboard with a pseudonym and all :)

      • Reason

        Is the database architecture of WordPress good then?

      • http://twitter.com/JBWftw Jake Williams

        It is fairly minimal in size, so I’m not super sure why its so relevant. It would take reorganizing to be extremely efficient. It is a little loose as far as relations go

    • http://twitter.com/samiebuka Samuel Ebuka

      I dont think you have to switch its just an alternative. Its just a different aproach. If you know your css OR you php you can do a lot without having to learn much with pyro. If you are happy installing third party modules and themes with slight modifications, pyroCMS might not be for you.

  • http://twitter.com/kajehart Karl J. Gephart

    As a web designer, I’m very sympathetic to developers. Bless them wholeheartedly! BUT, I wouldn’t take a chance on an unknown entity with my clients regarding updating of limited (vs WordPress) plugins or code, no matter how dedicated or awesome they are (and I understand about building a name for one’s business). Heck, I won’t even use Joomla or Drupal. I wish them the best! :-)

    • styxies

      Oh, so you would rather let your clients use a blog engine, with a bunch of poorly coded plugins.
      Interesting, you should also follow your motto until the end, why design yourself, just pick whatever free theme available outhere and let your clients pay for it too.
      Afterall it will be WP branded, “secure, fast and known entity”…

      • http://twitter.com/JBWftw Jake Williams

        “Oh, so you would rather let your clients use a blog engine, with a bunch of poorly coded plugins.”

        What exactly are you referring to?

      • styxies

        Worpress is a blog engine that you can “fold” to act like a cms. But it does not fool everyone, you still have to use the bloginfo() function to access your General Options.

        And while I’m not a fan of the WP core, I can recognize that some part of it are not poorly coded.

        But the plugins, oh the plugins… Most of them are just crap.

        But like I said, everybody’s using them, so it got be “secure, fast and known entity”. just like paint on Windows XP. Who needs photoshop ?

      • http://twitter.com/kajehart Karl J. Gephart

        That’s what I’d like to know! LOL!

      • http://twitter.com/kajehart Karl J. Gephart

        Sorry, you’re not going to hang some guilt trip on me for using WordPress–it offers too many benefits–more than I care to list here. I know a lot of designers who feel likewise. All of my premium paid and free plugins are researched to be top-notch. Further, I can do tons of customization on the backend. But then again, you wouldn’t know that, since you don’t know me.

      • styxies

        You have all the rights to use the tool you want.

        You’re not a developper, so you obviously don’t know what poorly coded does mean and you don’t care.

        It’s ok, when i have to fix websites people like you put together, I gain more money because it takes longer. It’s almost a win-win situation (minus the fact that fixing it is not pleasant).

      • http://twitter.com/kajehart Karl J. Gephart

        This is the last time (=money) I’m going to spend addressing you, who peruses this sight to get his jollies knocking down his competing WordPress designers and calling everyone inferior to raise his own self-esteem. No, I am not a developer, but I have worked with enough server-side languages to have a pretty damn good appreciation. Our company spends considerable time in website meetings trying to convince clients to not insist on us putting up huge splash pages and non-optimized image slideshows on their sites. “People like me” have streamlined hours of code to optimize sites. People like you make assumptions and blanket statements about WordPress designers and their teams they know nothing about.

      • lossendae

        I don’t know you, but i know wordpress.
        A lot.
        It’s crap.
        Someone who come telling us all that WP is enough is just wrong. You’re wrong, deal with it.
        (Note that you can be wrong and earn lots of money, it is not related)

      • http://twitter.com/kajehart Karl J. Gephart

        I don’t need a lecture from you about how I’m running my business. By the way, it’s “Someone who tells us all…”. You have no idea what works for my clients, what their needs are, or how I customize their WP themes to accommodate them. Easily finding quality plugins save me massive amounts of time (which saves me money). Why should I reinvent the wheel when it’s about working smart, not hard?

      • styxies

        Why should I reinvent the wheel when it’s about working smart ?

        Using another CMS is reinventing wheel ? So basically, you’re saying that PHP equal to WP ? Definitively hard.

        No, correct that, this is just plain wrong!

  • Donald Allen

    Hate to say this, but this is a pretty poor write-up on PyroCMS. It’s quite an amazing CMS, but this article doesn’t highlight what makes it different and easier.

    • zvineyard
      Author

      I was really going for a quick into to the system. What I think you are highlighting is the need for more articles on PyroCMS. Honestly, you could write a whole article on the Lex tag parser or addon development. What do you think makes it different and easier?

  • Jan

    PyroCMS is nice, but Processwire is nicer!

    • http://www.facebook.com/jesus.bejarano.948 Jesus Bejarano

      It seems kickass!

    • Ian Simmons

      mysqli? php errors instead of handled exceptions, server platform dependant, had to dig into install file and set db info in an array even though instructions say the installer will go through the install process. Not a good first impression for processwire here.

      • Bhartsfieldja

        Have a problem with Mysqli? Apparently they are moving to PDO, though so long as they aren’t using the old mysql native driver, I could care less. You don’t use the DB driver in this system, at all. Everything else you said: unhandled exceptions, manual config — admit it, you didn’t actually install it. Try it for real, you will be pleasantly surprised.

      • Ian Simmons

        really? no, those were the issues encountered in attempting to install it. Don’t use the DB driver? The first error was the one telling me mysqli driver couldn’t be found which of course was because it was not installed since I am using PDO. Then the ‘no such host’ error when it trys to connect to a database to install, which lead me to go find the empty connection values array in the code and fill in the connection details. I wouldn’t make stuff like that up.

  • Ian Jones

    Tried it, liked it, but didn’t love it. Templating syntax is guesswork more often than I’d like. The Admin interface is clean but poorly organised. I had hoped it would win me over but I have very demanding standards for a CMS. PyroCMS borrows a lot from ExpressionEngine which is great, but sadly it doesn’t improve on it. Same old clunky channel/streams and field management. It feels like it is built by developers and that it hasn’t had any love from experienced UX/UI designers. I’m pinning my hopes on http://www.blockscms.com

    • Ryan Thompson

      The UX does need some work I agree and I’m glad to say its ready being attended to by a new, very skilled designer ^_^

      • Ian Jones

        Great to hear, I’ll keep an eye out. I really would love to see it become very successful.

    • http://vincentalamale.com Vincent Alamale

      I agree to the need for UX improvement. But for features, blockcms doesn’t compare. Why would I pay for users management, Amazon file management etc when pyrocms has them free in the Community Edition?

      • Ian Jones

        I guess it depends on your point of view. I see blocks as overall a more professional offering, with a nice UI (We’ll have to wait until it’s out of beta to properly judge). That matters to me, because technical capabilities are only half the picture of what a CMS has to do. So many CMS’ are lacklustre when it comes to actually handing them over to users.

  • Visualcohol

    I just had a job finished with PyroCMS. It really was a pain in the /. I started it to try this CMS now I regret it, since it was a paying job and to maintain the whole system takes a lot of trouble. The extensibility mediocre at best. Multilingual front end support missing – bugs in core – template system not as flexible. Switched to processwire – its a dream to work with, fields included, and its a feature you have to pay for in pyro

    • http://twitter.com/samiebuka Samuel Ebuka

      its Hard to believe that it was a pain.

      • Viktor

        So lets take multilingual support – In Europe its a common task to make sites multilingual – the official statement of the Pyro developers is, that its too messy to implement and you should purchase pro so you can install and control multiple installations of pyro and by that achieving a multilingual page. So I made multiple installation, but i needed to make a common user database, thats not a feature in PRO, this is when i had to fiddle around the core, got to how Pyro channels DB table names etc.

        I choose pyro because I knew Codeigniter – CI is the framework, which is easy to work with, but at the end of a project you have a feeling that you have written something messy, and on top of that comes an individual implementation of that once more (the CMS)

        I agree with you on the issues regarding Drupal and Joomla, but from the point of extensibility, Processwire gave me freedom to solve problems via module development or procedural code, it just lets me code however I want and still works.

        In case of Pyro – its built on CI and while CI is a good framework, a CMS built on a framework is is harder to understand and can lead to bad habits and hour long debugging what went wrong and on which layer of the process

      • http://twitter.com/philsturgeon Phil Sturgeon

        Multi-lingual support means something different to everyone. Some people want to translate a single page into French and German, some do not want that same page to exist for both languages (because its only relevant to some). Some people want a page to translate back to having English content if no French or German content exists.

        These are 3 totally different approaches to Multi-Lingual sites. Then where does multi-territory support come in? English British, US and Australian are all totally different areas, should they see the same blog? I doubt it!

        You don’t NEED to buy Multi-Site to make a Multi-Lingual site, that is one of many options you have at your disposal. Many developers have simply made sub-pages so they have /en/foo and /fr/foo with totally different content. This is great for SEO, lets you have different slugs, you can translate a page if you like or you can not have it available in that language if its irrelevant. If you want different content for two different territories you can make /en-GB/ and /en-US.

        You can very easily make a multi-lingual site with PyroCMS. If you’d like more help with this approach then please get in touch on the fourms or IRC channel. It sounds like you got some bad advice for your specific needs.

        CodeIgniter Sessions: What was the problem? They are cookie based (like all PHP sessions) but they do not run through the native $_SESSION variable for multiple portability reasons. In 2.2 you can easily set up Redis or Memcache as handlers for your sessions. What single sign-on approach did you use? That sounds like overkill!

        Community: We have a search bar at the very top left of the page, did you miss it? Should it be more noticeable?

      • Viktor

        Thanks Phil! I agree – the client I had, had no clear business strategy, and was not too tech oriented, he had future plans needed a clean separation, so I went for the multiple installations, with single user database, no pro.

        Finally everything worked out, but my personal experience with this CMS wast flawless, in comparison to other products it was sluggish. (the admin has yes/no switch with no label/user field data is stored in BLOB). So these challenges I were able to overcome, but the hard way, and that’s not anyone should experience, since were 20 years now in internet.

        SSO was needed for a phpbb forum – imagine this – user needs a forum engine – you can buy one from pyrocms – rated 3 obscure stars – but its hardly a professional forum engine. So I used CIs encryption class to work with its cookie and get data from the database – the odd thing is that the Pyro session cookie changes over time – one day it consists the email tomorrow its gone – with time it looses user info – the only persistent thing is the SID – to figure this out took some days of wtf logging outs.

        the search i didn’t notice – thx absolutely my fault :) there were a lot of little annoyances while i finished this job i don’t wish to meet again – that’s simple my experience

      • http://twitter.com/philsturgeon Phil Sturgeon

        Integrating with forums is not that hard, we’ve got our site on Vanilla and it’s working ok. CodeIgniter 3.0 allows for native sessions too, so 2.2 can use that – sadly its a CI limitation which usually does not offer any problems. But if you expect a CMS to magically integrate with phpBB then you’re setting yourself up for a fail. I used to work on the team that integrated Postnuke with phpBB and it was the most ridiculous issue ever.

        If you’ve got missing fields or notice anything slow then you need to report it. 2.1.5 has no known bugs like this, so either you’re the only person in the world with this bug or nobody else has noticed it.

      • Viktor

        Vanilla wasn’t sufficient here – they needed a real forum not a shout-board. phpbb has excellent plugin system to integrate, CI was the real problem. Solved it, was fun.

        I dont need to report it I can report it, and no need for that now, because I switched, and yes, happens that nobody notices, or cares about something, since nothing is perfect.

        I talked about the annoyances I found while working, and I haven’t even talked about features that pyro doesnt have and that’s a lot. (beginning from streams module)

        I worked with this CMS, these are my experiences, found a better solution which fits my needs.

      • http://twitter.com/philsturgeon Phil Sturgeon

        If I knew which version of PyroCMS that is then I could fix it, but partial screenshots and partial complaints are not enough to help better anything. I know that you don’t care now that you’ve moved, but without giving me any means to fix it this is not constructive criticism, which is something I believe to be important.

  • Bluroon

    I thought PHP is dying :)

    • http://ashleyclarke.me/ Ashley Clarke

      Seriously?

    • http://www.facebook.com/jesus.bejarano.948 Jesus Bejarano

      Haha funny.

    • styxies

      You thought PHP “was” dying :)

  • Awebcreature

    Try ProcessWire.

  • Jacob Clark

    Great new CMS. and BtW, the name looks Pythonic more than “PHPic” ;-)

    • http://www.facebook.com/jesus.bejarano.948 Jesus Bejarano

      First: Is not new, is an pretty old CMS,
      Second: “Pyro” stands for fire, that is a reference to the “Igniter” from codeigniter, i know that 90% of the projects in the python community start with “Py” but that doesn’t mean that all project have to be label like that :).

      • http://www.facebook.com/donallen Donald Allen

        Actually, Pyro is a reference to the original developer, Phil Sturgeon. His online handle used to be Pyromaniac.

  • http://twitter.com/samiebuka Samuel Ebuka

    I use PyroCMS because I am a programer and it makes things a lot easier. If you are a developer its an awesome ready made backend. If you are frontend developer you can do very advanced features with pyrostreams. I you are a backend developer you have all the power of codeigniter behind you.

    Its not a do all for all CMS like wordpress or Drupal or Joomla. Who wants that? They can be a nightmare if you are trying to develop custom features.

    Bottom line. I am developer and I want to do custom sites. I love pyrocms because I dont want to spend hours coding contact forms, user management, templating features, custom SEO etc and other backend features. There really is nothing like that out there. Other CMS are all geared towards endusers that really dont want to code which is fine, but its great to have an alternative for developers. :-)

    • zvineyard
      Author

      Yes! I couldn’t have said it better.

    • bgbs

      I don’t think people understand WP. WP pretty much has covered all the bases by now. In WP you do not need to code SEO, templating, user management, contact forms and other things of that nature, as they are readily available in the form of plugins. What people do not realize about WP is that with WP you should be spending more time researching for readily available features than coding them or investing time into unecessary developments. If you research well, you’ve pretty much covered all your bases and cut down heavily on your development time. That is the reason why I’ve stock with WP and avoided learning new CMS’s that seem to popup every few months.

      Now, I understand there are exceptions, such as one system doing something better than the other system, for a particular project. But for the most part, you can get the same thing done with WP with couple of workarounds or couple of plugins. Some people hate plugins, but I learned to appreciate them (the quality plugins of course) because I know the author keeps them updated, and I can always find support if need be, which you don’t get with your own cooked up projects.

      Thirdly, unless you’re a front-end web designer working with a developer, my advice just stick with WP.

      • styxies

        Because you like to give half baked & unsecure website to your clients does not mean that you’re right about it.

        As a developper, the only time when WP is justified is if the client don’t want to spend money on his website. Then, if he don’t really care, I don’t either and give him WP website in no time.

        But i remain straight with him, he will not have any custom functionalities baked into it.

        And if he want later, it will cost him higher than doing it with another tool.

        WP itself is not bad, what i found really irritating, is people coming out saying that WP can do anything so “why do people came up with new solution” ? Seriously ?

      • bgbs

        Not at all. Listen, unless ur a super duper developer who can guarantee to craft secure and efficient code, you may have a point, but I do not know of many such developers and i worked with many. In fact good developers are a huge defecit. The bad development code goes beyond WP because it is rooted in developer’s lazy personality. U could just as we’ll produce hedious code using other CMS’s while patting ur self on the back for being secure and efficient.

        Like I said, u can find lots of secure and brilliantly written plugins or custom solutions for WP if u know where to look.

      • styxies

        In fact, I don’t like the whole hook system, how it is used and what it implied organisation wise.

        Did you ever had to use heavily modified RW rules along with custom post types & taxonomies ? And organize that in logical manner without having one hook breaking everything because it’s not in correct order (Which you can only guess) ?

        That is just an example.

        I like WP for simple projects with little custom implementations, or only simple blog, but for the rest, it just feels wrong.

  • Darrin

    Your intro link to pyrocms.com is broken

  • Ian Simmons

    I know it’s been around a while but I never tried it out. Really cool using php5.4 how quick it was to git clone to the desktop, run a php server, and install it. It would be cool to see some tutorials on theming, modules, widgets, etc.

    • zvineyard
      Author

      Thanks Ian, I agree.

    • madbonkey

      For a quick start, just look at the core modules and themes. Not too hard to wrap your head around, if you have an afternoon to spare :)

  • Anonymous

    Great Article

  • LePier

    Hey there,

    I already realized a few projects with PyroCMS. I agree that it is nice to work with when it comes to developing custom modules. I’d clearly recommend it to other developers, but the missing support for multilingual pages unfortunatelly is a real killer. You can agree with a customer on 99% of the features, if he wants to have his site available in several languages, the whole approach with PyroCMS dies.

  • karmicdice

    Is it just me who noticed that author uses incognito mode on his chrome? I wonder if it is by habit !!!

    Just kidding ! ;)

    Nice read! Thanks :)

  • rajivseelam

    I felt laravel tag was misleading. :(

  • http://twitter.com/stevenwadejr Steven Wade

    I’ll just say it once. WordPress is NOT a CMS. It is a BLOG that has been hacked and hacked to look like a CMS. WP is the two dollar hooker, while PyroCMS is a fine and classy lady to be treated as such and spoiled with fine wine and jewelry.

    Pyro may be smaller at this point, but it is the BEST CMS that I’ve ever used. That list includes Joomla (I was a die hard J fan too), Drupal, WP (when needed), Wolf, ModX, and countless CodeIgniter based CMSs.

    P.S. PyroStreams is possibly the best thing to ever happen to any CMS out there.

    • http://twitter.com/JBWftw Jake Williams

      Spoken like someone who doesn’t understand extensibility or wordpress in general

      • madbonkey

        Really? You’re comparing Pyro’s extensibility to WP’s? You’ve never actually written the same module for both, do you? Don’t speak of extensibility when you really mean the amount of plugins available (80% of WPs plugins are already in Pyro by default, and there are only a handful of plugins for WP which are worth installing).

      • http://twitter.com/JBWftw Jake Williams

        I don’t understand the obsession with talking about plugins when it comes to wordpress. Plugins aren’t really meant for developers unless they are for visual purposes. IME its faster and safer to write your own plugins or simply implement the class into WP without using it as a plugin. When I talk about extensibility I mean the ability to accommodate the needs of your clients, which is all that really matters. WP is just as extensible in that sense as any other PHP framework. I should preface this with saying I prefer CI to WP all day, but when it comes down to it, WP is a better package to deliver to a client, especially given the typical cost restraints of a small business (my primary customer)

      • styxies

        If you really are seeking flexibility you should definitively checkout ProcessWire.
        It really get out of your way, while PyroCMs for example does have more conventions.
        I like conventions, some people don’t.
        But i’ll take ProcessWire anytime against WP.
        Unless you’re doing a website for free, WP is always a bad choice.

  • http://www.facebook.com/donallen Donald Allen

    I am working on a tutorial showing you how to build a restaurant finding mobile website with PyroCMS and PyroStreams.

  • Preston

    The backend seems remarkably similar to Expression Engine (also Codeigniter based).

    Forget the comparisons to WordPress; how is this different/better than EE?

  • MPinteractiv

    What makes WordPress successfull is that wordpress actually provides a blogging plateform , so customers are used to work with wordpress , because they had previous blog on the plateform or whatever. Is it a good product ? doesnt matter client are used to it. Isnt net.tutplus a wordpress site ? yes it is. It is like people saying php is bad , ruby/python/.net is better … at the end of the day, the only thing that matters is the ability to cheap product with the solution.

    • lossendae

      I remember I read somewhere that Nettuts was no longer powered with WP.

      • JML

        Last time I did ‘right click-> view source’, there were mentions of ‘wp-content’ everywhere :)

      • lossendae

        Err, good catch :)

        That’s one point that I don’t really like about wp, it’s pretty difficult to hide the fact that you’re using it. Giving potential pirates an easy hint at where to attack if “needed”. Not that it happens often though…

  • Martin

    Hellow , now PyroCMS is extend by MX ( HMVC ) , is in Laravel also HMVC option ? Can I call one module from another ( like in CI Modules::run(‘somemodule/method’) ).

    Phil Sturgeon

    If I learn pyroCMS today and when switch to Laravel how many changes from developer perspective will be ?

    • http://twitter.com/philsturgeon Phil Sturgeon

      Laravel to any developer who has spent any time with it is always described as a “logical next step” to CodeIgniter. The framework borrows heavily from CodeIgniter but adds so many new features, strong testability, an AWESOME database layer and all that good stuff.

      I wrote a post just now about the progress in the conversion:

      https://www.pyrocms.com/blog/2013/02/progress-with-eloquent-and-laravel

      It’s a little way off, so there is no reason to be scared of non-existant code – and 2.3 will be AWESOME fun to play with – but still work with the CodeIgniter DB layer if you’re not ready to switch things up.

      3.0 will have the same idea of Modules as it does right now, but we’ve never really supported or required HMVC and probably never will. If you’re calling one controller from another then there is a good change whatever it is you’re doing should have been a library or some other class instead – which will be much easier with the kick-ass new PSR-0 autoloading logic in 2.3.

  • SirElroyDaxter

    Yep, but Laravel(http://www.laravel.com/) FTW!

  • Andrew

    What about security? SQL injections or hacks. Is this cms bullet proof?

  • Martin

    WordPress is the best, free and opensource and can do anything but less secure than cms like drupal

  • http://www.fedesilva.com/ Federico Silva Ponte

    Is there any good CMS based on Laravel? I mean, I know there’s PongoCMS, but I wanted to know if anyone here have tried it and how good it is compared with Pyro or wordpress for example.

  • Sharif Sayeed

    I am just new here. But, reading your PyroCMS article becoming interested to learn this. I’ve some experience on Joomla! CMS. So, I’ve doubt that am I suitable to learn PyroCMS. My PHP basic is not so good but learning. Please suggest me, how can I learn PyroCMS?

  • Sharif Sayeed

    Hi, I’ve just download v2.2.0 & installed it
    successfully. But the problem is that when I want to see front end it
    shows Fetal error.
    I’m facing the following problem.

    “Fatal error: Uncaught exception ‘Asset_Exception’ with message
    ‘Found no files matching system/cms/themes/default/js/’ in
    C:wampwwwpyrocmssystemcmslibrariesAsset.php:1130 Stack trace: #0 C:wampwwwpyrocmssystemcmslibrariesAsset.php(780): Asset::find_files(‘theme::’, ‘js’) #1 C:wampwwwpyrocmssystemcmslibrariesAsset.php(720): Asset::get_filepath(NULL, ‘js’, true, false) #2 C:wampwwwpyrocmssystemcmspluginstheme.php(560): Asset::get_filepath_js(NULL, true) #3 C:wampwwwpyrocmssystemcmspluginstheme.php(544): Plugin_Theme->js_url(NULL) #4 [internal function]: Plugin_Theme->js() #5 C:wampwwwpyrocmssystemcmslibrariesPlugins.php(338): call_user_func(Array) #6
    C:wampwwwpyrocmssystemcmslibrariesPlugins.php(249):
    Plugins->_process(‘system/cms/plug…’, ‘theme’, ‘js’, Array, ”) #7 C:wampwwwpyrocmssystemcmslibrariesMY_Parser.php(131): Plugins->locate(‘theme:js’, Array, ”) #8 [internal function]: MY_Parser->parser_callback(‘theme:js’, Array, ”) #9 C:wampwwwpyrocmssystemcmsli in C:wampwwwpyrocmssystemcmslibrariesAsset.php on line 1130″

    After installation I’ve deleted the install file from my local host. But, I can login to my control panel.

    Can anyone help me to fix this problem? I am new in this platform.

  • http://calebserna.com/ Web Designer Philippines

    It’s probably great for hard core developers but from a business point of view, clients still want more mainstream tools like wordpress and joomla. I’m currently working for a large company who is in the process of trashing their whole pyro site since it’s not user friendly and costly to maintain. They don’t want to keep paying a developer just to make a few simple changes.