Don't Hardcode Blocks -- Use a Global Area Instead The old-school technique of "hardcoding" blocks in your theme templates should no longer be considered a best practice.
Cleaning Up Member Profile Settings Clean up the default member profile settings and system pages so they are less confusing for simple use-cases.
Getting Concrete5 to recognize TinyMCE typography.css changes Getting typography.css changes to appear in Concrete5's Rich Text Editor (TinyMCE) can sometimes seem like an impossible task. Fortunately, there's a fairly easy solution.
Cache busting techniques for your theme's asset files There are a few approaches to ensuring your site visitors always see your latest changes to images, CSS, etc. And here's a way to get C5/PHP to take care of it for you.
Sorting Custom Attributes in Page Properties How to change the order that custom attributes are displayed in the Add Page and Page Properties dialogs.
Did you know Concrete5 has an h() function? As of version 5.6.1, you can use the h() function as a short alias for htmlspecialchars().
Change email address of all C5 users Ever accidently send emails to real people from your testing environment? Worried about the day you will? You might consider updating all user accounts with a fake or alternate email address.
How 5.6.2 changes the way custom template assets (CSS and JS) are loaded An "under-the-hood" change in Concrete5.6.2 greatly simplifies how CSS and Javascript files are loaded for blocks' custom templates.
What's New In 5.6.2? Not much, and a whole lot... Jordan's perspective on what to pay attention to in the latest release of Concrete5.
Block Validation in the Controller An undocumented controller function provides a better way to validate your block add/edit forms than the more common "auto.js" approach.
Hardcode Previous and Next Page Links Hardcode links to the previous and next "sibling" pages in your theme templates.
Ignore "Exclude From Nav" Attribute in Autonav Templates A simple way to bypass the "Exclude From Nav" attribute in your custom Autonav templates.
Find Unapproved Pages (and more) with Page Search Page Search is a little-known but insanely-useful feature for finding pages in your site which meet various criteria -- for example, finding all pages in the site that are awaiting approval.
Define Your Own Custom Page Title Format Hate the double colon separator in page titles? Love them so much you want four? With a quick config override, you can have whatever your heart desires.
Sort Page Type Icons (sort-of) Make it easier for users to choose the most-common page types when adding new pages.
Dev, Stage, and Prod: Same .htaccess config A small change to your .htaccess file should allow Pretty URLs to work (without .htaccess modifications) when you move your site from server to server.
Dev, Stage, and Prod: Same site.php Config With a little help from PHP's $_SERVER array, we can keep our C5 config file the same across all our server environments.
Changing Area "Add To..." Text Ever wanted to change the default "Add To..." text in C5 Areas? Here's how you can do it.
Sectionwide Areas Global Areas are great for keeping header and footer content editable and in sync on every page of your site. Here's a trick for taking advantage of Global Areas to make sectionwide areas.
Page Attributes: Thumbnail Images Sometimes you want an image to help represent a page in your site -- for instance, a thumbnail in a C5 Page List. Page Attributes are a great way to accomplish this. This post explains how to create an image attribute and display it in a custom Page List template.
Command Line Installs - a fresh C5 install in seconds If you frequently install new Concrete5 sites on your local development machine (and use MAMP on Mac OSX), this automated installation script will save you tons of time! It works great for building client sites, as well as testing themes and addons in different versions of C5.
Rename and Reorder Stacks With a little bit of sitemap digging, you can change the name or the display order of Stacks.
Pagination with the Page List Class Adding pagination controls to your page list code is very easy (once you know how). You can also make the URLs prettier with a config setting.
Removing a Page Type Concrete5 ships with a page type (or four) you may not intend to use in your custom theme. Depending on your approach, you may get hung up in the page type deletion process. This post should help you back on your way.
Responsive Breakpoints with Area Layouts With percentage-based widths, Area Layouts are responsive by default. But when the screen gets really narrow, using them may cause your design to fall apart. Here's a handy trick to handle this situation.
Rename or move typography.css How to change the name and location of TinyMCE's typography.css file in your theme directory.