Workfile Store

Content (CMS)

Build custom content types, manage structured entries, and display dynamic content on your storefront.

Workfile includes a built-in headless CMS that goes beyond blog posts. Create custom content types — like testimonials, FAQs, team members, portfolios, or case studies — with structured fields, then display them on your storefront using CMS widgets in the page builder.

The blog is a special system content type that comes pre-configured. For blog-specific features, see Blog. This page covers custom content types you create yourself.

Key concepts

ConceptDescriptionExample
Content TypeA schema defining the structure of your content"Testimonial" with fields: name, photo, quote, rating
EntryA single piece of content following a type's schemaOne testimonial from "Rahul Mehta"
Collection TypeA content type with multiple entries (like a list)Testimonials, Team Members, FAQs
Single TypeA content type with exactly one entry (like a page)About Page content, Store Policies
ComponentA reusable group of fields shared across types"SEO Fields" component used in multiple types
TaxonomyA way to categorize entries within a typeTestimonial categories: "Product", "Service", "Support"

Creating a content type

Go to Content

Click Content in the sidebar to see your content types overview.

Click New Content Type

You'll see the content type builder with options for name, slug, icon, and kind.

Choose the kind

KindUse caseExample
CollectionMultiple entries of the same structureTestimonials, Team, Portfolio
SingleOne entry only (like a singleton page)About content, Store announcement

Define fields

Add fields to your content type. Each field has a name, type, and configuration options.

Available field types

Field TypeDescriptionUse case
TextShort single-line textName, title, tagline
Rich TextFormatted multi-line contentDescription, bio, article body
NumberNumeric value (integer or decimal)Rating, price, sort order
DateDate or date-time pickerEvent date, publish date
BooleanTrue/false toggleFeatured, active, published
SelectDropdown with predefined optionsStatus, category, priority
MediaImage or file from your media libraryPhoto, document, icon
RelationLink to entries in another content typeAuthor → Team Member
JSONStructured JSON dataCustom metadata, configuration
ColorColor pickerBrand color, accent
URLWeb address with validationWebsite, social link
EmailEmail address with validationContact email

Each field can be configured as:

  • Required — must be filled before saving
  • Unique — no two entries can have the same value
  • Localized — different values per language (if multi-language is enabled)

Components (reusable field groups)

Components are reusable groups of fields that you can embed in multiple content types. This avoids duplicating the same field structure across types.

Example: SEO Component

Create a "SEO" component with fields:

  • Meta title (text)
  • Meta description (text)
  • OG image (media)

Then add this component to any content type that needs SEO fields — blog posts, pages, products, etc.

Managing components

Go to Content → Component Library to create and manage reusable components. Each component has:

  • A name and description
  • A set of fields (same field types as content types)
  • Usage count showing how many content types reference it

Use components for patterns that repeat across content types — like "Author Info" (name + photo + bio), "CTA Block" (heading + description + button URL), or "Social Links" (platform + URL pairs).

Managing entries

Creating entries

Click into any collection type → New Entry. Fill in the fields defined by the schema and save.

Entry statuses

StatusMeaning
PublishedLive on your storefront
DraftSaved but not visible to customers

Editing and deleting

Click any entry to edit it. Use the actions menu to delete entries. Deleting is permanent.

Displaying content on your storefront

Use CMS widgets in the Page Builder to display your content entries:

WidgetDescription
CMS Entry GridDisplay entries in a grid layout with cards
CMS Entry CarouselHorizontal scrolling entries
CMS Entry DetailFull entry content on a detail page
CMS Content BodyRender the rich text body of an entry
CMS Author CardAuthor/person card with photo and bio
CMS Meta BarDate, category, and metadata display
CMS TagsTag list for an entry
CMS Share ButtonsSocial sharing buttons
CMS Related EntriesRelated content suggestions
CMS PaginationPage navigation for entry lists
CMS Taxonomy FilterFilter entries by taxonomy/category
CMS Taxonomy ListDisplay all taxonomies as a list
CMS Field DisplayRender a specific field from an entry

CMS widgets automatically pull data from your content types. Select which content type to display in the widget settings, and it renders entries using your storefront's theme.

Use cases

Content TypeFieldsDisplay
TestimonialsName, photo, quote, rating, companyCMS Entry Grid on homepage
Team MembersName, photo, role, bio, social linksCMS Entry Grid on About page
FAQsQuestion, answer, categoryCMS Entry Grid with Taxonomy Filter
PortfolioTitle, images, description, client, dateCMS Entry Grid + Detail pages
Press MentionsPublication, date, quote, link, logoCMS Entry Carousel
Store LocationsName, address, hours, map embed, phoneCMS Entry Grid on Contact page
AnnouncementsTitle, message, type, expiry (Single)Banner widget on all pages

Think of content types as "custom databases" for your store. Anything that has a repeating structure and needs to be displayed on your storefront is a good candidate for a content type.

System content types

Your store comes with one system content type:

  • Blog — pre-configured with title, body, excerpt, featured image, author, category, and tags. Managed from the dedicated Blog section.

System types can't be deleted or have their core fields modified, but you can add additional custom fields to them.

On this page