Developer’s Toolkit

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.

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.

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.

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.

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.

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

BYOHTML.

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.

Built-in GraphQL API

Craft features a built-in GraphQL API for your content. You can even define what’s available publicly versus what should be protected behind a private token.

JSON API

The first party Element API plugin can be used to create custom JSON API endpoints, including JSON feeds.

Headless Mode

If your Craft installation is completely decoupled from the front-end, you can enable Headless Mode to hide all the cruft that you’re not going to need.