Sitecore

Awesome Sitecore Awesome

A curated list of Sitecore-related projects on GitHub. Please contribute!

Sitecore is a digital platform that helps managing multiple websites from one place. It provides marketing tools that deliver information about customers from different devices (CRMs, tracking, POS, etc.). Sitecore allows creating content to be accessed via different channels (desktops, mobiles, APIs, social media, etc.). The platform is flexible by design, with numerous points of extensions, it can be deployed both on-premise and cloud. This below list classifies extensibility and deployment options for Sitecore developers they can benefit from.

Contributions welcome. Add links through pull requests or create an issue to start a discussion.

Please note, Awesome Sitecore list only classifies and reviews useful GitHub repositories you may benefir from.

If you're looking for a more comprehensive list of arcticles, blog posts, videos and Q'n'A please refer to the Sitecore Link knowledge base.

Analytics

  • Sitecore Goal Description - Display the Goal Description in the Experience Profile.
  • Sitecore Goal Conversion Demo - Demonstrate how to obtain goals that were triggered during a visitor's interaction, after their session has ended, this data can be sent to an external system to be used helping marketers by informing them of what customer's and leads are doing on their website.
  • Custom Timeline Eras - Demonstrates how to trigger outcomes and display custom outcomes as eras on the Experience Profile timeline in Sitecore.

Audit and performance

  • Skillcore.Stats - Collect detailed timing information for all your Sitecore MVC renderings and API calls.
  • Sitecore.Boost - This repository contains a whole wealth of potential patches for the performance Improvements for the Sitecore platform to improve, most of which are running in production instances of Sitecore.
  • Sitecore.Cleanup - The module consists of 3 agents that will monitor each the Event Queue, Publish Queue and History tables to ensure that they don't exceed a set threshold.
  • SitecoreDXG: The Documentation Experience Generator - Sitecore template architecture visualization and documentation tool from the SitecoreUML family. Leveraging the open-source APIs associated with StarUML (on which SitecoreUML is also based), SitecoreDXG provides support for generating template data model architecture diagrams and HTML documentation from any existing Sitecore instance (PaaS and non-PaaS are both supported) that has the SitecoreUML Service for Sitecore.
  • sitecore-assembly-lists - Sitecore started providing assembly list information for Sitecore releases starting at 8.2 Update 5. This project provides tools for validating Sitecore assembly lists, both against an installation and during the development process.

Azure

Cache

  • CacheTuner - The module is an implementation of the rules given in Sitecore Caching guide.
  • Cache-Processing-Instance - A proof-of-concept for a dedicated HTML cache processing instance.
  • ExperienceEditorCache - A caching module which makes working with Sitecore Experience Editor more pleasant.
  • ManualHtmlCacheClearer - Clear specific HTML Caches on local and remote instances from the Sitecore client.
  • CacheCounters - Report Sitecore cache size information into Windows performance counters.
  • Sitecore Rules-Based Output Caching - Provides rules-based Sitecore output caching variance support, enabling the caching of personalized components and other components that require more complex cache variance logic.

Commerce

  • Reference Storefront - Sitecore Reference Storefront.
  • Commerce Sample Plugins - A sample code for Sitecore Commerce Plugins (targeted toward XC 9.0.3 and 9.1).
  • HabitatHome Commerce - An example built using SXA on XP and XC following the Helix architecture principles.
  • sitecore-commerce-configuration - Tools for configuring and boostrapping Sitecore Commerce Engine configuration.
  • Plumber for Sitecore Commerce - Tool to view Sitecore Commerce Engine Configuration.
  • Short Confirmation Codes - Provides six character confirmation codes (configurable), randomly generated, and tracked in the commerce database to avoid conflicts, as shorter codes are easier to communicate over support calls and for some clients may be more convenient than the 25 character confirmations that are provided out of the box.

Configuration

