How Brightspot Works

Brightspot is built using the Dari Framework, an object persistence library for building complex content types and persisting them to one or more database backends. Using simple annotations and standard Java types, anything can be modeled and accessed with a web view or through an API.

A simple Brightspot content model might look like this:

public class Article extends Content {

    private String textField;
    private Date dateWidget;
    private List<String> textList;

    // Getters and Setters...


To model content, a Java class must extend the Brightspot class com.psddev.cms.db.Content, which extends the Dari base class of com.psddev.dari.db.Record. To facilitate development, Brightspot includes libraries of content types and annotations.

Brightspot automatically builds a UI from a Java class that models content. An instance of the class is created when the fields are set in the UI and saved. All fields in a class that extends Content are persisted to the database when the object is saved. Brightspot uses Dari to save objects to an SQL database and index them for full-text search.


You have complete control over how your data is stored. Objects are not mapped to database tables, but instead are serialized into JSON and stored in the database as JSON, eliminating the need to alter database tables and allowing you to quickly evolve data models.

  "textField" : "Famous Poems",
  "dateWidget" : 1544631609139,
  "textList" : [ "Roses", "Are", "Red" ]

In Brightspot, an instance of a content type can be drafted, versioned, searched, and scheduled for publication. Changes between versions can be tracked, and roles and permissions for creating and accessing content instances can be applied.