Our blog contains the activity stream of Orchard Dojo: general news, new resources or tutorials are announced here.

Copilot Integration, Last call: Speaker application for Orchard Harvest 2026 - This week in Orchard (01/05/2026)

This week, Mike Alhayek shows how to use Copilot directly inside Orchard Core!

But before that, check out some code where you can see that, starting now, Orchard supports static data migration methods, and suppressions are no longer required for migration steps that don't use instance state.

Welcome the first contribution from Jack Liu, who made the pagination of the List Part configurable to decide whether to show a full pager with page numbers or just the arrows to navigate to the previous and next pages.

Do you know that since 2013, we've been working with Óbuda University in a hands-on way to teach web development? If you are interested in our Orchard Core courses at the university, check out our post on our site!

As we mentioned, we started publishing last year's Harvest recordings to YouTube. Check them out for some inspiration, and don't forget to apply to be a speaker for this year's Harvest by the 5th of May, midnight, anywhere on Earth!

Ready to explore? Let's dive in!

Latest tutorials

Featured tags

AI
IIS
MCP
API
SMS
SEO
All tags >

End of Dojo Course nearing! What do you want to learn a bit more about?

UPDATE (2017-11-22): Dojo Course 2 is released with new, updated videos! The last two tutorials of Dojo Course will soon come - they are already recorded. This brings us to the project works! There are many of you who enrolled to Dojo Course: it's almost time for you to submit the project work if you'd like to get a certificate of accomplishment! To help you (and so you can also watch the last tutorials of course) we've extended the deadline of the submissions: you now have time until 20th December to submit your work. Remember that you can still request us to review your code as explained in the FAQ. Remember: we can only grade your project and thus issue you a certificate of accomplishment if you submit your work! Also, don't forget about the short presentational video! And now something else: on the last lesson we'll mostly hear the students of the university course present their work; however, we'll have some spare time, about half an hour. If you'd like to learn about something that we haven't covered in the course or would like to see an explanation more in-depth about a topic now it's time for you to chime in: submit your idea in a comment here! We'll evaluate the proposals and pick what is the best for that half an hour (maybe a bit more), then we'll publish this very last tutorial later. Time is short: please submit your ideas in the next 24 hours, at least until Wednesday noon, CET!

Diving into the Orchard API - Dojo Course

UPDATE (2017-11-22): Dojo Course 2 is released with new, updated videos! This week on Dojo Course we dive into the Orchard API, use some of the build-in services and extending the capabilities of our module to make it even better! Using LazyField<T> to load data lazily so they are only loaded when we really need them. Using Work<T> to load dependencies lazily so they are only resolved when we really need them. Applying the [Admin] attribute for admin-related Getting to know an other Orchard service: IAuthorizer. Creating our own permissions by implementing the IPermissionProvider. Using the ContentManager so we can finally work with content items! Generating ad-hoc shapes and matching them to an actual template. Implementing the IResourceManifestProvider interface for managing static resources. Remember: if you have any questions don't hesitate to ask them by creating a new issue in the Orchard issue tracker with the "discussion" label. Make sure to prefix your thread's title with "Dojo Course - "! We keep an eye on these issues. Also follow us on Twitter to get notified about the latest Dojo Course news, including when a new tutorial is posted. Do you have some feedback about the course? Please send it in. Haven't you enrolled yet? Why not do it some time in the near future like right now?

Content Part development continued - Dojo Course