Containers

  • Repository of Sitecore Docker images - Build your own Docker images for the most recent versions of Sitecore.
  • Packer for Sitecore - Repository contains Packer templates for a local Sitecore hosting environment with IIS and and SQL Server on Windows, SOLR and Sitecore 9.0 building virtual machine images and Vagrant boxes for VirtualBox, provisioned with Chef.
  • Docker SOLR with SSL - A simple setup that set up a Linux container on a host running solr with SSL using a generated certificate.

  • Sitecore Content Hub Importer - Sitecore Content Hub Asset Importer; allows importing image assets from various data sources into Sitecore Content Hub.

  • schguild - Provides tools and sample code to help you in learning and working with Sitecore Content Hub.
  • Sitecore.ContentHub.Twitter - Demonstrates how to tweet from Sitecore Content Hub CMP.
  • Sitecore.SharedSource.CMP.Connector.Extensions - Extends Sitecore Connect for Sitecore CMP 2.0.0 so images set on CMP entities can be synchronised using the xml format used by Sitecore Connect™ for Sitecore DAM 2.0.0, so this module is required.

  • Sitecore spatial geojson polygons - Implementation of a Linq extension to be able to query on points that intercept GeoJson polygons in solr indexes. The demo provides a template with the spatial field, couple of sample items with polygons from openstreetmap that cover some cities; and a controller rendering that reads lat and lng from the querystring and returns the polygon of the item found (e.g. Big Ben's coordinates return London).

  • Search Index Builder - A tool for rebuilding search indexes from outside the Sitecore web app especially good for very long-running builds.
  • SolrCloud Install Scripts - PowerShell scripting library to help with installing SolrCloud clusters on Windows.
  • Common Sitecore ContentSearch extensions - Common extensions to Sitecore contentSearch; hereunder PopulateSolrSchema pipeline processors to ensure that all installed languages in Sitecore are added to the solr managed schema.
  • Sitecore Computed Search - An index search development accelerator that allows developers to declare computed search fields on an index that can capture and store targeted field values of items within a scope as well as the field values of items based on specific templates that are part of its presentation. In addition, specific weights can by applied to these computed fields using search boosting so that content matching search terms can be promoted in search results.
  • sitecore-azure-search-compat - Compatibility patch for Sitecore + Azure Search.

Data

Demo

  • Sitecore Habitat - Habitat is an example Sitecore solution built on the Helix architecture principles. No longer being updated or maintained, and is being replaced with Sitecore Helix Examples.
  • Sitecore Helix Examples - Demonstrations of Sitecore Helix practices across various tooling and business scenarios; intended to demonstrate a wider variety of implementation types / requirements than existing examples.
  • HabitatHome Demo - HabitatHome Demo and the tools and processes in it is a Sitecore solution example built SXA on Sitecore XP following the Helix architecture principles.
  • Sitecore.HabitatHome.Utilities - A collection of utilities and script examples to help with installing Sitecore Experience Platform, installing Sitecore Experience Commerce, installing Sitecore Modules, warming up a Sitecore Instance, security Hardening a Sitecore Instance etc.
  • Sitecore.HabitatHome.Commerce - Demo assets with external contributors and partners.
  • Sitecore.HabitatHome.Omni - Shares Sitecore JSS PWA demo assets and future "Sitecore Omni" related demo assets.
  • Sitecore.Demo.Group - Habitat Group Demo site - a developer example of a Habitat Based Demo.
  • Sitecore User Group UK - A demo of JAMstack architecture by using Git as a single source of truth, and Netlify for continuous deployment, and CDN distribution, built with Gatsby v2.

Deployment

  • PostDeploySteps - Post deploy steps for use with TDS. 1) TDS Example project that triggers the post deploy step; 2) Sample web project to show pulling in the deploy step; 3) DeployStep class library that you can add to your solution.
  • Sitecore Devops with AppVeyor - Sample solution which shows how to develop an open-source Sitecore module and hook it up with AppVeyor, a Continuous Delivery solution hosted in the cloud.

  • Copy Version module - Adds commands to the Content Editor that allow users to copy and paste the latest version of an item instead of the entire item. After installation, the "Copy version" and "Paste version" commands are accessible from the context menu in the content tree.

  • Browse Command - Adds a command that allows the user to open an item from the Sitecore content tree in a new browser window. Sitecore does not offer this out-of-the-box, except for the Preview command which has the effect of entering preview mode, so given module will do exactly the same but without entering Preview mode.
  • Expand Descendants Command - The module adds a command that allows the user to expand all descendants of an item from the Sitecore content tree.
  • Environment Styler for Sitecore - An environment specific styling (and text) on login screen and header ribbon for Sitecore.
  • InsertOptionsLoophole - Prevents Sitecore users from bypassing insert options.
  • ScopeToThis - Allows "scope to this" functionality a la Visual Studio on the Sitecore Content Editor tree.
  • DeviceEditorShortcuts - A productivity improvement for Device Editor, showing datasource if set to that particular component and previewing that right from a pop-up click.
  • DmsGutters - Content Editor gutters to indicate tested and personalized items.
  • Move Validator - Validate if an item can be moved to a new location based on insert options.
  • SitecoreFieldSuite - Provides Sitecore users a more streamlined and informational approach to content authoring. This is achieved by revamping 5 field types, introducing an Images field, enabling automatic publishing of referenced items and adding new functionality such as the Edit Form, Go to Item button and the Field Gutter.

