We use cookies to make your viewing experience better. By accepting you consent, you agree to our Cookie policy

Improve your Craft CMS skills

A Beginner's Guide To Learning Craft CMS

10 min read
Learning Craft CMS

Struggling to find a content management system that simplifies site builds without compromising flexibility? This beginner's guide to learning Craft CMS unravels the platform's unique strengths. Gain actionable insights into Craft's intuitive interface, versatile architecture, and empowered authoring capabilities. Expect straightforward explanations tailored to first-time users who want to evaluate if Craft's balance of usability and customization is the right fit for their next project.

Craft CMS is a user-friendly, flexible content management system created in 2013 by Pixel & Tonic. This guide explains Craft's intuitive interface, versatile architecture with custom fields and sections, and developer-friendly Twig templating. It provides beginners with insights on installation, managing users, creating content, and extending functionality with plugins.

History and Background of Craft CMS

Origins and Creators

Craft CMS originated from the minds of Pixel & Tonic, a web design and development agency, and specifically Brandon Kelly, one of the co-founders. Having recognised limitations in other content management systems like WordPress and Drupal, Brandon set out to create a CMS tailored for web designers and marketers.

Building upon the flexible Yii PHP framework, Brandon and the Pixel & Tonic team launched Craft CMS in 2013. Their goal was to build an intuitive, user-friendly CMS that gave clients control over their content. After launching Craft 1.0, Brandon continued enhancing Craft over the years, incorporating feedback from users.

Key to Craft's origins was Brandon's hands-on experience working with clients to build custom websites. This real-world perspective shaped Craft into a CMS that empowers web design teams and content creators alike.

Release History and Timeline

The first release, Craft 1.0, arrived in 2013 with a drag-and-drop interface and custom fields for flexible content modelling. Craft 2.0 followed in 2014, rewriting the CMS for faster performance and integrating new features like user groups.

Craft 3.0 marked a major milestone in 2017, rebuilt from the ground up with a streamlined control panel and Vue.js under the hood. Craft 3 focused on being developer-friendly, integrating powerful features like native matrix fields.

The latest incarnation, Craft 4.0, dropped in 2021 with improvements like Live Preview for front-end editing. Craft 4 also enhanced SEO tools with full support for custom titles, descriptions and open graph metadata.

Over the years, Craft CMS has evolved considerably from its beginnings. With each release, the Pixel & Tonic team has pushed Craft forward as a modern, flexible, and user-friendly CMS.

Craft CMS Today

Today, Craft stands as a mature CMS powering over 500,000 websites globally. It has cultivated an enthusiastic community of designers, developers and content editors who value its versatility.

The current Craft 4 sits at the forefront of CMS technology with a refined interface, built-in automation and time-saving workflows. With structured content and customizable fields, Craft provides unparalleled flexibility for web projects.

Brandon Kelly and Pixel & Tonic continue advancing Craft to meet the needs of modern web design. By balancing ease-of-use with developer control, Craft has secured its position as the go-to CMS for professionals building custom digital experiences.

While challenges still exist, Craft's future looks bright. With engaged users driving improvements and new innovations emerging, Craft CMS remains well-equipped to power web projects today and for years to come.

Benefits and Advantages of Using Craft CMS

Ease of Use

One of the standout benefits of Craft CMS is its emphasis on usability and intuitive interface. Craft offers a gentle learning curve for novice users, while still providing powerful functionality for experts.

The control panel dashboard provides an inviting environment for managing content. Editors can easily navigate sites, sections, entries and assets. Drag-and-drop functionality streamlines uploading images or reorganizing page structures.

For content creators without coding expertise, Craft CMS simplifies publishing and formatting text using Markdown syntax. The interface allows drafting, reviewing and scheduling content with minimal training.

Craft also enables teams to safely delegate publishing permissions. Workflows like editing, approving and versioning content help maintain organization and quality control.

With its focus on usability, Craft CMS lowers the barrier for creating and managing multi-channel content. It empowers editors of all skill levels to keep digital experiences fresh and engaging.

Flexibility and Customization

A key advantage of Craft is its flexible architecture for adapting to diverse projects and workflows. Developers praise Craft for being highly extensible and customizable without the bloat of other CMS options.

Craft's modular plugin architecture allows installing only the features needed for each project. With over 500 plugins in the directory, Craft can tackle specialized use cases out-of-the-box. Developers can also build custom plugins tailored to a client's needs.

For modeling content structures, Craft shines with native Matrix fields and other field types for relating complex data. Craft enables defining custom entry types, fields, categories and taxonomies for limitless content modeling.

