Using AngularJS with Crafter CMS

Watch the recording: How to Build Engaging Sites and Apps with Modern Front End Technology and Crafter CMS


Front-end/UX software development is one of the most sought after skills sets in today’s market.  The reason is simple, much of the code for our applications and websites has moved to the browser.  The advantages of this migration are obvious. This architecture means less communication with the server and more distributed processing. It also means faster, more responsive and user-friendly applications. It’s the browser UI frameworks that have made this shift possible.  UI Developers now have a wide range of extremely powerful frameworks to choose from.  Some of the most popular frameworks are Twitter Bootstrap, AngularJS, and ember.js, backbone.js, YUI3, JQuery and Ext JS just to name a few.

Each framework has its own advantages and architectural sweet spots. As front-end developers we’re likely to be proficient in a number of these frameworks which provides us with solutions for the range of use cases we see as we move from project to project. Choice and flexibility are very important.

Most content management systems impose constraints on the developer through templates, standardized markup and through pre-packaged UI frameworks.  Crafter CMS doesn’t.  Crafter CMS uses Freemarker as its template layer.  Freemarker is light-weight, fast, easy to use and most importantly, it does not enforce any mandatory markup or constrain the front end developer in any way.  This means that as a front end developer you can use the markup and the framework that meets your needs.

In this Blog we’ll take a look at integration with Crafter CMS and AngularJS by way of an example application.  We’re going to build a simple content managed, dynamic application that uses AngularJS to drive the user experience.  I’ve based this demo on a slightly modified version of the an example application called The Memory Game, written by Igor Minar. Source code for this article can be downloaded here.

Continue reading

Managing Component-based Websites with Alfresco

From time to time at Crafter Software we get questions concerning Alfresco‘s ability to build and manage component-based websites due to its file / folder based organization. In many cases this question arises from either a limited look at Alfresco’s features (sometimes sourced from industry analyst reports that lack depth) or a far too simplistic understanding of Alfresco’s core capabilities and established best practices for web content management and dynamic content delivery.

Through this short article I will demonstrate the following:

  • Repository organization has no bearing on website placement of components
  • Primary organization in a file / folder structure is a strength and offers technical capability that differentiates Alfresco from lesser Web CMS platforms.

Continue reading

Architecture for Web CMS: Coupled vs Decoupled

Generally speaking there are two main types of Web CMS architectures: coupled and decoupled.  Coupling refers to the relationship between the authoring tools and content delivery of your live site.

The classic example of a coupled CMS architecture is a blog engine. In a coupled system, the underlying store for your content serves both authoring and delivery.  Your authoring capabilities are part of the live delivery system but are available only to those who have permissions.  In a coupled system, the process of making content live is typically a matter of setting a flag in the database.


A decoupled system by contrast is one that puts authoring and delivery in separate applications, and potentially, on separate infrastructure. In a decoupled system, the process of making content live is done through a publishing mechanism where content is pushed from the authoring platform (and underlying content repository) to a content delivery infrastructure.


So which approach is the right architecture?  Continue reading

Website Snapshots with Crafter CMS and Alfresco

Every now and then we see a requirement from customers that specifies that a snapshot of the entire website repository be maintained for each deployment or on a daily basis in order to enable a audit of the entire site at a given point in time, or further, to allow a rollback of the entire site at a given point in time.

The versioning system within Alfresco’s core repository does not natively support snapshots.  While it is possible to model this capability within the system through custom coding, the solutions tend to be complex while the demand for the functionality remains low.   In any technical solution it is important to keep things as simple as possible.  Whenever you run into a narrow requirement that threatens to complicate your system design you need to take a step back and determine:

  • Is the requirement is truly necessary?
  • Can the requirement can be changed slightly to work better with the existing technology?
  • If the requirement is necessary, can you can integrate with a 3rd party that solves the problem directly without complicating the overall solution? Continue reading

Implement Faceted Search with Solr and Crafter CMS

Crafter Engine, the delivery component of Crafter CMS  provides powerful out-of-the-box search capabilities based on Apache Solr.  Solr is extremely fast and provides a wide range of capabilities that include fuzzy matching, full-text indexing of binary document formats, match highlighting, pagination, “did you mean”, typed fields and of course faceted search. Faceted search (aka faceted navigation) is an ability of the search interface to break down a search in to categories that allow a user to filter and narrow down the number of results by selecting only those category values that are relevant.

faceted-search Continue reading

Build Engaging Web Sites with Crafter CMS

Today’s internet is noisy.  Our customers are bombarded with content and messaging from all angles.  As a result they quickly learn to filter out anything that is not directly and immediately useful to them.  Thus there is ever growing importance for our websites and services to be up to date with fresh content and for that content to speak as directly to them as is possible.

In this article we’ll explore a number of ways to leverage the Crafter CMS platform to create a dynamic website that can be updated quickly and effortlessly to keep your content fresh and timely.  We’ll go beyond the basics to show how you can support complex requirements and content production processes and finally we’ll demonstrate how to target your content directly to the visitors on your site. Continue reading