UPDATE (2017-11-22): Dojo Course 2 is released with new, updated videos! This week on Dojo Course we are giving life to our content part by adding several Orchard-y code pieces to it, though the result is far from being Frankenstein-like. While doing that, we also discover some interesting and useful pieces of the Orchard API. Creating a migration for our Contents feature. Difference between ContentPartRecord and ContentPartVersionRecord: versioning content parts. Making your content part attachable to content types (on the Admin UI). Creating a content type using migrations and attaching parts to it. Creating a handler for our content part to do some plumbing (e.g. StorageFilter). Creating a driver for our content part to cover server-side part of the the user interface interaction. How displaying a shape works, what is DisplayType? Shape templates (also editors) and using Placement. Using InfosetPart to store a part's data in the content item's XML infoset document. This eliminates content part record lazy loading, providing a significant performance gain. The importance of driver shape factories. How to make your content part support importing and exporting? Remember: if you have any questions don't hesitate to ask them by creating a new issue in the Orchard issue tracker with the "discussion" label. Make sure to prefix your thread's title with "Dojo Course - "! We keep an eye on these issues. Also follow us on Twitter to get notified about the latest Dojo Course news, including when a new tutorial is posted. Do you have some feedback about the course? Please send it in. Haven't you enrolled yet? Why not do it some time in the near future like right now?

Forum favourites: multi-node Orchard, community features and low-level data access

Forum topics from the Orchard discussion board that we found interesting: Running Orchard on two nodes: this is a tricky thing but in this discussion there some good tips Community features in Orchard: a lot of built-in and third-party modules bring "social" functionality to Orchard. You won't be able to just install Contrib.Facebook but there are some decent fundamentals. A tale of database table locking, transactions and low-level data access in Orchard: sometimes you just have to bury deeper.

Data storage and content part development - Dojo Course

UPDATE (2017-11-22): Dojo Course 2 is released with new, updated videos! How to upgrade my table schema? How to store and retrieve records from my tables? How do I upgrade from using a plain set of records to using a content part? This week on Dojo Course we are moving on to uncover the mysteries of content parts. Making modifications to your Migrations classes: how to use the update methods. Quick recap on Dependency Injection and creating a service class to handle our records. Benedek has problems with typing when he knows he's being watched (actually, Zoltán as well) :). Difference between requiring a single and list of dependencies. How to (and how not to) use IRepository<T> to store and retreive records. Based on what we learned about records, we are starting to develop our first content part. Dividing your module into features (subset of functionalities) and declaring dependencies between them. Assigning pieces of code to specific features using the OrchardFeature attribute. Remember: if you have any questions don't hesitate to ask them by creating a new issue in the Orchard issue tracker with the "discussion" label. Make sure to prefix your thread's title with "Dojo Course - "! We keep an eye on these issues. Also follow us on Twitter to get notified about the latest Dojo Course news, including when a new tutorial is posted. Do you have some feedback about the course? Please send it in. Haven't you enrolled yet? Why not do it some time in the near future like right now?

Module development continued - Dojo Course

UPDATE (2017-11-22): Dojo Course 2 is released with new, updated videos! The fifth lesson of Dojo Course will teach you more about module development: how to build your own logic that is able to store data and what are the basic services that aid you in your work. A quick recap of the last lesson: command line scaffolding, creating a controller and a view, dependency injection Using the IWorkContextAccessor and exploring the WorkContext (and the HttpContext inside) object: content parts and items everywhere! Attaching the debugger to the IIS Express worker process How to display CLRExceptions in VS to see the exceptions that otherwise would be swallowed somewhere in the stack: Ctrl+D,E and check the "Thrown" checkbox Using the INotifier service Property injection: Localizer and Logger How to properly structure your T-strings to make them bulletproof agains translations: String.Format Routing in MVC and defining custom parameters Basic data storage: creating a record class (which is the OO representation of our data) and a migration class to define the table schema Looking at the DB after the migration to see what our code did there Remember: if you have any questions don't hesitate to ask them by creating a new issue in the Orchard issue tracker with the "discussion" label. Make sure to prefix your thread's title with "Dojo Course - "! We keep an eye on these issues. Also follow us on Twitter to get notified about the latest Dojo Course news, including when a new tutorial is posted. Do you have some feedback about the course? Please send it in. Haven't you enrolled yet? Why not do it some time in the near future like right now?

Have you started your Dojo Course project yet?

