Craft CMS Features

Custom Fields
Define your content with custom fields.

All the fields you need, all in one place.

All of your custom field types are managed centrally in Craft. You can organize them into groups, and use them wherever you'd like.

Assign fields where they’re needed.

Once you’ve created your fields, you can assign them to your sections, users, assets, tags, Matrix fields, and global sets.

Section Types
Choose the right section for the job.

Singles, Channels, and Structures

Singles store one-off pages, Channels store lists of entries that don’t have any particular order between them, and Structures store entries that need to exist in a specific order and hierarchy. You can create as many Singles, Channels, and Structures as you need.

Relations
Build powerful relationships.

Consistency you can relate to.

Working with relations – no matter whether it’s with entries, categories, tags, assets, users, or even plugin-supplied element types – is a consistent experience, both for content authors and template designers. That’s because under the hood, they all use the same core relationship system.

Categories and Tags
Everything in its right place.

Manage taxonomies with categories.

You can set up Category Groups for managing different taxonomies within Craft, and then apply categories to other elements using a Categories field.

Create folksonomies with tags.

Craft has built-in folksonomy support as well, with tags. You can set up multiple Tag Groups, and each group will have its own unique set of tags. Create tags on the fly from Tags fields.

Multi-Site
Run multiple sites from a single Craft install.

Add additional sites.

Manage multiple sites from within a single Craft install. Sites can be used to manage content for different locales, or they can be for entirely separate websites for the same parent company.

Configure site-specific section settings.

Choose which sites each of your sections should be enabled for, what their site-specific URL formats should be, and what template to load for each site.

Organize sites into groups.

Use site groups to keep your sites organized, and define the order they should appear throughout the Control Panel.

Localization
Localization done right.

Comes pre-wired, whether you need it or not.

All content is stored on a per-site basis. If you need to target or translate multiple territories or languages, just create new sites to represent them and localize away.

Matrix
Mix things up.

Create repeating and mixed content types with Craft’s powerful Matrix field type.

Made up of blocks.

Matrix fields are made up of multiple blocks. Blocks are made up of one or more custom fields.

Matrix fields can have multiple block types.

A single Matrix field can have as many types of blocks as needed, which the author can pick and choose from when adding new content. Each block type gets its own set of fields.

Flexibility without compromise.

Matrix enables you to give your authors just the right amount of flexibility while still keeping total control over how the content should be output on the front end.

Use them anywhere.

Matrix fields aren’t just for entries. Like every other field type in Craft, you can attach Matrix fields to categories, tags, global sets, assets, users, or even plugin-supplied element types.

Entry Types
Manage multiple content types in one section.

Manage multiple types of content together in a single section with entry types. Each entry type gets its own field layout, and you can even choose what the “Title” field should be called – if you want one at all.

Forms
Quickly create any type of form.

Create versatile forms for whatever your project calls for, quickly, with one of the powerful form builder plugins available in the Plugin Store.

Live Preview
Preview while you work.

See how your content will look before it goes live with Live Preview and share your work with others using the share button.

Asset Management
Best in class asset management comes standard.

Craft comes with desktop-class asset management built-in. Define volumes and subfolders, and view your files in list or thumbnail views.

Store files in the cloud.

Connect to Amazon S3, Rackspace Cloud Files, and Google Cloud Storage. When you set up a cloud-based asset source, it shows up right alongside your local sources, and you can even move folders and files between your local and cloud-based sources.

Keep your image sizes in check with transforms.

Whenever you need to output images at a certain size, you can create a new transform that sets the parameters. All of your transforms are available to all of your images, and the transformed images are created on demand.

Image Editor
Edit images and set focal points from within the Control Panel.

Crop, rotate, flip, and straighten your photos right from within the Control Panel. Set focal points so that every image renders perfectly on all devices.

User Management
Build it and they will login.

Define user groups, and optionally allow public user registration, with Craft Pro.

User permissions made easy.

Set permissions on entire user groups or individual users.

Dashboard
You-ify your dashboard.