Templating with Twig provides fine-grained control over front-end presentation while keeping business logic separate. Paired with Craft's APIs, developers enjoy unlimited options for building custom interfaces and integrations.

This combination of flexibility, customization and developer control is a key reason many teams choose Craft for complex web projects.

Developer Friendly

With modern web development in mind, Craft CMS delivers an excellent developer experience. The CMS is built on technologies like Yii 2 PHP framework, Twig templating and Vue.js for the front-end.

Twig templating will feel familiar to developers knowledgable in Python or Django. It enables crafting presentation logic in HTML while looping entries, outputting custom fields, and more.

Craft also provides full control over front-end assets like CSS, JavaScript, images and fonts through its asset bundles. Building for the Jamstack is simplified with Craft's headless capabilities and GraphQL integration.

For debugging, Craft offers detailed logs, exception handling and easy environment configuration. The Pixel & Tonic team has built excellent tooling to speed up common development tasks.

With its emphasis on extensibility and powerful APIs, Craft enables developers to get creative in ways other CMS options can't match. For web shops and agencies who value adaptability and quality code, Craft is hard to beat.

In summary, for developers seeking a polished CMS experience that embraces modern techniques and flexibility, Craft is an excellent choice. It brings together the best of usability, versatility and programming control for all types of web projects.

How Craft CMS Works

Sections, Entries and Content Structure

At its core, Craft CMS structures content using sections and entries. Sections hold related content types, while entries represent individual pieces of content.

For example, a "Blog" section could contain entries for each blog post. A "Products" section would hold product entries with details like price, images, etc. Sections act as containers for uniform content types.

Entries are the modular blocks of content within sections. Each blog post, product, article would be an entry. Entries use custom fields to store details like the post title, author, body, images and more.

Sections and entries provide the content structure for building websites in Craft. Additional elements like taxonomies, global sets and relations allow modeling complex content architectures.

With its flexible sections and entries, Craft CMS gives full control when designing content models tailored to the project.

Template Design with Twig

On the front end, Twig templates take content from the admin panel and output it on the live website. Twig is a templating language similar to Jinja in Python.

Templates can be organized into layouts, includes, macros and individual page templates. Layout templates define the shared chrome and advertise entry points for sub-templates.

Includes contain reusable chunks of code for common elements like headers, footers, sidebars etc. Macros create custom Twig tags for outputting specific content types.

The page templates pull in layouts, includes and macros to assemble the final pages. They loop through entries, output custom fields and render frontend markup.

Craft offers full control over template inheritance, namespaces, variables, conditionals and more for complete front end design. Paired with Craft's helper functions and plugins, Twig brings unmatched flexibility.

Custom Fields and Content Types

A major advantage of Craft is its custom fields for tailoring flexible content types. Craft comes with a robust set of built-in field types for common needs:

  • Text fields for titles, body text etc.

  • Rich text fields for formatted content.

  • Dropdown and multi-select fields for predefined options.

  • Number fields for numeric data like prices.

  • Date/time fields with datepicker widgets.

And many more specialized field types like Assets, Categories, Tags, Tables, and more.

For ultimate flexibility, Craft enables developers to create custom field types tailored to the project. This could include an "Ingredients" field type for recipes, a "Showtimes" field for movies, and endless other possibilities.

These custom fields are then assembled into field layouts for each content type. For example, a "Blog Post" content type would have Title, Body, Author, Images and Tag fields.

With its extensive custom fields and field types, Craft offers unmatched versatility when modeling content structures.

In summary, sections, entries, templates and custom fields are the core building blocks designers and developers use to create fully customized sites with Craft CMS. Together they provide the flexibility and control that makes Craft such a powerful tool.

Getting Started with Craft CMS

Server Requirements

Before installing Craft CMS, the server environment must meet the minimum Craft CMS requirements:

  • PHP 7.0 or greater

  • MySQL 5.5+ or MariaDB 5.5+

  • At least 256MB of RAM allocated to PHP

  • ModRewrite enabled for clean URLs

For production environments, Craft recommends PHP 7.2 or newer for best performance and security. MySQL 5.6+ or MariaDB 10.0+ is preferred.

The server should also have cURL, GD library, DOM extension, and at least 16MB of memory for PHP scripts enabled. Craft can run on shared hosts but works best with more RAM and CPU power.

For local development, Craft can be installed using MAMP, XAMPP, Laragon or similar stacks. Craft also offers a built-in CLI-based development server using PHP's built-in web server.

Reviewing the full system requirements before installation will ensure your server environment is ready to run Craft smoothly.

Installation and Setup

