Find out how to use Cloudy

Read our documentation to find out about architecture and how to get the most out of Cloudy. Missing anything or just want to chat, feel free to contribute on GitHub or reach out


The core solution consists of two packages: Cloudy.CMS and Cloudy.CMS.UI.

The package Cloudy.CMS.UI contains the actual graphical user interface (the "Admin"). There are really no usable API's in this package, except the initialization code that goes into your Startup.cs or equivalent.

The more fundamental package Cloudy.CMS contains:

  • Data model support classes (interfaces, attributes for your data models like INameable)
  • MVC support classes (routing, model binding)
  • Naming support classes (pluralizing, humanizing etc)
  • Other support classes (entity reference generation, json serialization for EF)

There is also a Azure Media Picker package, called Cloudy.CMS.UI.AzureMediaPicker.

Augmenting your data model

When having created your EF data model, you don't really have to do anything special to make it show up in Cloudy. Make sure you got the Cloudy initialization setup correctly, and add your DbContext with its DbSets.

There are however a few ways of augmenting and customizing the scaffolded UI.

Augmenting your classes

  • Add INameable to make the name of your content be used purposefully in the UI
  • Add IImageable to make your content show an image preview next to it, where applicable

To be documented: [Singleton]

Augmenting and customizing your properties

You can use UIHint on your properties to set the Razor partial being used to render your control.

// will load mypartial.cshtml
public string Property { get; set; }

To be documented: [Display], [ListFilter], [ListColumn], [CloudyIgnore], [Select], [MediaPicker]

To be documented

  • Routing. Incl Model Binding, Polymorphism
  • UI walkthrough
  • Authentication
  • Existing edit partials
  • Existing listing column partials
  • Supported property types