Introducing Diamond for Sitecore

Diamond is a framework for creating C# interfaces and classes that wrap Sitecore content items. It is meant to be paired with a code generation tool, such as NVelocity or T4 templates. At launch, there is a supporting project that integrates with Hedgehog Technology’s Team Development for Sitecore.

My Talk at the Boston Sitecore User Group:

Download the PowerPoint presentation.

Get Diamond from NuGet:

Get Diamond source code from GitHub:


Sitecore Information Architecture Part II: Sitecore Design Constraints


In my last post I described a series of business objectives for an international, multi-site Sitecore installation. In this post we’re going to review key Sitecore features that need consideration when choosing your content tree architecture. Read More…

Sitecore Information Architecture Part I: Requirements


It’s pretty easy to throw a small brochure website together in Sitecore. Chances are the site is in a single language. A pair of content authors can easily hand-edit a few hundred web pages and their associated images. There are no workflow requirements, as the author and the manager happen to be the same person. “Piece of cake; this is why we have interns.” Your team cranks it out in a few weeks and the client is happy.

Global web presences are another story. Read More…

Multi-Site & Multi-Language Page Editor Support in Sitecore

This is just a quick post of the talk I gave on Wednesday August 28, 2013. I demonstrated how my team at Viridian Spark customized Sitecore to provide decent Page Editor support for the Cushman & Wakefield project.

Here’s some of the basic takeaways:

  • Think about how you’re going to store shared content in a multi-site scenario.
  • Decide whether you’re going to support language dialects (ex: Brazilian Portuguese) and how that impacts sharing content across sites.
  • If you’re going to use custom URLs for shared content (which might not be located underneath the context site root), be prepared to do some heavy reverse engineering of Sitecore’s LinkManager, LinkProvider, and LinkBuilder classes.
  • Don’t forget that DynamicLinks will need treatment too in order to support Page Editor.
  • Custom URLs means customizing the HttpRequestPipeline. Make sure your pipeline handlers only fire when they’re relevant to your code, or you could break the Content Editor, Page Editor, or both.
  • When working with multiple languages, keep in mind that the Context Language might not be the “correct” language for all the renderings on a given page. – Make sure all your data API calls are language-specific.

We learned a ton on this project. If you attended the meeting, thanks for listening and good luck on your next Sitecore install.

Get the slideshow.