UPDATE (2017-11-22): Dojo Course 2 is released with new, updated videos! If yes, why not? :-) Seriously, it's about time: we're deeply in module development now but there's no reason not to start working on your theme already: you know everything about theme development! (OK, maybe not everything but every essential information to create your theme.) Remember: the earlier you start making use of our offer to review your code (see the FAQ) the more reviews we can give you. If you have questions, go on and ask them in the Orchard discussion board (and if you have read the FAQ you also know how to make sure that if nobody else, we'll help you there). Also, Dojo Course news are announced on Lombiq's Twitter feed too, so follow us to keep up to date.

Diving into theme development and starting with module development - Dojo Course

UPDATE (2017-11-22): Dojo Course 2 is released with new, updated videos! Our fourth Dojo Course tutorial wraps up theme development by explaining shapes and alternates. We also start with module development and write some interesting code that actually works. Shapes are the dynamic objects organized into a tree that defines the layout Exploring this tree of shapes using the Shape Tracer module, a bigger building block is a zone Explaining the relation between the Razor templates and shapes, view engines Overriding active templates: alternates Localizing templates: T-Strings (please ignore the ASPX format :) ) and how they work Exploring the naming conventions of templates for targeting the override The resulting output is affected by OutputCache for unauthenticated users Editing the settings for the Orchard.OutputCache module Adding styles and scripts to your templates, difference between AtHead and AtFoot for scripts Taking a look at the Layout shape template, which is the spine of the final layout Generating a module skeleton with the command line tool and adding it to our custom solution folder Introducing the Orchard Training Demo module, specifically developed to aid you in learning about Orchard development Looking at the basic settings of your module: Module.txt Diving modules into subsets of functionality: features Modules are strongly depending on the MVC paradigm Let's see C: writing our first Controller with an action for a start Let's see V: writing a view that represents the result of our controller actions The first and most basic element of the Orchard API: the [Themed] attribute Getting to know Dependency Injection Using our first Orchard service: IWorkContextAccessor How to debug an Orchard application running with IIS Express Remember: if you have any questions don't hesitate to ask them by creating a new issue in the Orchard issue tracker with the "discussion" label. Make sure to prefix your thread's title with "Dojo Course - "! We keep an eye on these issues. Do you have some feedback about the course? Please send it in. Haven't you enrolled yet? Why not do it some time in the near future like right now?

Advanced content management and starting with theme development - Dojo Course

UPDATE (2017-11-22): Dojo Course 2 is released with new, updated videos! Forms, tokens, projections? Command line scaffolding for themes and shapes? This is what the third Dojo Course tutorial is about. Continuously updated source code for the Course (you can upload the latest source in a zip from here) Using Custom Forms: Creating a content type for using as a form, with fields Creating a custom form with the newly created content type Using Workflows to run custom activities like sending an e-mail when a form is submitted Using tokens to create dynamic texts Using the Projector module to list content items: Creating queries to define which content items to list, in what order and how to display them Creating Projection Pages or Projection Widgets to display the result of the query Using Query Links in Navigation Starting with developing extensions: themes Using the command line tool, help Command line scaffolding: generating a theme with a separate project and adding it to our custom solution Basic settings for your theme with Theme.txt: Name, BaseTheme (inheritance) Using the Shape Tracing feature to reveal how the layout is built up, notion of shapes Remember: if you have any questions don't hesitate to ask them by creating a new issue in the Orchard issue tracker with the "discussion" label. Make sure to prefix your thread's title with "Dojo Course - "! We keep an eye on these issues. Haven't you enrolled yet? Why not do it some time in the near future like right now?

Shape Dojo Course by giving your feedback!

UPDATE (2017-11-22): Dojo Course 2 is released with new, updated videos! Do you take part in Dojo Course? You like it? You dislike something? Why don't you tell us? Give your feedback and help make Dojo Course better. Your opinion matters for shaping the course, even on the go.