• Document Up to Date
  • Updated On 4.1.0

Developer

This section focuses on how to build content rich applications backed by CrafterCMS. It covers the basic topics you need to define a content type and render that content as part of a page, component or service. It also covers topics like building queries, accessing services and extending the core platforms and the developer workflow (DevContentOps).

Developers need to be comfortable with Content Modeling (how to represent content in CrafterCMS for your application to retrieve said content), and how to access content items from your application/project.

Note

For local development, you’ll need to install CrafterCMS locally and that’s best done via the local bundle. Instructions on how to do that are in Binary Bundles. Other options include running CrafterCMS in Docker or installing CrafterCMS from source.

CrafterCMS supports both headless and templated projects (templated projects are the traditional web sites with a view layer).

Headless

CrafterCMS is natively headless. CrafterCMS simply retrieves content that the developer models in the modeling tool, applies actions/rules like inheritance, security, versioning, etc. and returns the transformed content to the caller as JSON. Developers can use whatever front-end technology they want including, but not limited to: React, Vue, Angular, Flutter or similar SPAs, Android and iOS applications, etc.

Headless Examples

Templated

CrafterCMS embeds FreeMarker to provide a high-performance, clean, flexible, and tolerant of syntax variance, templating engine to render HTML directly from CrafterCMS.

It allows developers to model the content as general reusable items, and fold those into pages. Pages aggregate content from components as needed and are associated with a FreeMarker template that can render the final page. The choice of HTML tools and frameworks doesn’t matter to CrafterCMS.

Templated Examples

General Concepts

Regardless of type of project, a developer needs to be familiar with the following core concepts.

For templated projects, there are more topics to cover:

Composable

CrafterCMS is a composable CMS and provides a modular and flexible approach to building and managing websites and digital experiences. Unlike traditional monolithic CMSs, which come with pre-built features and a fixed structure, CrafterCMS allows users to assemble and configure their own system by choosing and integrating individual components or services.

The article, Composable, provides more details on the composable nature of CrafterCMS and how to take advantage of it.

DevContentOps

DevContentOps is a set of tools and processes that allow teams of software developers, content authors, and system administrators to work together on a single project across multiple environments. These tools and processes are fully described in DevContentOps.

Studio is a great tool for content authors and for quick changes, but for development, you’ll want to use your IDE. Learn how to use your IDE with Studio in the Working in Your IDE article.

Upgrade

Upgrading CrafterCMS from a developer’s perspective is covered in Upgrade.

Managing Secrets

Credentials may be required in some cases when accessing content. For more information on how to manage/encode your secrets such as AWS credentials, please see Managing Secrets

Logging

While developing your project, there are times when you’d like to see more log details, to figure out what is happening and address it as needed. Overriding the logging levels allows you to see more or less details depending on your needs.

Please review the Logging article for more information.



More Resources

Below is a short set of links to other documentation for technology that CrafterCMS leverages:

Attribute Name

Usage

Links

Spring Beans
Spring MVC
Server App Framework

Freemarker

Server side templates

Groovy

Server side scripting

OpenSearch

Search and content query

MongoDB

Crafter Profile and Social
data store
GIT
Repository Implementation
RST

Documentation source format

Note

CrafterCMS is a Git-based CMS. Please note that your system’s global git ignore file (list of rules for ignoring files in every Git repository on your computer) is respected by CrafterCMS. In case you find some of your content not being committed into CrafterCMS, check your global git ignore file to verify the content you’re committing is not being ignored.