Fields

  • Sitecore.Foundation.Fields - A collection of custom fields ready-to-use with your Sitecore solution.
  • LinkList - Sitecore LinkList Field Type.
  • CrossDatabaseTreeListField - An extended Treelist field to support cross database references.
  • LimitedText Field - Adds two new field types to the Sitecore Content Editor, Single-Line Text Limited and Multi-Line Text Limited. Both inherit all functionality from the existing text field controls and add the posibility to configure a maximum allowed value for the field, also inform the user of the number of remaining characters while they are editing.
  • CustomFields - A selection of NameValueDropLists, NameValueDropListsField, NameValueDroplist, NameValueDroplistField, SortableMultilist, SortableMultilistField, TimeZonesDropList fields.
  • YouTube Video Picker Field - Fully workable solution for YouTube video picker field for Sitecore.
  • Hide Dependent Fields Controls - Adds new Checkbox, Droplist and Droplink field type to the Sitecore Content Editor which depending on the selected value will hide the proceeding sibling fields. All controls inherit from their equivalent Sitecore counterpart and add the required UI enhancements.
  • icon-selector-field - Custom Icon selector field for Sitecore.
  • ImageSelector - An image Selector field for Sitecore to allow selecting and previewing multiple images based on TreeListEx field.

Forms

JSS

Helix

  • Sitecore Helix Documentation - The official guidelines and recommended practises for developing in Sitecore for Sitecore Helix.
  • Helixbase - Sitecore Helix based solution for Greenfield projects.
  • Sitecore Foundation - Sitecore Framework that follows the Helix modular architecture design principles.Includes plenty of Feature and Foundation layer modules, as well as reusable Common from Project layer.
  • Helix example Module & Solution templates - Templates for the Sitecore Helix Visual Studio templates extension.
  • Helix frontend development example - A simple frontend development setup for a Sitecore Helix solution.
  • Helix Publishing Pipeline - Allows Helix solutions to be published as a single unit, with content from modules (like views and config patches) being automatically included. It also contains optimisations and guidance around local development deployments. Since it extends the standard Web Publishing Pipeline it should work with any supported target (package, file system, Azure, Docker) via either Visual Studio or the command line.
  • CustomLinkProvider - A demonstration of Converting a custom Sitecore link provider from non-Helix to Helix.
  • Elision - An open source Sitecore accelerator implementing Helix principles.

Icons

  • Extra People Icons - Some extra "people" icons for your Sitecore instances.
  • sitecore-icon-build - MSBuild extensions for building Sitecore icon zip archives and including them in the published website.

Languages

  • Sitecore Item Translator - An item Translator module integrates Google translate seamlessly so that with a click of a button you are able to translate your text to any language that Google translate supports.
  • Sitecore Item Versioner - This module adds a new ribbon into the versions chunk of the Content Editor.With the new ribbon it is possible to initially create an item version in all configured languages.

Logging

Maintenance

  • Sitecore Instance Manager - The legendary Sitecore Instanmce Manager, now with veriosn 9.x support.
  • Sifon - Backup-restore tool supporting XC and remote machine operation with an excellent plugabble interface.

Media

  • Autocropper - Automatically generates cropped versions of an image, based on pre-defined dimensions and a specified origin, for use on responsive sites.
  • Media-Framework-Brightcove-Edition - Brightcove connector for Sitecore Media Framework.
  • YouTube Integration module - An easy way to show the videos from a channel at YouTube on your site, the YouTube integration module might be what you are looking for. In the media library you have a YouTube folder and by typing the name of the channel, all the videos in that channel are now represented by an item and when you create a new video on your channel it automatically updates the channel in the media library.
  • Shrink - Gives an insight in the usage of your media librarysimilar to a disk usage statistics viewer for your hard drives, also shows you which items are actually being used and published, so you can easily find media items that unnecessarily take up space in your database and offers you multiple ways of cleaning up your media library!
  • Dianoga - An automatic image optimizer for the Sitecore media library, reduced the size of your images served from Sitecore by 8-70%, completely automatically. When media images are requested, Dianoga automatically runs mozjpeg, PNGOptimizer, SVGO or WebP on the image data immediately after it is placed in the Sitecore media cache.