With the server prepped, it's time to install Craft. The recommended method is via Composer, which handles dependencies and updating.

First, download and install Composer if it is not already available. Then create a new project by running:

composer create-project craftcms/craft

This will download and configure a new Craft project into a craft directory.

With Composer installed, navigate to Craft in your browser and follow the on-screen wizard for configuration. This covers:

  • Setting the site name

  • Creating the initial admin account

  • Configuring the database connection

  • Setting the site URL

The wizard verifies server settings and Craft CMS requirements as you go, making sure the environment is compatible.

For more advanced configuration, developers can set up environment-specific config files, connect to external databases, customize file paths, and more.

Creating Admin Account

A key step in the setup wizard is creating your first admin user account. This will be used to log into the control panel to start managing the site.

Choose a secure username and password when creating the account. Make a note of these credentials for accessing the CMS after installation.

The account settings allow customizing the name, email, preferred language, and photo for your admin profile. Additional user accounts can be added later for your team.

With the admin account configured, the final step is to sign in to the control panel. The friendly CMS interface makes it easy to start organizing content, customize fields, and build templates.

Following Craft's well-documented Getting Started guide helps new users get oriented. Helpful resources like documentation, tutorials, and support forums simplify the learning curve.

In just a few steps, Craft CMS can be downloaded, configured, and ready to build a custom site. With its clean interface and focus on usability, Craft makes it easy for beginners to dive in while offering powerful tools for experts.

Managing User Accounts and Permissions

User Roles and Permissions

Craft CMS comes with configurable user roles and granular permissions for managing access. Some common predefined roles include:

  • Admin - Full administrative access to settings, users, content etc.

  • Author - Create and edit own entries within selected sections.

  • Editor - Edit any entries in assigned sections.

  • Translator - Edit localization and translations only.

Permissions can be assigned to user roles at a granular level. For example, Authors may only have permission to create entries in the Blog section. Editors could have additional access to manage categories.

Permissions are also assigned for each action (edit, create, publish, delete etc.) per section, category group, asset volume and plugin. Advanced custom permissions are possible by plugin or custom code.

With its flexible user roles and permissions matrix, Craft enables securely granting only necessary access for each team member's responsibilities.

User Groups

For managing multiple user accounts and permissions efficiently, Craft CMS utilizes User Groups. Groups allow assigning the same role and permissions to entire teams.

For example, an "Editors" group could be created with permissions to edit and publish blog posts, news articles, case studies, etc. Adding a new editor is then just a matter of adding them to the group.

User groups are handy for departments or teams like Content, Marketing, Sales, DevOps etc. When that team's permissions need updating, the group is modified instead of each user.

Groups can also have limited access to only specified sections. For instance, a "French Translators" group may only access French site sections, categories, and translations.

With user groups, managing staff changes and permission updates across an organization is streamlined.

Managing Users in Control Panel

The Users section of the Craft control panel enables managing user accounts, groups, and permissions. Here, admins can:

  • Create new user accounts

  • Organize accounts into groups

  • Assign user roles like Admin, Author, etc.

  • Modify permissions for each account or group

  • Disable accounts or reset passwords

  • View last login dates to audit activity

User profiles are editable with name, photo, preferred language, time zone and custom fields. An audit log tracks permission and security-related changes by user.

Users with permission to manage others can be restricted only to certain user groups. For large teams, the Users section provides a full suite of user management tools.

Third-party user management plugins like Freeform and Users Extended provide further ways to customize user profiles, registration, fields, permissions and more.

With its user groups, permission matrix, profiles and settings, Craft delivers a robust system for controlling access and delegating publishing without compromising security. For managing a modern multi-disciplined team with streamlined workflows, Craft CMS is up to the task.

Working with Content in Craft CMS

Creating Entries

In Craft CMS, entries hold the actual content and are organized into sections. To create a new entry:

  1. Navigate to the section you want to add content (e.g. Blog, News, Products etc.)

  2. Click the "New entry" button

  3. Fill in the custom fields for that section - this may include title, body text, images, tags, author, etc.

  4. Click "Save". This saves the entry as a draft.

  5. Once ready, click "Publish" to make the entry live on the front end.

The publishing workflow can be customized to require approval before publishing live. Entries can also be saved as drafts, scheduled for future publishing, or saved as versions.

Craft offers shortcuts like duplicating entries or creating multiple entries in bulk. With its flexible entries, Craft CMS makes it simple for content creators to keep sites stocked with fresh content.

Assets and Media

