This will be the beginning on a blog series where I walk through my experience learning Statamic. For those of you not familiar, Statamic is the Ron Swanson of CMSs. It is a relatively new (a little over 1 year old at time of writing) CMS but it can grow a man sized mustache. It is the love child of Jack McDade and Fred LeBlanc, two very talented developers that I am sure eat bacon on a regular basis. But enough with the lumberjack talk...
Some of the reasons why Statamic has captured my interest is that it allows for multiple ways of updating a site. It does not use a database to hold information or entries. It uses a unique file based system where the CMS processes files and then spits out the requesite HTML that is necessary for rending a website. And if I am being completely honest, my knowledge of Statamic at this point in time is zip. I like what I am seeing in the documents so I want to use this blog series as a chance to dive in and learn more.
There are a couple of other things that are drawing me to Statamic. I'd be lying if I said I wasn't lured in by price. $29 for a personal or non-commercial site is cheap for what this system provides you. And $99 for a commercial license is still really inexpensive. Blue Fish still does small business sites in a lower price range ($3000-5000) so spending $99 for a system that gives us a lot of what we need is nice vs ExpressionEngine which can easily cost us $500 when you add in some of the necessary add-ons. Not complaining too much about the price, on larger projects I will gladly absorb it. But in this lower price point it is nice to know we have options that give our clients the abilities that they need to update the site and we can increase our profitability.
The other reason I want to explore Statamic is because it seems extremely easy to create themes. I know the guys (Jack and Fred) are planning on launching the Trading Post which will be a place to sell plugins and themes for Statamic. And I'm betting as Statamic gains more traction the template market will be fierce.
Let's get started, shall we?
Previous to starting this blog post I created a folder on my development server. I also created a subdomain that points to that folder and makes it easy to navigate to my Statamic install. I have installed Statamic in that location. You could easily do this or if you so choose you could use MAMP or WAMP and install it locally. Installation took about 5 minutes only because it was my first time. If you are not familiar with installing Statamic then you can find very thorough documentation on this process here.
Since I've already installed Statamic all I really need to do is update it to the latest version (1.5.1 to 1.5.3). Such a horrible process... I'm joking. The arduous process (joking again) includes uploading the _app and admin folders from the new version you just downloaded to your existing Statamic install. All told it took me about 3 minutes and all of that was me waiting on my AOL sized DSL connection to send the files to my server. There is more information in their docs. Once you've uploaded your files, if you go back into the control panel and refresh you will notice that the version number has changed in the footer. Boom! Done. So far I am very impressed. I'm sure updating a full on website will certainly be a little more involved since you will have to update any plugins that you have installed. But for the most part they have done a great job of seperating out content and template files so that updating is not as messy as some other systems. I am also betting that Jack and Fred have it on their Status Board to create a one click updater. If not then it won't be long before someone does since all you are really doing is uploading the contents of two folder. There are no updates to a database which can, at times, make you hold your breath.
One of the problems I had early on was finding and creating a user so that I could access the control panel. This is the page I was looking for in the docs, but I don't think I found it when I was setting up my install. But once I figured it out I realized it was so easy that I smacked my forehead and ate some more bison jerky. A lot of the configuration stuff you will need to access to set up your install is in... _config. I know... This is really hard stuff here... Within that folder there is another folder called users. So if you are keeping track that is _config/users. Inside of that folder you will find yaml files that define the different users and all of their pertinent information. In a new install you will find admin.yaml.sample. Rename this to admin.yaml so that it becomes usable to the system. So when you open admin.yaml you will see:
--- first_name: Admin last_name: McAwesome roles: [admin] # password: ---
You'll want to make changes to this to reflect your user. For instance:
--- first_name: Marcus last_name: Neto roles: [admin] # password: password-here ---
I changed the first_name, last_name to reflect my name. I left the role as admin since that is really the only role that is available right now. I put in a password where "password-here" is and saved the file. Once you've done that you just log in and Statamic will Encrypt your password. Resetting a password is as simple as deleting the encrypted password, typing in a plain text password in it's place and making sure to log in again so that the system re-encrypts the password.
That is it for this installment. Next up I'll be looking at adding a contact form to Statamic.