ORM

  • Glass.Mapper - Glass.Mapper has been the redevelopment of the very popular Glass.Sitecore.Mapper project. This project aims to create a more robust and more flexible solution that not only works with many different CMS's.
  • TemplateModelHelper - Helper methods for working with generated Sitecore Template Models (Mapped through Glass.Mapper or other framework) wit a main goal is to make it easy for developers to query the Sitecore database using generated Template models.
  • TDS-T4-Model-Generation - T4 model generation for TDS.
  • Sitecore.CodeGenerator - Generates Glass Mapper interfaces using T4 templates without TDS.
  • Synthesis - An object mapping framework for Sitecore that enables developing more reliable and maintainable sites in less time than traditional Sitecore development. It is a strongly typed template object generator that is easily understandable for developers with either a Sitecore or traditional .NET background. It neatly integrates with Sitecore MVC (via the Synthesis.Mvc package) as a View rendering model provider and IoC dependency for controller renderings.

Other

  • License Expiration Module 2.0 - Checks the expiration date of the Sitecore license, shows a Content Editor Warning message or/and sends an email to notify when the Sitecore license is about to expire.
  • Sitecore.SharedSource.JohnWest - A collection of code samples of Sitecore protoypes from John West blog posts.
  • BLAZOR + SITECORE - Allows you to run Sitecore app's client-side, also following the HELIX concept, the clean way.
  • Sitecore.SampleMvc - MVC versions of the code for the out-of-the-box Sitecore sample site (by default Sitecore comes with a sample site that is built on web forms and XSLT).
  • Sitecore TokenManager - A framework designed to allow any type of content to be dynamically injected into a RTE field.
  • sxp-notifications - Sends browser notifications to users in Sitecore.

Packaging

  • Package Autoloader - A tool to automatically apply a Sitecore package to hydrate some content as part of a deployment.
  • Sitecore.Ship - A lightweight means to install Sitecore Update packages via HTTP requests.
  • UpdatePackageInstaller - Installs update packages in Sitecore from the command line.

Pipelines

Publishing

  • AdvancedPublishDialog - An enhanced standard publish dialog.
  • Publish Viewer - Allows you to monitor the publishing queue on the Sitecore Publishing CM Server, see their current status and cancel publishing jobs if required (ie. time queued, time publish job started, duration in the queue, number of items published, average time to publish an item, all messages from the publish job).
  • Sitecore Power Publish - Publish button that forces the item being published, regardless the state of the Publishable option on the Item tab in the Publish restriction. 1) This function will not publish linked pages in your site that are not published, but only resources like media library items and data sources used in item fields, as those are needed to display the item you want to publish correctly. This method even publishes the templates and layouts used by the current item, if that's not done yet. 2) Unpublish button enables you to unpublish an item with a single click. It will change the Publish Restrictions as it unchecks the Publishable option on the Item tab and publishes the item after that, using a full Republish without Subitems. 3) Publishing State button shows the publishing state for all publishing targets. If a publishing target is up-to-date, a green dot is shown. If the item is published to a publishing target, but the item has changed afterwards, an orange dot is shown (so it's published, but not up-to-date). If the current item is not present in a publishing target at all, a red dot is shown. This function enables the content editor to check into detail if the content is published or not, for every publishing target.

Rules

  • Page Rules - Create any custom Sitecore rules for every page your visitors browse. User hasn't read T&C page and wants to see a contest page? Page should be accessible only after a certain date? You want to use GEO IP data to change the language of your home page automatically? You don't have translation ready for your page? With Sitecore rules engine only sky is the limit!
  • ItemNamingRules - Provides conditions and actions for the Rules Engine to automate item name conventions. You can use the ItemNamingRules project to apply different item naming rules in different branches of the content tree.
  • MenuItemRules - Rules-based context item menu visibility.
  • Sitecore adaptive rules - Adds support for adaptive rules for the Sitecore Rules Engine: they are useful when properties on conditions and actions have dependencies on one another.
  • Organize Insert Options Rules - A pipeline processor for the uiGetMasters pipeline that allows you to organize your Insert Options Rules however you like in the content tree.

Security

  • Securty Headers - Shows how to implemenmt response security headers on an exaple of SXA, but they are truly Helix-generic.
  • MasterKey - A module for Unlocking Sitecore Items.
  • Sitecore Delete Access Rights - Enables the "item:removeVersion" access right, allowing authors to remove individual item versions without allowing authors to delete the entire item. It also allows the initial creator of an item to delete his/her own item, unless an explicit deny delete access right is applied to the item.