Give each of your users their own fully customizable dashboard, tailored to their needs. Add features like Feed (RSS), Quick Post, Recent Entries, Updates, Craft Support, or even plugin-supplied widgets like Google Analytics and Commerce reports.

One-Click Updating
Update with a single click.

Keep Craft and your plugins up-to-date with the latest features, bug fixes, and security enhancements with one-click updating.

Tight Integration
Your website is your store is your website.

Craft Commerce treats your products just like any other content element in Craft. They can have custom fields, they can be related to your entries, categories, assets, and other things, and you have just as much control in how they should be presented on your website as everything else in Craft.

Custom Order Fields
Customize your order info.

Keep track of whatever order information you need by adding custom fields to your orders.

Custom Checkout Flows
Create the perfect checkout experience for your store.

Give your customers the checkout experience that makes the most sense for your store.

Order Management
Keep a close watch on your orders.

View in-progress carts and completed orders, set custom order statuses, and keep customers in the loop.

Products & Variants
Define your products.

Organize products into types.

Create product types that define the various types of products you’ll be selling. Each product type gets its own set of custom fields, a URL format, and other settings that differentiate these products from the others.

Define the subtle differences with variants.

Effortlessly sell products that have slight variations, such as T-shirts sizes or thumb drive storage capacities, using variants. Product types that have variants get a second set of custom fields which are available to each of its products’ variants.

Subscriptions
Revenue you can plan on.

Let customers sign up for your Stripe subscription plans and keep track of their status.

Sales & Promotions
Sell like you mean it.

Entice customers with coupons.

Create limited or unlimited coupon codes that can be applied to orders, either indefinitely or for a given period of time. Coupons can apply to entire product categories or just certain products.

Increase turnout with sales.

Host indefinite and time-limited sales, which can apply to entire product categories or just certain products.

Give special customers the VIP treatment.

Create sales that are limited to customers with user accounts – or even just people in a specific user group.

Create dynamic pricing models.

Create buy-more-save-more discounts, and other condition-based dynamic pricing rules.

Taxes & Shipping
Take complete control over tax rules and available shipping methods.

Define tax rules.

Define tax rates on a per-category, per-location basis, and choose whether they should be added to the total cost, or included in the price. The appropriate rate will automatically get applied to line items in the cart.

Create multiple shipping methods.

Set up multiple shipping methods, define their availability rules based on customer location and cart contents, and define rules that determine their shipping costs.

Purchasable & Gateway APIs
Extend as needed.

Define custom purchasable types, gateway integrations, and even add your own shipping and tax calculators, or integrate with third party services.

Plugin Store
Discover and install plugins from within the Control Panel.

Browse a rapidly growing collection of plugins, and install plugins directly from the Control Panel. Commercial plugins can even be trialed from development or staging domains for free.

Debug Toolbar
Insightful Debugging with the Yii Debug Toolbar.

The Yii Debug Toolbar is a configurable set of panels that display a variety of debug information about the current request/response. It's available to admins on the front-end and Control Panel when Dev Mode is disabled.

Templating
BYO HTML.

We provide the back end, but the front end of your site is completely up to you. Because themes can be more trouble than they’re worth.

Powered by Twig.

Templates are powered by Twig, an elegant and powerful templating system from the creators of Symfony. It offers tons of useful features, including some great ways to keep your code DRY.

See your syntax errors.

If there’s a typo in one of your templates, Craft will give you a helpful error message identifying exactly where you went wrong, accompanied by a snippet of the template code with the offending line highlighted.

Not just for HTML.

Craft will look for .twig and .html templates by default, but you can give your templates any file extension you want – .xml, .rss, .txt, .css, etc. Craft will take it into account and include the proper MIME type in its response.

Headless
Your content, anyhow, anywhere.

Whether you’re building something with Vue, React, Angular, Gatsby, a native app, or even IoT devices, you can use Craft’s intuitive Control Panel to manage your content and structure your application data, and deliver it to your app with an API.