The Assets section of Craft is used for uploading and managing files like images, documents, videos and more. Common asset tasks include:

  • Uploading - Drag and drop assets into the desired folder or use the upload button.

  • Editing - Crop, rotate, manipulate images with built-in Image Editor.

  • Organizing - Create folders to categorize assets for easy access.

  • Tagging - Add tags to assets to create collections for reuse in templates.

From the front end, assets can be output in templates using Twig. Parameters like width, height, resolution, quality and more can be customized.

Advanced features like dynamic image manipulation, external storage (like Amazon S3) and reverse proxy caching help scale asset performance.

With its robust DAM (Digital Asset Management) capabilities, Craft CMS empowers managing large media libraries efficiently.

Content Structure

Craft offers several ways to structure content models to suit the project:

  • Sections and Entries - Sections hold content types while entries contain the content.

  • Categories and Tags - Categorize entries and assets to create hierarchical or flat taxonomy structures.

  • Matrix fields - Relate blocks of content within an entry using a powerful Matrix field type.

  • Relations - Connect related entries across sections using native relational fields.

  • Structures - Group sections in nested hierarchies with branches for flexible organization.

  • Taxonomies - Custom-defined methods to categorize entries like "Experience Level", "Product Type" etc.

  • Globals - Reusable content blocks like headers, footers, widgets that display across templates.

Craft gives developers complete flexibility in modeling content architecture. Simple blogs may just require sections and categories. Large enterprise sites can tap into advanced modeling capabilities.

With its intuitive interface and modular toolkit, Craft CMS empowers teams to keep content structured and sites well-stocked. For delivering engaging multi-channel experiences, a content-first CMS like Craft can't be beat.

Extending Craft CMS with Plugins

Finding and Evaluating Plugins

The official Craft Plugin Store is home to over 500 plugins that extend Craft's functionality. When starting your search for new plugins, resist the urge to hastily install any plugin that sounds useful. Instead, take time to thoroughly evaluate potential options.

Reviews and ratings from the community provide valuable insight into real user experiences with each plugin. Be wary of plugins with low reviews or quality issues reported in the comments.

Sorting by last updated date helps surface active plugins that receive ongoing maintenance and improvements.

For premium plugins, compare pricing and included support levels across alternatives that offer similar features. While free plugins may seem enticing, a lack of updates or support down the road could lead to costly headaches. Also, confirm that the plugin is compatible with your specific version of Craft CMS and server PHP version/requirements. 

Lastly, don't underestimate the importance of security. Vet the plugin developer's reputation and give preference to those with a proven track record of stable, secure code. Taking these steps during evaluation helps identify quality plugins that will integrate smoothly with your site.

Installing and Configuring Plugins

Once you've identified a plugin to install, the process through the Craft control panel is simple: purchase/download the plugin files if premium, then upload or search for the plugin under Settings -> Plugins. You'll need to add the plugins to Craft CMS. After installation extracts the files, access the plugin's settings to complete any configuration required. This may involve connecting APIs, entering a license key, selecting options that tailor the functionality, and more.

With configuration in place, enable the plugin to start using its features across the site. Some plugins require extra installation steps like running console commands, creating new database tables, or configuring user permissions. Be sure to fully read the documentation to avoid hiccups.

Periodically review installed plugins and disable or remove inactive ones to optimize performance. It's also wise to keep active plugins updated with the latest bug fixes and security patches as the developer releases them.

Essential Plugin Recommendations

While there are plugins available for nearly any need, several provide essential functionality right out of the box:

  • SEOmatic helps fill the search optimization gap by adding custom titles, meta descriptions, Open Graph tags, and other metadata that improves visibility.

  • The Redactor plugin replaces Craft's default rich text editor for a more refined authoring experience.

  • Sprout Forms enables building custom front-end forms complete with spam filtering, validation, notifications, and secure data storage.

  • FeedMe provides a one-click import of RSS feeds to effortlessly integrate dynamic content from other sources.

  • For structured content, SuperTable delivers an advanced table field with columns, rows, and built-in styling.

  • Contact Form DB brings enterprise-level capabilities for managing contact form storage and submissions.

  • Retour helps handle errors and custom 404 pages for smooth site-wide error handling.

With a thriving third-party ecosystem, the possibilities to extend Craft's flexibility are endless. The plugin store empowers tackling specialized requirements to build fully customized digital experiences.

Shape April 2022 HR 202
Andy Golpys
- Author

Andy has scaled multiple businesses and is a big believer in Craft CMS as a tool that benefits both Designer, Developer and Client. 

Show us some love
Email Us
We usually reply within 72 hours
Agency Directory
Submit your agency
Affiliate Partners
Let's chat