SEO

  • 301 Redirect Module - An improved version of the Sitecore 301 redirect module.
  • SitecoreSitemapXML - Generates the Sitemap compliant with the schema defined by sitemaps.org and submits it to search engines.
  • Sitemap Generator - An example Sitecore / FakeDB / TDS / Cloud Build project for sitemap generation.
  • Sitecore Solr - An example code of how you could extend the Sitecore Solr provider.
  • URL Rewriter Module - Enables administrator or editors to manage URL rewrite rules from within the Sitecore client, supporting rewriting of hostnames, relative URL's and absolute URL's.
  • RedirectManager - A redirect manager for Sitecore.

Serialization

  • Rainbow - An advanced serialization library for Sitecore, designed to be a complete replacement for the Sitecore serialization format and filesystem organization, as well as enabling cross-source item comparison.
  • Unicorn - A utility for Sitecore that solves the issue of moving templates, renderings, and other database items between Sitecore instances by writing serialized copies of Sitecore items to disk along with the code - this way, a copy of the necessary database items for a given codebase accompanies it in source control.
  • Sidekick - A framework for angularjs based microservice architecture operations.
  • Rhino - An experimental serialization data provider for Sitecore.

Sitecore Host

  • SitecoreHostQuickStart - A basic set of templates to help you get started building your own Sitecore Host applications.
  • Hostbase - Sitecore Host example solution which can be used as a starting point for Sitecore Host applications. Currently runs in the IdentityServer Host as a plugin, will be updated when standalone Sitecore Host applications become readily available.

SPE (Sitecore PowerShell Extension)

SPEAK

SXA (Sitecore Experience Accelerator)

  • Sitecore Experience Accelerator index - The whole set of dicumentation about SXA.
  • SXA Styleguide - An education site based on SXA that helps explaining the inner working and illustrating best practices.
  • SXA.Styleguide.Frontend - A repository holds all the frontend code needed to run the site. It consists of two parts, the SXA themes and the Scriban templates used on the site. The folder structure used in this repository mimics the SXA Creative Exchange output, therefore you can find the sources for the themes and the seperate scriban templates.
  • SXA.Foundation.Variants - A collection of custom SXA rendering variants and some other useful things that may be helpful in your solution.
  • SXA Reference - An example Sitecore project build on top of Sitecore Experience Accelerator.
  • SXA.HealthCheck - A Power Shell script used to determine health status of SXA site, consists of validation steps, each of them checks different thing in SXA solution and provides possible solution.
  • Global Field Validator - An SXA module to validate fields at a site level rather than at the template field level.
  • Scriban syntax coloring and auto completion - Scriban syntax coloring and intellisense for known objects extension for Visual Studio Code.
  • Westco SXA Extensions - Sitecore Experience Accelerator (SXA) extensions.
  • docker-sxa-node - Demonstrates using the SXA CLI from within a Docker container with Node installed.

Testing

  • Sitecore FakeDb - A unit testing framework for Sitecore that enables creation and manipulation of Sitecore content in memory. It is designed to minimize efforts for the test content initialization keeping focus on the minimal test data rather than comprehensive content tree representation.

Templates

  • Token Set - Provides additional standard value tokens for Sitecore Data Templates, icludes future date and obtaining the value by executing a query.

Universal Tracker

  • UniversalTracker SDK - .Net Standard library that provides the interactions and events writing API for client .NET applications that serves as an interface that connects the Universal Tracker service and an application to let users work with native objects rather than with HTTP requests and JSON responses.

WebApi

Workflows

xConnect and xDB

  • XConnectTutorial - A tutorial repository based on the Sitecore documentation to walk users through common interactions with the xConnect APIs based on code from Martina Welander in the "Getting Started" tutorials and other great documentation.
  • XConnectHelper - A Swiss Army Knife for debugging xConnect. Features: Insight into current tracking session data; Show goals and events that were triggered on last page view; Status checker that validates your xConnect setup (connections, certificates, settings); Set identifiers and basic contact data in the current session; Flush current session for immediate processing.
  • XdbTracker - API and js-function to allow client-side triggering of Sitecore events / goals and outcomes.
  • Experience Generator - Generates "realistically looking" traffic for Sitecore sites with configurable patterns.
  • xconnect-odata-proxy - A simple Node.js proxy to access xConnect's oData API in Sitecore 9.
  • xConnectDeployer - An example console application you can use to deploy the Marketing Automation Engine.
  • Right To Be Forgotten - A "Execute Right To Be Forgotten" plugin for Marketing Automation Action.