By default, Concrete5 comes with a couple of very basic templates (or what Concrete5 calls themes): Plain Yogurt and Green Salad. These are nice-looking but very basic templates that strongly resemble your typical run-of-the-mill Wordpress site. But they're enough to get you going if that's all you're looking for.
Initially, a new Concrete5 site comes with several pre-built pages (such as an About page and a Contact page) that can function either as starting points for other pages or at least examples.
I was able to quickly get up to speed on customizing a site with Concrete5. What's kind of cool is the software includes a pretty nice WYSIWYG editor that lets you edit existing pages on the fly. (They call this "in-context" editing.) If you're not logged in, you just see the page as any visitor to your Website would. But if you're logged in, the page has an additional toolbar across the top, which lets you access administrative features, including the WYSIWYG editor. Then you can simply edit the page, fixing or changing the text.
The only catch is you're limited to the fixed overall layout as determined by the template. But even then, you can modify various parts of a page, adding and changing text and various items known as Blocks. Blocks are basically components such as sections of HTML, a survey or a YouTube video. Concrete5 comes with about 20 different types of Blocks that you can drop onto your page, and, if you're a PHP developer, you can pretty easily create more.
But that brings me to a major question: Do you need to be a PHP developer to create a site with Concrete5?
The answer is both yes and no. If you're not a PHP developer, you can still create a site. But you'll be limited to the basic layouts that the templates offer.
You can add Blocks to pre-existing column definitions, such as a two-column layout with a narrow column on the left and a wide column on the right. But if you want to fully customize a site, you'll need to either find somebody who has created a template with the layout (or can create one for you) or write PHP code yourself.
That said, the amount of PHP needed to customize Concrete5 is actually minimal. A company using Concrete5 would want to either find a nicely designed theme that fits their needs or hire somebody to create one for them. But from there, the programmer wouldn't be needed--a business person would have an easy time adding new content to the site without the need for the PHP programmer's help, thanks to the simple WYSIWYG editor and the ease with which you can create new pages.
But the PHP programming aspect is actually where Concrete5 really shines. The API is full-featured, robust and extremely easy to use. Looking at the PHP code for existing Blocks, for example, I can see they're very straightforward. You don't need to bend over backward to get the code to do what you want.
But the big thing competitors have that Concrete5 doesn't yet is a massive following with huge numbers of free and premium templates. In the CMS world, templates rule. A good, unique template is what makes a site shine, and template availablity and quality is a major criterion when a company is selecting a CMS. Concrete5 does have its fair share of templates (Google found a lot for me), but not as many as systems such as WordPress.
I predict that this will change over time. Concrete5's size of user-provided templates will grow, in part thanks to its nice API for PHP programmers. As a result, the number of Concrete5 installations will grow as well.
Creating new pages is easy (and no PHP knowledge is required). Once you're logged in and you have the toolbar across the top of your pages, you simply click Add Page.
You create a new page by specifying its name, its alias name (for simple or "vanity" URLs) and some metadata information-but not the actual content yet. Then you click Create, and you're brought to the full WYSIWYG editor, showing your page just as it will look in the end with the columns and images based on the template (but without any text yet). This is where you add your text and other Blocks. It's a pretty clever approach.
Then you click on an area and the Add New Block form opens. You choose the type of Block you want, based on what's available in the system (such as HTML, Form and Flash Content). You can also add from the Concrete5 Marketplace, where you'll be connected to the main Concrete5 site, letting you add other types of Blocks. Depending on the type of Block you choose, you'll get a screen where you customize the Block. Click Add, and the Block will appear on the page.
Click Publish, and you're done. The page automatically appears in your site, and even appears automatically in a navigation bar (which, again, is customizable).