<rss version="2.0">
  <channel>
    <link>https://orcharddojo-net-staging.lombiq.com/Contents/ContentItems/orcharddojoblog00000000000</link>
    <description><![CDATA[]]></description>
    <item>
      <title>AI framework for .NET, New View Roles permission - This week in Orchard (28/08/2026)</title>
      <link>https://orcharddojo-net-staging.lombiq.com/blog/ai-framework-for-net-new-view-roles-permission-this-week-in-orchard-28-08-2026</link>
      <description><![CDATA[<h2>Orchard Core updates</h2><h3>Allow users to be granted read-only permission for Roles</h3><p>This feature by <a href="https://github.com/mvarblow" target="_self">Matt Varblow</a> adds a new <em>View Roles</em> permission, letting you grant a group of users, like support staff who manage a subset of users, visibility into role definitions and their assigned permissions, without giving them the ability to change anything. The new permission only allows access to the <em>Roles Index</em> and <em>Display</em> actions, and is implied by <em>Manage Roles</em>, so admins keep full control.</p><p>We set up our site using the <em>Blog</em> recipe, which comes with predefined roles like <em>Author</em>, <em>Contributor</em>, and <em>Editor</em>. In the admin panel, under <em>Access Control -&gt; Roles</em>, edit the <em>Author</em> role, search for the "<em>role</em>" permission, and add the new <em>View Roles</em> permission to it. Then create a test user with the <em>Author</em> role via <em>Access Control -&gt; Users -&gt; Add User</em>.</p><p>Logging in as that user and heading to <em>Access Control -&gt; Roles</em> shows all roles with only a <em>View</em> button: no way to add, clone, edit, or delete a role. Opening a role shows its permissions read-only, with no <em>Save</em> button. We logged in with an <em>Administrator</em> user on the right and an <em>Author</em> user on the left.</p><p><img alt="Allow users to be granted read-only permission for roles" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260828/allow-users-to-be-granted-read-only-permission-for-roles.png"></p><h3>New MinLength and MaxLength Text Field Settings</h3><p><a href="https://github.com/agriffard" target="_self">Antoine Griffard</a> added optional <em>Minimum length</em> and <em>Maximum length</em> values to <em>Text Field</em> settings. When set above 0, the field's content is validated on save, and the corresponding <em>MinLength/MaxLength</em> attributes are rendered on the standard and Text Area editors. An empty value (the default) means no limit, so existing content types are unaffected.</p><p>We have a site set up with the <em>Blog</em> recipe, so we head to <em>Design -&gt; Content Definition -&gt; Content Types</em> and edit the predefined <em>Blog Post</em> content type, which has a <em>Text Field</em> called <em>Subtitle</em>. Editing it shows the new minimum and maximum length text boxes; we set 5 as the minimum and 10 as the maximum.</p><p>Heading to the editor of the predefined <em>Blog Post</em> content item and hitting <em>Save</em> without any changes now returns an error: "<em>Subtitle can't be longer than 10 characters</em>", because the "<em>Problems look mighty small from 150 miles up</em>" text is longer than that.</p><p><img alt="New MinLength and MaxLength Text Field Settings" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260828/new-min-length-and-max-length-text-field-settings.png"></p><h3>Demos</h3><h4>Introducing CrestApps.Core: AI Orchestration for any .NET Project</h4><p><a href="https://github.com/MikeAlhayek" target="_self">Mike Alhayek</a>'s goal was to make the <a href="https://orchardcore.crestapps.com/docs/ai/" target="_self">AI Suite</a> code more reusable. Until now, it only worked with Orchard Core; he abstracted the services into a standalone framework that provides everything needed to bring Orchard Core's AI features into any ASP.NET Core project. It's nearly the same code, minus the Orchard Core-specific part.</p><p>You can find the project <a href="https://github.com/CrestApps/CrestApps.Core" target="_self">in this GitHub repository</a>, with <a href="https://core.crestapps.com/docs/core/getting-started-aspnet" target="_self">its own docs</a>. There's also a sample MVC app showing how to use it in a standard ASP.NET Core app with nothing Orchard-specific about it: you can add a connection, index data profiles, and start chatting, in a UI very similar to Orchard Core's own AI chat.</p><p><img alt="CrestApps Core MVC" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260828/crestapps-core-mvc.png"></p><p>Find the <a href="https://www.nuget.org/packages/CrestApps.Core" target="_self">latest version on NuGet</a> or <a href="https://github.com/CrestApps/CrestApps.Core/releases" target="_self">GitHub releases</a>, and <a href="https://www.youtube.com/watch?v=4bAdJwTKYRc" target="_self">head to YouTube for a demo</a> covering the whole framework.</p><p class="embed-container"><iframe width="840" height="473" src="https://www.youtube-nocookie.com/embed/4bAdJwTKYRc" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" spellcheck="false"></iframe></p><h2>News from the community</h2><h3>Signing in to DotNest just got easier</h3><p><a href="https://lombiq.link/jmp/3ec9f808" target="_self">DotNest</a> now supports social sign-in. You can register and log in using your existing Microsoft, Google, GitHub, or Facebook account, no need to create and remember another username and password unless you want to.</p><p>New to DotNest? Pick your preferred sign-in provider on the homepage, authorize it, and your account is ready in a few clicks. Already have a DotNest account? If your social account uses the same e-mail address, signing in with your chosen provider logs you straight into your existing account, no manual migration required.</p><p>Building your own ASP.NET Core or Orchard Core application? We also <a href="https://lombiq.link/jmp/9556a24e" target="_self">published a step-by-step guide</a> to integrating Microsoft sign-in in your own projects, from configuring Microsoft Entra ID to wiring up authentication.</p><p>Prefer a traditional DotNest username and password? Still fully supported, social sign-in is entirely optional.</p><p><a href="https://lombiq.link/jmp/de5366a4" target="_self">Read the announcement</a> on <a href="https://lombiq.link/jmp/3ec9f808" target="_self">DotNest.com</a>.</p><p><img alt="Social Logins nows available DotNest" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260828/social-logins-now-available-dotnest.png"></p><h3>Orchard Harvest 2026 goes Online</h3><p>Important update about Orchard Harvest! Due to various factors, we had to make the difficult decision to move the event online.</p><p>Orchard Harvest 2026 will be hosted through Microsoft Teams, and anyone can join for free! You'll find the latest information <a href="https://orchardcore.net/harvest" target="_self">on the conference website</a> and <a href="https://www.tickettailor.com/events/lombiqtechnologiesltd/2247098" target="_self">grab your complimentary tickets here</a>.</p><p>With Orchard Harvest moving online, we once again accept speaker applications: <a class="anchor_edefb8 anchorUnderlineOnHover_edefb8" href="https://forms.cloud.microsoft/Pages/ResponsePage.aspx?id=Wt6elek45kStyIVVO-uCICDdeeZFbXdAlSWTkdgpZAtUQzA3UzVNUERJTk4zVlEwRUtXNkM2SlI4Sy4u" rel="noreferrer noopener" target="_blank" title="https://forms.cloud.microsoft/Pages/ResponsePage.aspx?id=Wt6elek45kStyIVVO-uCICDdeeZFbXdAlSWTkdgpZAtUQzA3UzVNUERJTk4zVlEwRUtXNkM2SlI4Sy4u" tabindex="0">https://forms.cloud.microsoft/Pages/ResponsePage.aspx?id=Wt6elek45kStyIVVO-uCICDdeeZFbXdAlSWTkdgpZAtUQzA3UzVNUERJTk4zVlEwRUtXNkM2SlI4Sy4u</a></p><p>The number of available presentation slots are TBD, also depends on the already planned speakers' (for the in-person version) schedule.</p><p><img alt="Orchard Harvest 2026 goes Online" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260821/orchard-harvest-goes-online.png"></p><h3>Orchard Dojo Newsletter</h3><p>Lombiq's Orchard Dojo Newsletter has 411 subscribers! We have started this newsletter to keep the Orchard community informed about the latest platform news. By subscribing to this newsletter, you will receive an email whenever a new post is published to Orchard Dojo, including <em>'This Week in Orchard'</em>, of course.</p><p>Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to <a href="https://orcharddojo.us12.list-manage.com/subscribe?u=32f819a768237590e479c9d0a&amp;id=039db8f13f">subscribe here</a>!</p><h5>If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of <a href="https://www.youtube.com/watch?v=clpiSeuEGO8" target="_self">this Orchard meeting</a>!</h5>]]></description>
      <pubDate>Fri, 28 Aug 2026 09:34:04 GMT</pubDate>
      <guid isPermaLink="true">https://orcharddojo-net-staging.lombiq.com/blog/ai-framework-for-net-new-view-roles-permission-this-week-in-orchard-28-08-2026</guid>
    </item>
    <item>
      <title>Orchard Harvest goes Online, Content Lock feature prevents editing conflicts - This week in Orchard (21/08/2026)</title>
      <link>https://orcharddojo-net-staging.lombiq.com/blog/orchard-harvest-goes-online-content-lock-feature-prevents-editing-conflicts-this-week-in-orchard-21-08-2026</link>
      <description><![CDATA[<h2>Orchard Core updates</h2><h3>Replace ImageSharp.Web with NetVips for on-demand image processing</h3><p>ImageSharp v4.0.0 is out, and the breaking changes are minimal for us. But this version enforces a license check, <a href="https://sixlabors.com/posts/announcing-imagesharp-400/#breaking-and-operational-changes" target="_self">as noted on the Six Labors blog</a>, requiring a license file to be present, <a href="https://sixlabors.com/posts/licence-enforcement-changes/" target="_self">see details here</a>. The license itself didn't change: Orchard Core, as an open-source project, can keep using it, and the license doesn't affect transitive dependents, i.e. users of Orchard Core. But there are multiple issues:</p><ul><li>There's no single license for Orchard Core, but there needs to be one for CI builds, and individual ones for everyone who wants to build Orchard Core from source, whether to contribute or just explore the codebase. This breaks the F5 experience, and raises the barrier for contribution.</li><li>These licenses are only valid for a year. When they expire, the build fails, requiring periodic license updates for the CI builds and for every contributor.</li><li>People who build Orchard Core from source become subject to the license too, and thus required to apply for or buy one. It will come as a surprise to people working with the full source in their own solutions, or who publish Orchard Core to an internal NuGet feed, that they now have to pay.</li></ul><p>Because of that, we needed to decide: bite the bullet and update ImageSharp despite the inconvenience, or find an alternative.</p><p>We decided to replace ImageSharp with NetVips as the default engine. <a href="https://github.com/kleisauke/net-vips" target="_self">NetVips</a> is a managed binding over the native <a href="https://www.libvips.org/" target="_self">libvips</a> library, which brings significantly faster resizing through shrink-on-load decoding. If you want to keep ImageSharp-based processing, a new opt-in feature, <em>Media ImageSharp Image Processing</em>, provides an <em>IImageProcessingEngine</em> backed by SixLabors.ImageSharp 3.1.x. Enabling this feature replaces the default NetVips engine.</p><p>Check out <a href="https://docs.orchardcore.net/en/latest/releases/3.0.0/#media-module" target="_self">the release notes of Orchard v3</a> for the feature, configuration, and type renames, the <em>IResizedImageCache</em> API change, and everything else you need to know about this replacement.</p><p>Thanks to everyone who worked to make this change happen, especially <a href="https://github.com/Skrypt" target="_self">Jasmin Savard</a>, <a href="https://github.com/sebastienros" target="_self">Sébastien Ros</a>, and <a href="https://github.com/Piedone" target="_self">Zoltán Lehóczky</a>.</p><p><img alt="Replace ImageSharp.Web documentation" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260821/replace-imagesharp-web-documentation.png"></p><h3>Update YesSql to 6.0</h3><p><a href="https://github.com/sebastienros" target="_self">Sébastien Ros</a> released <a href="https://github.com/sebastienros/yessql/releases/tag/v6.0.0" target="_self">YesSql v6.0.0</a>. This major version brought a few breaking changes, already adapted to be compatible with the nightly build of Orchard Core, including:</p><ul><li><em>IQuery&lt;T&gt;.ListAsync()</em> now returns <em>Task&lt;IReadOnlyList&lt;T&gt;&gt;</em> instead of <em>Task&lt;IEnumerable&lt;T&gt;&gt;</em>. Because <em>Task&lt;T&gt;</em> is invariant, methods that returned the query result directly no longer compile. They're updated to await and return (or to type the local as <em>IEnumerable&lt;T&gt;</em>), so public signatures are preserved.</li><li>The <em>YesSql.Filters.Abstractions.*</em> namespaces were flattened to <em>YesSql.Filters.*</em>. Updated the affected using directives (package IDs are unchanged).</li><li><em>ISession.SaveAsync</em> inserted a <em>bool checkConcurrency</em> parameter before collection. The one positional call site now uses a named collection: argument.</li><li>Removed parameterless <em>IQuery&lt;T&gt;</em> overloads (<em>ListAsync()</em>, <em>FirstOrDefaultAsync()</em>, etc.), and updated the <em>FakeQuery&lt;T&gt;</em> test mock accordingly.</li></ul><p><img alt="YesSql 6 changes" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260821/yessql-6-changes.png"></p><h3>Demos</h3><h4>Content Lock feature prevents editing conflicts</h4><p>The <a href="https://github.com/OrchardCoreContrib/OrchardCoreContrib.Modules" target="_self">OrchardCoreContrib.Modules repository</a> is a community-maintained set of modules for Orchard Core. It will soon contain a <em>Content Lock</em> feature, which prevents editors from editing content already locked by another user.</p><p>Head to <em>Configuration -&gt; Features</em> and enable <em>Content Lock</em> to prevent simultaneous editing by multiple users. Open the editor for any content item, then log in as another user in a separate window: you'll see a red <em>Locked</em> icon next to that content item.</p><p><img alt="Red Locked icon" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260821/red-locked-icon.png"></p><p>Hitting <em>Edit</em> shows a notification that the content is locked and can't be edited until the lock is released; the <em>Publish</em> and <em>Save Draft</em> buttons are disabled too. Once the first user leaves the editor, or the lock times out, editing becomes available again. The timeout is configurable via <em>appsettings.json</em>.</p><p><img alt="Content Locked notification" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260821/content-locked-notification.png"></p><p>See this feature in action in the <a href="https://www.youtube.com/watch?v=DUFeK30-Qnc" target="_self">demo on YouTube</a> by <a href="https://github.com/hishamco" target="_self">Hisham Bin Ateya</a>.</p><p class="embed-container"><iframe width="840" height="473" src="https://www.youtube-nocookie.com/embed/DUFeK30-Qnc" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" spellcheck="false"></iframe></p><h2>News from the community</h2><h3>Orchard Harvest 2026 goes Online</h3><p>Important update about Orchard Harvest! Due to various factors, we had to make the difficult decision to move the event online.</p><p>Orchard Harvest 2026 will be hosted through Microsoft Teams, and anyone can join for free! You'll find the latest information <a href="https://orchardcore.net/harvest" target="_self">on the conference website</a> and <a href="https://www.tickettailor.com/events/lombiqtechnologiesltd/2247098" target="_self">grab your complimentary tickets here</a>.</p><p>With Orchard Harvest moving online, we once again accept speaker applications: <a class="anchor_edefb8 anchorUnderlineOnHover_edefb8" href="https://forms.cloud.microsoft/Pages/ResponsePage.aspx?id=Wt6elek45kStyIVVO-uCICDdeeZFbXdAlSWTkdgpZAtUQzA3UzVNUERJTk4zVlEwRUtXNkM2SlI4Sy4u" rel="noreferrer noopener" target="_blank" title="https://forms.cloud.microsoft/Pages/ResponsePage.aspx?id=Wt6elek45kStyIVVO-uCICDdeeZFbXdAlSWTkdgpZAtUQzA3UzVNUERJTk4zVlEwRUtXNkM2SlI4Sy4u" tabindex="0">https://forms.cloud.microsoft/Pages/ResponsePage.aspx?id=Wt6elek45kStyIVVO-uCICDdeeZFbXdAlSWTkdgpZAtUQzA3UzVNUERJTk4zVlEwRUtXNkM2SlI4Sy4u</a></p><p>The number of available presentation slots are TBD, also depends on the already planned speakers' (for the in-person version) schedule.</p><p><img alt="Orchard Harvest 2026 goes Online" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260821/orchard-harvest-goes-online.png"></p><h3>Orchard Dojo Newsletter</h3><p>Lombiq's Orchard Dojo Newsletter has 411 subscribers! We have started this newsletter to keep the Orchard community informed about the latest platform news. By subscribing to this newsletter, you will receive an email whenever a new post is published to Orchard Dojo, including <em>'This Week in Orchard'</em>, of course.</p><p>Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to <a href="https://orcharddojo.us12.list-manage.com/subscribe?u=32f819a768237590e479c9d0a&amp;id=039db8f13f">subscribe here</a>!</p><h5>If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of <a href="https://www.youtube.com/watch?v=clpiSeuEGO8" target="_self">this Orchard meeting</a>!</h5>]]></description>
      <pubDate>Fri, 21 Aug 2026 09:45:43 GMT</pubDate>
      <guid isPermaLink="true">https://orcharddojo-net-staging.lombiq.com/blog/orchard-harvest-goes-online-content-lock-feature-prevents-editing-conflicts-this-week-in-orchard-21-08-2026</guid>
    </item>
    <item>
      <title>Sponsorship Spotlight: Mike Alhayek</title>
      <link>https://orcharddojo-net-staging.lombiq.com/blog/sponsorship-spotlight-mike-alhayek</link>
      <description><![CDATA[<p><strong>Gábor</strong>: When did you first come across Orchard?</p><p><strong>Mike</strong>: In late 2021, I was searching for a .NET framework that offered true modularity and multi-tenancy for a project I was leading. That's when I discovered Orchard Core. At first, I was drawn to the framework itself, but once I explored the CMS and saw how powerful and well-designed it was, I realized it stood out from the rest.</p><p><strong>Gábor</strong>: Have you tried other CMSs too?</p><p><strong>Mike</strong>: Before discovering Orchard Core, I used Umbraco. It's a solid CMS, but Orchard Core's architecture, modularity, and UI appealed to me more. I don't have a deep comparison, but Orchard Core simply aligned better with the type of projects I build and the flexibility I needed. Since then, I've been fully invested in Orchard Core and its ecosystem.</p><p><strong>Gábor</strong>: Why do you like contributing to Orchard?</p><p><strong>Mike</strong>: As I started using Orchard Core, I naturally ran into bugs or missing features that I needed for my projects. Instead of waiting for someone else to fix them, I jumped in and started contributing. Those early contributions were incredibly educational. Our late friend <a href="https://github.com/jtkech" target="_self">Jean‑Thierry Kéchichian</a> often reviewed my PRs with deep, thoughtful explanations of Orchard Core's internals. His feedback accelerated my understanding of the framework, and I'll always be grateful for that.</p><p>I also learned a lot from <a href="https://github.com/ns8482e" target="_self">Niraj Soni</a>, who helped me understand shapes, templating, and CMS concepts more thoroughly. The community's willingness to help newcomers is one of the biggest reasons I kept contributing. And of course, financial support from companies like <a href="https://lombiq.link/jmp/ef4514d" target="_self">Lombiq</a> helps sustain the ecosystem and encourages ongoing contributions. It's a community that invests in itself, and that makes contributing genuinely rewarding.</p><p><strong>Gábor</strong>: I'm glad to hear that you receive useful feedback from the community.</p><p><strong>Mike</strong>: Without the community's support, I wouldn't be one of Orchard Core's active contributors today. It's a welcoming, collaborative, and encouraging group of people. I always enjoy meeting new faces at Harvest; it's one of the highlights of being part of this ecosystem.</p><p><strong>Gábor</strong>: What do you like most about Orchard?</p><p><strong>Mike</strong>: Its flexibility. Orchard Core is designed with extensibility in mind, giving developers a modular architecture where every feature can be customized, replaced, or extended. It includes all the bells and whistles a SaaS owner needs: multi‑tenancy, feature toggles, modular components, deployment tools, and a CMS that can be shaped into virtually anything.</p><p>Another major advantage is that Orchard Core is built on top of the ASP.NET Core framework, which we all know, love, and are deeply familiar with. Having ASP.NET Core as the foundation means you're working with a modern, high‑performance, secure, and well‑supported platform. Developers can immediately leverage their existing .NET knowledge without needing to learn an entirely new ecosystem.</p><p>Orchard Core feels close to developers because it is built by engineers who understand how developers think. That combination - a powerful modular architecture on top of ASP.NET Core - makes it an exceptional foundation for building anything from small sites to large, multi‑tenant SaaS platforms.</p><p><strong>Gábor</strong>: You have a repository on GitHub called <a href="https://github.com/CrestApps/CrestApps.OrchardCore" target="_self">Orchard Core Modules by CrestApps</a> that contains a collection of modules and extensions that expand the capabilities of the Orchard Core framework. It contains an <a href="https://orchardcore.crestapps.com/docs/ai/" target="_self">Artificial Intelligence Suite</a> that brings CrestApps.Core AI capabilities into Orchard Core.</p><p><strong>Mike</strong>: This repository goes far beyond artificial intelligence: it contains nearly 50 modules that meaningfully expand what Orchard Core can do. The idea behind the collection is simple: give developers practical tools that solve real problems and make Orchard Core even more powerful.</p><p>The AI Suite is the part that gets the most attention, and for good reason. It brings CrestApps.Core AI capabilities directly into Orchard Core and makes advanced AI integration incredibly easy. What makes it special is how naturally AI becomes part of the CMS experience. You can chat with your content items as if they were a knowledge base, automate workflows, manage site settings, analyze tabular data, and even perform complex operations through conversational commands. The AI can remember context, work with agents, execute tools, and help both administrators and end‑users interact with Orchard Core in smarter ways.</p><p>But the repository includes many other modules that people often overlook. There are modules that enhance the admin experience, improve notifications, simplify deployment, extend workflows, enrich content building, and provide utilities that make everyday development smoother. Some modules add new UI components, others improve security, and some simply fill gaps that developers frequently run into. The goal is to make Orchard Core feel like a complete, polished ecosystem where you have everything you need at your fingertips.</p><p>All of this is powered by <a href="https://github.com/CrestApps/CrestApps.Core" target="_self">CrestApps.Core</a>, a general .NET AI framework that allows developers to bring AI into any .NET project, not just Orchard Core.</p><p><strong>Gábor</strong>: And if someone wants to try out the AI Suite, they can easily do that in a minute by creating a site in <a href="https://lombiq.link/jmp/139d8601" target="_self">DotNest</a>, because now you have the option to manage your DotNest site with AI too! <a href="https://lombiq.link/jmp/9ed84b35" target="_self">We announced the availability of the Orchard Core-integrated AI modules for DotNest</a> a year ago, and you have added so many new features since then, so we will need to update those modules in DotNest soon.</p><p><strong>Mike</strong>: And after nearly a year of development, I announced the release of <a href="https://orchardcore.crestapps.com/" target="_self">CrestApps.OrchardCore v2</a> at the beginning of this month. This has been one of the largest and most ambitious updates we've ever built. It introduces a powerful collection of modules designed to significantly extend what you can do with Orchard Core CMS. It contains nearly 30 AI-focused modules that make integrating AI into your Orchard Core applications incredibly simple while remaining highly flexible and production-ready.</p><p>But it's not just about AI: it also contains a Content Transfer Module to import and export extremely large volumes of content using CSV and Excel files with high performance and reliability, and the Recipes Module, which provides JSON schemas for virtually everything in Orchard Core recipes, enabling rich IntelliSense while authoring recipes, schema validation, and precise AI-generated recipes for content items, workflows, site settings, and much more.</p><p><strong>Gábor</strong>: Wow, that sounds really interesting, and it involved a lot of work! But what was the goal when you started the development of the CrestApps Orchard Core open-source modules?</p><p><strong>Mike</strong>: The original idea was very simple: I wanted Orchard Core to be able to chat against its own content items. Instead of doing a traditional search, I wanted users to ask questions and get intelligent answers based on the site's content. That was the spark.</p><p>But once we started building, the project evolved quickly. It became clear that Orchard Core needed a full AI ecosystem, not just a chat tool. Today, the AI Suite is one of the most robust AI integrations in the Orchard community, covering everything from content management to workflows to data analysis.</p><p><strong>Gábor</strong>: And you also created a repository called <a href="https://github.com/CrestApps/CrestApps.AgentSkills" target="_self">CrestApps.AgentSkills</a>, which contains agent skills.</p><p><strong>Mike</strong>: Yes, to support developers using tools like copilot‑cli or claude‑cli, we also created the <a href="https://github.com/CrestApps/CrestApps.AgentSkills" target="_self">CrestApps.AgentSkills</a> repository. It teaches AI agents how to generate accurate Orchard Core code, extend features properly, and produce higher‑quality output. It essentially gives AI the “skills” needed to understand Orchard Core's architecture and conventions.</p><p><strong>Gábor</strong>: Are you contributing to other open-source projects too?</p><p><strong>Mike</strong>: Yes. I maintain all <a href="https://github.com/CrestApps" target="_self">CrestApps repositories</a>, contribute to <a href="https://github.com/sebastienros/yessql/" target="_self">YesSql</a>, and occasionally contribute to other open-source projects whenever I encounter issues that directly affect my work or when I see an opportunity to improve something.</p><p><strong>Gábor</strong>: You will be a speaker at this year's <a href="https://orchardcore.net/harvest" target="_self">Harvest</a>. We know that you will give two talks this time. Could you please give some insights into your talks for our readers?</p><p><strong>Mike</strong>: One of my talks is titled "Unpacking AI Orchestrator". It's a deep dive into how AI orchestration actually works behind the scenes. Many people use AI tools daily but don't fully understand the orchestration layer that makes everything possible. This session will help attendees appreciate the complexity behind AI systems and understand why the CrestApps.OrchardCore AI modules are such a valuable addition to the Orchard ecosystem.</p><p>As for the second talk, I'm actively working on it. I know the topic I want to cover, but I'm still preparing the material. Once it's ready, I'll announce it.</p><p><strong>Gábor</strong>: Thank you for the interview, and see you soon at Harvest!</p><p><br></p><p>Stay tuned for the upcoming parts of the Sponsorship Spotlight series! And if you missed the previous parts, check them out here:</p><ul><li><a href="https://lombiq.link/jmp/7647de1e" target="_self">Sponsorship Spotlight: Antoine Griffard</a></li></ul><ul><li><a href="https://lombiq.link/jmp/3338210a" target="_self">Sponsorship Spotlight: Hisham Bin Ateya</a></li></ul><p>If you don't want to miss our upcoming Sponsorship Spotlight series, sign up for the <a href="https://www.linkedin.com/build-relation/newsletter-follow?entityUrn=7407473393501077505" target="_self">Lombiq Technologies Newsletter</a> and stay up to date with what's new, insightful, and happening at Lombiq.</p><p>Check out our <a href="https://orcharddojo.us12.list-manage.com/subscribe?u=32f819a768237590e479c9d0a&amp;id=039db8f13f" target="_self">Orchard Dojo newsletter</a> too for news about Orchard!</p>]]></description>
      <pubDate>Tue, 18 Aug 2026 07:29:13 GMT</pubDate>
      <guid isPermaLink="true">https://orcharddojo-net-staging.lombiq.com/blog/sponsorship-spotlight-mike-alhayek</guid>
    </item>
    <item>
      <title>ClamAV Antivirus Scanner, How to Share Draft Content in Orchard Core via a Unique Link? - This week in Orchard (14/08/2026)</title>
      <link>https://orcharddojo-net-staging.lombiq.com/blog/clamav-antivirus-scanner-how-to-share-draft-content-in-orchard-core-via-a-unique-link-this-week-in-orchard-14-08-2026</link>
      <description><![CDATA[<h2>Orchard Core updates</h2><h3>ClamAV Antivirus Scanner</h3><p>This change by <a href="https://github.com/MikeAlhayek" target="_self">Mike Alhayek</a> introduces a new ClamAV antivirus integration for Orchard Core, scanning files with ClamAV before storage. It adds a new <em>OrchardCore.Antivirus</em> module, an Aspire host project, and related configuration and <a href="https://docs.orchardcore.net/en/latest/reference/modules/Antivirus/" target="_self">documentation</a>. The new <em>OrchardCore.AspireHost</em> project orchestrates the ClamAV container via Aspire, including resource definition (<em>ClamAVResource</em>), program setup (<em>Program.cs</em>), and related configuration files, so ClamAV can run alongside Orchard Core in a distributed environment.</p><p>To try it out without the AspireHost project, first <a href="https://www.clamav.net/downloads" target="_self">download ClamAV</a>, an open-source antivirus engine for detecting trojans, viruses, malware, and other malicious threats. Then <a href="https://docs.clamav.net/manual/Installing.html" target="_self">install it</a>. Before you can start the scanning engine (<em>clamd</em> or <em>clamscan</em>), you need the ClamAV Virus Database (.cvd) files in place; <a href="https://docs.clamav.net/manual/Usage/SignatureManagement.html" target="_self">the freshclam tool</a> downloads and updates ClamAV's official virus signature databases. Once that's done, run <em>clamd.exe</em> (on Windows) to start the scanning engine.</p><p>Next, configure the ClamAV connection in the <em>appsettings.json</em> file of the Web project. We also added <em>.txt</em> to the list of allowed media file extensions, so we could test ClamAV with the EICAR test file: a standard file used to test antivirus programs without needing a real computer virus. You can <a href="https://www.eicar.org/download-anti-malware-testfile/" target="_self">download it here</a>.</p><p><img alt="Set up ClamAV" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260814/set-up-clamav.png"></p><p>Once ready, head to <em>Configuration -&gt; Tools</em> to enable the <em>ClamAV Antivirus Scanner</em> feature, which scans files with ClamAV before Orchard Core stores them. Then go to <em>Media -&gt; Library</em> and upload the test file. ClamAV blocks it, because eicar.com.txt contains the standard EICAR anti-malware test string.</p><p><img alt="Test ClamAV" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260814/test-clamav.gif"></p><h3>Add ITimeZoneSelectListProvider for Custom Time Zone Selectors</h3><p>This introduces the <em>ITimeZoneSelectListProvider</em> interface and a default implementation, so you can swap in a human-friendly time zone selector across site settings, setup, and user profile editors without touching the views that use it. You can also find <a href="https://docs.orchardcore.net/en/latest/reference/modules/Users/#time-zone-select-list-customization" target="_self">documentation</a> and tests for the new approach.</p><p>To check it out, first navigate to <em>Tools -&gt; Features</em> and enable the <em>User Time Zone</em> feature, which lets you set the time zone per user. Go to <em>Access Control -&gt; Users</em> and hit <em>Edit</em> near any user; you will see a <em>Default Time Zone</em> select list, which determines the time zone used when displaying and editing dates and times.</p><p>Here we added a new class called <em>MyTimeZoneSelectListProvider</em>, which implements the <em>ITimeZoneSelectListProvider</em> interface. Inside the <em>GetTimeZoneSelectListAsync</em> method, we display the "<em>Time Zone</em>" text in the list before the name of the time zone.</p><p><img alt="Custom ITimeZoneSelectListProvider" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260814/custom-itimezoneselectlistprovider.png"></p><h3>Demos</h3><h4>How to Share Draft Content in Orchard Core via a Unique Link?</h4><p>The <a href="https://github.com/OrchardCoreContrib/OrchardCoreContrib.Modules" target="_self">OrchardCoreContrib.Modules repository</a> is a community-maintained set of modules for Orchard Core. Its <em>Contents Module</em> includes a <em>Share Draft Content</em> feature, which lets you share draft content items via a unique link. That's what we're covering this week.</p><p>First, clone <a href="https://github.com/OrchardCoreContrib/OrchardCoreContrib.Modules" target="_self">the repository</a> and open the <em>OrchardCoreContrib</em> solution. As usual, the first step is to head to <em>Tools -&gt; Features</em> and enable the <em>Share Draft Content</em> feature. We set up our site using the <em>Blog</em> recipe, so we head to <em>Blog</em> and use the <em>Actions</em> dropdown near our predefined blog post to select <em>Unpublish</em>. Editing this content item now shows a new button at the bottom of the editor. Hitting <em>Share Draft</em> creates a link that expires in 30 days.</p><p><img alt="Share Draft Link" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260814/share-draft-link.png"></p><p>Opening the link shows a yellow banner at the top: "<em>You are viewing a draft. This content is not yet published.</em>" If you don't want the link active for the full 30 days, use the <em>Revoke Link</em> button at the bottom of the editor; once revoked, the link no longer shows the draft.</p><p><img alt="Viewing a draft via the link" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260814/viewing-a-draft-via-the-link.png"></p><p>See this feature in action in the <a href="https://www.youtube.com/watch?v=wEINLmezO9o" target="_self">demo on YouTube</a> by <a href="https://github.com/hishamco" target="_self">Hisham Bin Ateya</a>.</p><p class="embed-container"><iframe width="840" height="473" src="https://www.youtube-nocookie.com/embed/wEINLmezO9o" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" spellcheck="false"></iframe></p><h2>News from the community</h2><h3>Sponsorship Spotlight: Hisham Bin Ateya</h3><p><a href="https://github.com/hishamco" target="_self">Hisham Bin Ateya</a> is one of the main developers of Orchard Core and the first winner of the <a href="https://docs.orchardcore.net/en/latest/community/jean-thierry-community-award/" target="_self">Jean-Thierry Kéchichian Community Award</a> in 2024. In the latest Sponsorship Spotlight interview, he shares what he values most about the platform: "Flexibility, Extensibility, and Community."</p><p><a href="https://lombiq.link/jmp/a5f044a1" target="_self">Read the full interview</a> to learn about his journey from the early Orchard vNext days, his other open-source projects like <a href="https://www.nuget.org/packages/My.Extensions.Localization.Json/" target="_self">JSON Localizer</a>, and the <a href="https://github.com/OrchardCoreContrib" target="_self">Orchard Core Contrib GitHub organization</a> he founded.</p><p><img alt="Sponsorship spotlight Hisham Bin Ateya" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260814/sponsorship-spotlight-hisham-bin-ateya.png"></p><h3>Orchard Harvest 2026 Program</h3><p>The Orchard Harvest 2026 conference will be held in Vancouver, and we look forward to seeing you all this autumn in Canada. Our confirmed dates for this year are September 10th and 11th.</p><p>Don't miss this limited-time offer: just $280 for two days of all-access learning and networking. <a href="https://www.tickettailor.com/events/lombiqtechnologiesltd/2247098" target="_self">Secure your early-bird tickets</a> to the conference now!</p><p>The full Orchard Harvest 2026 program is live! Be sure to check out the <a href="https://orchardcore.net/harvest" target="_blank">conference's updated official website</a> for the program!</p><p>As we move forward, we will keep community members informed of the details, and you will find every detail in this newsletter, too!</p><p>Don't miss the biggest Orchard Core event of the year!</p><p><img alt="Orchard Harvest 2026 Program" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260731/orchard-harvest-program.png"></p><h3>Orchard Dojo Newsletter</h3><p>Lombiq's Orchard Dojo Newsletter has 411 subscribers! We have started this newsletter to keep the Orchard community informed about the latest platform news. By subscribing to this newsletter, you will receive an email whenever a new post is published to Orchard Dojo, including <em>'This Week in Orchard'</em>, of course.</p><p>Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to <a href="https://orcharddojo.us12.list-manage.com/subscribe?u=32f819a768237590e479c9d0a&amp;id=039db8f13f">subscribe here</a>!</p><h5>If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of <a target="_self">this Orchard meeting</a>!</h5>]]></description>
      <pubDate>Fri, 14 Aug 2026 09:52:39 GMT</pubDate>
      <guid isPermaLink="true">https://orcharddojo-net-staging.lombiq.com/blog/clamav-antivirus-scanner-how-to-share-draft-content-in-orchard-core-via-a-unique-link-this-week-in-orchard-14-08-2026</guid>
    </item>
    <item>
      <title>Hosting Orchard Core at Exoscale</title>
      <link>https://orcharddojo-net-staging.lombiq.com/blog/hosting-orchard-core-at-exoscale</link>
      <description><![CDATA[<p>It's not all about hyperscalers: You can run your Orchard Core app in the cloud even if not using Azure, AWS, or some other giant like these. Let's see how we can do this with&nbsp;<a href="https://www.exoscale.com/" target="_self" style="color: rgba(13, 110, 253, 1)">Exoscale</a>!</p>
<h2 style="color: rgba(33, 37, 41, 1)">Blog post series overview</h2>
<p>This post is part of our series about hosting Orchard Core at European cloud providers. Orchard Core has built-in support for a lot of Azure services, including&nbsp;<a href="https://docs.orchardcore.net/en/latest/reference/modules/Media.Azure/" target="_self" style="color: rgba(13, 110, 253, 1)">Media storage</a>,&nbsp;<a href="https://docs.orchardcore.net/en/latest/reference/modules/KeyVault.Azure/" target="_self" style="color: rgba(13, 110, 253, 1)">secret storage</a>,&nbsp;<a href="https://docs.orchardcore.net/en/latest/reference/modules/Email.Azure/" target="_self" style="color: rgba(13, 110, 253, 1)">e-mail delivery</a>&nbsp;and&nbsp;<a href="https://docs.orchardcore.net/en/latest/reference/modules/Sms.Azure/" target="_self" style="color: rgba(13, 110, 253, 1)">sending SMS</a>,&nbsp;<a href="https://docs.orchardcore.net/en/latest/reference/modules/AzureAISearch/" target="_self" style="color: rgba(13, 110, 253, 1)">AI search</a>, and even observability with Azure Application Insights with the&nbsp;<a href="https://github.com/Lombiq/Orchard-Azure-Application-Insights" target="_self" style="color: rgba(13, 110, 253, 1)">Lombiq module</a>. AWS also has support for&nbsp;<a href="https://docs.orchardcore.net/en/latest/reference/modules/Media.AmazonS3/" target="_self" style="color: rgba(13, 110, 253, 1)">Media storage</a>. For cloud-hosted full-text search we can use&nbsp;<a href="https://docs.orchardcore.net/en/latest/reference/modules/Elasticsearch/" target="_self" style="color: rgba(13, 110, 253, 1)">Elasticsearch</a>, and&nbsp;<a href="https://docs.orchardcore.net/en/latest/reference/modules/Redis/" target="_self" style="color: rgba(13, 110, 253, 1)">Redis</a>&nbsp;to aid with horizontal scaling. How does using a smaller cloud provider, without specific support from Orchard Core, compare?</p>
<p>We've looked into hosting a vanilla Orchard Core app as a proof of concept, and are sharing our experiences here. The goal was to run Orchard Core with a minimal hosting environment, but with a stateless web server (so, keeping the database and Media storage separate). This could've been simplified to only use a web server (and keep the database in a local SQLite file, as well as use local Media files), but we wanted to go a bit more realistic than that. To be able to play around with the web server from the GUI too, we've chosen Windows as the OS if available. Additionally, we also checked if the platform helps with any of the other common infrastructure requirements, like sending e-mails or observability.</p>
<p>Note that while we usually received some credits from the cloud providers for testing, they are not paying for these reviews, and any endorsement or critique is our own.</p>
<h2 style="color: rgba(33, 37, 41, 1)">What's Exoscale?</h2>
<p>Exoscale&nbsp;is a cloud provider from Switzerland, with hosting locations back at home, as well as in Germany, Austria, Bulgaria, and since July also in Croatia.</p>
<p>As far as services interesting for Orchard Core hosting go, they offer VMs with load balancing, AWS S3-compatible object storage, and databases as a service. Managed&nbsp;Kubernetes is also available, but for the sake of this post, trying to host a simple app, we won't create a cluster. Instead of Redis, you can create Valkey instances (Valkey is an open-source fork of Redis), which, for now, should&nbsp;<a href="https://github.com/OrchardCMS/OrchardCore/discussions/15913" target="_self" style="color: rgba(13, 110, 253, 1)">just work</a>&nbsp;with Orchard Core's Redis support. While OpenSearch is also available,&nbsp;<a href="https://github.com/OrchardCMS/OrchardCore/issues/12145" target="_self" style="color: rgba(13, 110, 253, 1)">that's incompatible</a>&nbsp;with Orchard's Elasticsearch integration. DNS management is also available, though that's something I'd keep at Cloudflare for a real-life app. I'd also use Cloudflare as a CDN, despite Exoscale offering a CDN layer (with Akamai) on top of their object storage; but since in Orchard Core we don't serve Media files from storage directly, that wouldn't help anyway.</p>
<p>If you want to send e-mails, implement observability, or add search and indexing other than with Lucene on the web server, you're on your own.</p>
<h2 style="color: rgba(33, 37, 41, 1)">Creating an Orchard Core hosting environment</h2>
<p>You surely already guessed, but we'll need three Exoscale services:</p>
<ul>
    <li>A <a href="https://www.exoscale.com/compute/" target="_self">Compute Instance</a>, i.e. a VM, for the web server.</li>
    <li>A&nbsp;<a href="https://www.exoscale.com/dbaas/" target="_self">DBaaS database</a>; we'll use PostgreSQL. We could also create <a href="https://www.exoscale.com/marketplace/listing/microsoft-sql-server-payg/" target="_self">SQL Server instances</a>, but not only would the minimum 2-core VM be an overkill for our purposes, it's also much more expensive, starting at about EUR 247/month (vs a Postgres DBaaS starting at EUR 42/month).</li>
    <li><a href="https://www.exoscale.com/object-storage/" target="_self">Object Storage</a>&nbsp;for Media.</li>
</ul>
<p>Let's start with the server! I went with the Swiss zone, since there's no place like home, and opted with a 2-CPU plan with 2 GB of RAM. For this site, 1 CPU would also be more than enough (while to cater for Windows, I'm more comfortable with 2 GB of RAM instead of 1), but there's no 1-CPU 2 GB RAM instance type.</p>
<p style="text-align: center"><img alt="Creating an Exoscale Compute Instance" src="/media/BlogPost/other-posts/2025/hosting-orchard-core-at-exoscale/creating-a-compute-instance.webp"><br></p>
<p>You may notice two things here:</p>
<ul>
    <li>On the right, there's a warning about having to create Security Groups for ingress rules first. (Somewhat confusingly the ADD button below it actually creates the compute instance, not a Security Group.) To be able to actually connect to the VM, we also need to edit the default Security Group (or perhaps more diligently, create a new one), then open up the ingress port 80 with TCP (for HTTP), as well as add a rule for RDP. As a last step, you'll also need to add <code>0.0.0.0/0</code> (i.e. all IPs) under External Sources, allowing anyone to connect to our web server.</li>
    <li>Those ENABLE buttons for instances Mega and up mean that you need to ask Exoscale support to allow them "after a manual screening process". This I find a bit strange.</li>
</ul>
<p>Until the server started, so in the meantime, I created an Object Storage bucket in the same zone (to minimize latency, these resources should all be in the same zone):</p>
<p style="text-align: center"><img alt="Creating an Object Storage bucket" src="/media/BlogPost/other-posts/2025/hosting-orchard-core-at-exoscale/adding-bucket.webp?2"></p>
<p>It seems that unlike with other cloud providers where you create a storage account, then a bucket under it, here everyone shares the same storage account. Thus, bucket names should be globally unique. This doesn't seem appealing at a first glance, but apart from the naming issue, I didn't find any practical problem with it.</p>
<p>Somewhat counterintuitively, the storage access and secret keys are API keys. You can create these <a href="https://community.exoscale.com/community/iam/quick-start/#creating-roles-and-generating-api-keys" target="_self">following the docs</a>; for the sake of simplicity, I created a key for the Owner role, but for a production app, you should follow the docs' recommendations and create a restricted role just to access this bucket.</p>
<p>Finally, we also need a single-node Postgres database server:</p>
<p style="text-align: center"><img alt="Creating a managed database" src="/media/BlogPost/other-posts/2025/hosting-orchard-core-at-exoscale/adding-postgresql-dbaas.webp"></p>
<p>Note that this runs on its own VM. The IP filter is necessary for the web server to access the DB server; the provided CIDR matches the exact IP of it.</p>
<p>This is everything we need, so now we can continue with setting up Orchard Core in this environment.</p>
<h2 style="color: rgba(33, 37, 41, 1)">Deploying Orchard Core to the web server</h2>
<p>You can deploy an ASP.NET Core app, including an Orchard Core-using one, with Web Deploy to IIS, using automated deployment from a GitHub Actions workflow, or just by copying its publish outputs to the server. Here, I opted with the simplest option: I published the web app to a folder from Visual Studio (but running&nbsp;<code style="font-family: SFMono-Regular, Menlo, Monaco, Consolas, &quot;Liberation Mono&quot;, &quot;Courier New&quot;, monospace; color: rgba(214, 51, 132, 1)">dotnet publish</code>&nbsp;from the CLI would be equally suitable), and copied the resulting files to the server via Remote Desktop. Then I could simply run the web app:</p>
<p style="text-align: center"><img alt="The Orchard Core app running under Windows Server" src="/media/BlogPost/other-posts/2025/hosting-orchard-core-at-exoscale/app-running.webp"></p>
<p>The app listens to port 80 because I added an&nbsp;<em>appsettings.Production.json</em>&nbsp;file configuring it:</p>
<pre class="language-js" style="font-family: SFMono-Regular, Menlo, Monaco, Consolas, &quot;Liberation Mono&quot;, &quot;Courier New&quot;, monospace"><code class="language-js" style="font-family: SFMono-Regular, Menlo, Monaco, Consolas, &quot;Liberation Mono&quot;, &quot;Courier New&quot;, monospace">{
  "Kestrel": {
    "Endpoints": {
      "HttpEndpoint": {
        "Url": "http://*:80"
      }
    }
  }
}</code></pre>
<p>This allows you to simply open the IP of the server in a browser, or point a DNS A record to it. Our site is now available on the internet! ...after we allowed the exe of our web app through the Windows Firewall, that is.</p>
<p>You may notice that this is a really barebones approach: There's no IIS, no HTTPS, no proper deployment. And you're right! This is a focused example of getting Orchard Core running, but we'll return to the missing pieces later.</p>
<h2 style="color: rgba(33, 37, 41, 1)">Setting up Orchard Core</h2>
<p>Running the Orchard Core setup is standard: Just fill out the usual settings on the setup screen, and point the app to the Postgres DB. For the latter, you can copy the Postgres connection string from the Exoscale Console, take the password of the default user from the DB's Users menu, and ask your favorite AI tool to turn them into an&nbsp;Npgsql connection string that .NET uses.</p>
<p>Once setup finishes, you can configure Media storage too. I've elaborated above how to set up a bucket; the service URL for it will be in the format <code>https://sos-{zone}.exo.io</code>, with our Switzerland zone being <code>ch-dk-2</code>.</p>
<p>Now it's time to configure the connection for the app. Again, you can use the&nbsp;<em>appsettings.Production.json</em>&nbsp;file to add something like below, resulting in the following full file:</p>
<pre class="language-js" style="font-family: SFMono-Regular, Menlo, Monaco, Consolas, &quot;Liberation Mono&quot;, &quot;Courier New&quot;, monospace"><code class="language-js" style="font-family: SFMono-Regular, Menlo, Monaco, Consolas, &quot;Liberation Mono&quot;, &quot;Courier New&quot;, monospace">{
  "Kestrel": {
    "Endpoints": {
      "HttpEndpoint": {
        "Url": "http://*:80"
      }
    }
  },
  "OrchardCore": {
    "OrchardCore_Media_AmazonS3": {
      "ServiceURL": "https://sos-ch-dk-2.exo.io",
      "Credentials": {
        "SecretKey": "add the secret of the user you created",
        "AccessKey": "add the access key of the user you created"
      },
      "CreateBucket": true,
      "RemoveBucket": true,
      "BucketName": "oc-media"
    }
  }
}</code></pre>
<p>Be sure to change the&nbsp;<code style="font-family: SFMono-Regular, Menlo, Monaco, Consolas, &quot;Liberation Mono&quot;, &quot;Courier New&quot;, monospace; color: rgba(214, 51, 132, 1)">ServiceURL</code>&nbsp;value to that of your instance, as indicated on its Overview page (under "S3 endpoint"). That's actually an undocumented configuration key that comes very handy when, as we do here, you connect to an S3 account outside of AWS.</p>
<p>Now restart the app (so it reads the updated configuration file) and enable the&nbsp;Amazon Media Storage feature from the Orchard Core admin. It'll work, despite it not running in Amazon. Magic!</p>
<p>And with this, our app fully works!</p>
<h2>Why would you (not) use Exoscale?</h2>
<p>OK, so we've seen that running Orchard Core under Exoscale works. This is not a huge surprise, but it's nice to get it verified and have the basics figured out. Why would we do this, though, instead of choosing the beaten path with Azure or AWS, for example?</p>
<h3>European</h3>
<p>Exoscale is not just hosting in Europe, but the company itself is also based in a European country. If that matters for you, either for sentimental reasons or as a matter of company policy (like using a provider that's not under the&nbsp;<a href="https://en.wikipedia.org/wiki/CLOUD_Act" target="_self" style="color: rgba(13, 110, 253, 1)">US CLOUD Act</a>), it can be a big plus. Note though, that while Switzerland is highly aligned with the EU legally, it's not an EU member state, nor part of the European Economic Area.</p>
<h3>Costs</h3>
<p>Exoscale can be a lot cheaper. At €17/month, the Exoscale server provides roughly the same as an A1_v2 Azure VM, which costs €45/month.</p>
<p>However, the smallest managed Postgres instance at €42/month is way above what we'd use on Azure for an entry-level app, where an S0 Azure SQL DB would be around €13/month.</p>
<p>So, in the end, Exoscale costs around EUR 60/month, while the roughly equivalent service in Azure would be basically the same.&nbsp;We do get more with Exoscale (a dedicated VM for the DB, and I think the web server is faster too), a lot more room to grow, but the cost advantage, in itself, disappears, at least in the beginning.&nbsp;</p>
<p>For an entry-level app the storage is cents in both cases, but if you increase your usage, Exoscale's storage costs can be dramatically lower (EUR 0,00002750/GB vs Azure's Standard Hot tier at EUR 0,0185/GB). Network costs at Exoscale (EUR&nbsp;0,02/GB for egress) and per-operation costs at Azure (there's no simple number for this) complicate things, though, so be sure to calculate what's applicable for your app.</p>
<p>All this being said, at Azure, we'd rather use App Services: This is a higher-level "websites as a service", offering a bunch of convenience features like automated deployment, staged publishing, and configuration management. The smallest proper App Services-based infrastructure (with a staging slot and separate staging and production DBs) comes at around €90/month, though, but that also contains a lot of features lacking from VMs.</p>
<h3>Simplicity</h3>
<p>Without consulting any resource, just by playing with the Console, I could fully understand the Exoscale offering (I think...) within like half an hour. Getting the full Orchard Core environment running wouldn't have been much more, have I not written this post at the same time (plus getting stuck on the mentioned storage configuration).</p>
<h3>The cons</h3>
<p>Coming from frequently using the cushy but extremely complex ecosystem of Azure, using a more basic provider like Exoscale&nbsp;is certainly an interesting change. It seems to me that ultimately, there's a lot of work to do if you want to have a full-blown, highly automated hosting environment for Orchard Core, with an option for horizontal scaling. Below are the features that I'd consider necessary, and while these are given with Azure, you need to roll your own solutions with Exoscale:</p>
<ul>
    <li>Staged publishing (blue-green deployment): You'd need to set up multiple VMs or multiple sites, and manage swapping staging with production somehow on your own.</li>
    <li>Automated deployments: I think under a Windows server, the easiest would be to set up Web Deploy and use it from an automation platform like GitHub Actions.</li>
    <li>Observability: You'd either need to host an&nbsp;observability platform yourself, or use an external service.</li>
    <li>The lack of a search/indexing service is less of an issue, because you can just use the Elastic Cloud (what's the option in Azure and AWS too), and I'd consider the lack of an e-mail service not a huge issue either (you can just use something like SendGrid). Managed Valkey is good, but starting at&nbsp;€43/month, it's not priced for an easy entry (just as Postgres), although it also provides a lot more resources than the lowest tiers of&nbsp;Azure Cache for Redis do (for a lower price).</li>
    </ul><p>Yes, you could build an all-in-one infrastructure with Kubernetes, and have containers with services for all the above features (and a DB and storage as well), but that's a large complexity you need to manage. Using Terraform, supported by Exoscale, to ramp up your infrastructure can cut down on manual repetition (and aid portability to other providers to an extent), but is also work that you have to invest. And at the entry level, managed solutions for services like SQL and Redis (instead of hosting your own VMs/containers) can be more cost-efficient too (but that flips if your app's demand increases).</p><p>There are also three notable things I very much didn't like about Exoscale's pricing:&nbsp;</p>
<ul>
            <li>All prices on the&nbsp;<a href="https://www.exoscale.com/pricing/" target="_self" style="color: rgba(13, 110, 253, 1)">pricing page</a>&nbsp;are shown for usage hours only. That's necessary, but a metric frequently a lot more useful is the monthly cost. While I can always multiply by 730 to get an approximation of a month, it would be much clearer to have it indicated in the pricing table already. Also, I'd welcome seeing these hourly and monthly costs indicated in the Exoscale Console, when creating resources, too. The <a href="https://www.exoscale.com/calculator/" target="_self">Pricing Calculator</a> helps, and it does show monthly costs too, but it's better to show this information everywhere.</li>
            <li>The prices in EUR, CHF, and USD are exactly the same. Given that 1 CHF is 1,07 EUR, and 1 EUR is 1,16 USD as of writing this, there's a significant difference in your costs depending on what you pay with (you pay almost 25% more in CHF than USD). According to the website, "Your account can be setup in either CHF, EUR or USD, depending on your initial legal residence." This seems like an arbitrary disadvantage for Swiss users, and an advantage to non-EU ones. The latter is a surprising policy for a company primarily targeting EU customers. I'd welcome the price differences to disappear.</li><li>You can only pay in advance, at least as a new customer. This requires you to either be ready to top up your balance any time you get a low credit notification, or you need to park an excessive amount at Exoscale. In either case, it's also a manual process. It would be better if they would just charge my card after each month's usage.</li>
</ul>
<h2 style="color: rgba(33, 37, 41, 1)">So, what should I do?</h2><p>Based on the feature set, Exoscale can be a good choice to host your Orchard Core app if you don't need anything beyond what's easily possible with the existing offering, or if you already invested into a portable Kubernetes-based infrastructure. However, I think the particularities of Exoscale's pricing are not for everyone.</p>
<p>And if you need help hosting Orchard Core at Exoscale, Azure, or onboard of a satellite (not kidding),&nbsp;<a href="https://orcharddojo.net/contact-us" target="_self" style="color: rgba(13, 110, 253, 1)">drop us a line</a>!</p>]]></description>
      <pubDate>Mon, 10 Aug 2026 04:00:31 GMT</pubDate>
      <guid isPermaLink="true">https://orcharddojo-net-staging.lombiq.com/blog/hosting-orchard-core-at-exoscale</guid>
    </item>
    <item>
      <title>Catch Slow SQL Before Production, How to use Orchard Core Agent Skills? - This week in Orchard (07/08/2026)</title>
      <link>https://orcharddojo-net-staging.lombiq.com/blog/catch-slow-sql-before-production-how-to-use-orchard-core-agent-skills-this-week-in-orchard-07-08-2026</link>
      <description><![CDATA[<h2>Orchard Core updates</h2><h3>New Allow Remember Me Login Setting</h3><p>This feature by <a href="https://github.com/MikeAlhayek" target="_self">Mike Alhayek</a> adds a new <em>AllowRememberMe</em> setting in <em>LoginSettings</em>, so administrators can control whether the <em>Remember Me</em> option is available on the login form at all. When it's off, the checkbox is neither shown nor respected, so the option is a real security policy control, not just a UI toggle.</p><p>To try it out, head to <em>Settings -&gt; Security -&gt; User Login</em>, where you will find the new <em>Allow user to be remembered during login</em> checkbox, defaulting to <em>true</em>. Turn it off, and the <em>Remember me</em> checkbox disappears from the login screen entirely.</p><p><img alt="New Allow Remember Me login setting" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260807/new-allow-remember-me-login-setting.png"></p><h3>How to use Orchard Core Agent Skills?</h3><p>Orchard Core has had several agent skills for a while, but no documentation on how to use or contribute to them, until now. Thanks to <a href="https://github.com/agriffard" target="_self">Antoine Griffard</a>, there is a <a href="https://docs.orchardcore.net/en/latest/contributing/using-skills/" target="_self">new documentation page</a> that covers where the skills live, which ones are available, and how to use them. For teams onboarding new developers (or new AI agents) onto Orchard Core, that's one less thing to figure out by trial and error.</p><p><img alt="Using Orchard Core Agent Skills docs" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260807/using-orchard-core-agent-skills-docs.png"></p><p>Antoine also added <a href="https://github.com/OrchardCMS/OrchardCore/blob/main/.agents/skills/orchardcore-recipe-creator/SKILL.md" target="_self">a new skill</a>, <em>Orchard Core Setup Recipe Creator</em>, which creates Orchard Core setup recipes (.recipe.json) that provision a tenant on setup: enabling features, setting themes, defining content types, importing content, roles, and settings. Use it when you need a setup recipe, a starter recipe, or automated tenant configuration.</p><p><a href="https://github.com/sebastienros" target="_self">Sébastien Ros</a> improved the <em>orchardcore-tester</em> skill, so an agent can reliably stand up an Orchard Core site for browser-based functional testing. <a href="https://github.com/OrchardCMS/OrchardCore/blob/main/.agents/skills/orchardcore-tester/SKILL.md" target="_self">Find the updated skill</a>, which tests Orchard Core features through browser automation: admin features, content management, media library, and module testing.</p><h3>Demos</h3><h4>Catch Slow SQL Before Production - Lombiq's Query Monitoring Explained</h4><p>This week, you can see a new feature in the <a href="https://github.com/Lombiq/UI-Testing-Toolbox" target="_self">Lombiq UI Testing Toolbox for Orchard Core</a>: automated SQL query monitoring for UI tests. It flags three common performance problems as tests run:</p><ul><li>duplicate SQL queries (the classic SELECT N+1 signal)</li><li>duplicate queries with identical parameters (usually a missing cache)</li><li>and oversized result sets (usually a missing filter or paging).</li></ul><p>It's disabled by default since it adds overhead, so you enable it for the tests where it matters, either as manual assertions after specific page changes or automatically on every page load, with configurable thresholds and execution filters. When a check fails, you get the URL, failure category, threshold, and full SQL call stack, so you can tell right away whether it's a real regression or just needs tuning.</p><p>The easiest way to try it out is to clone <a href="https://github.com/Lombiq/Open-Source-Orchard-Core-Extensions" target="_self">Lombiq's Open-Source Orchard Core Extensions solution</a>. This Orchard Core Visual Studio solution contains most of Lombiq's open-source Orchard modules and themes, as well as related utilities and libraries, including our <a href="https://github.com/Lombiq/UI-Testing-Toolbox" target="_self">UI Testing Toolbox for Orchard Core</a> with several samples and documentation.</p><p>You will find a class called <em>SqlQueryMonitoringTests</em> in the <em>Lombiq.Tests.UI.Samples</em> project that contains several well-documented tests. We will run the first one, called <em>SqlQueryMonitoringExplicitAssertions</em>. But before doing that, we added a <em>for loop</em> to our code that will query all of our published content items a hundred times, so we have something for the monitor to catch.</p><p><img alt="Triggering an error" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260807/triggering-an-error.png"></p><p>If we run our test and check the Test Detail Summary, we will see two failure categories:</p><ul><li>DuplicateCommandText</li><li>DuplicateCommandWithParameters</li></ul><p>Below the categories, you can see guides, threshold configuration values, and call stacks to help you identify and fix the errors raised by our feature.</p><p><img alt="Executing the test" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260807/executing-the-test.png"></p><p>For teams maintaining a codebase long-term, this is the kind of check that catches performance regressions in code review instead of in production, backed by the same open-source toolkit (Selenium, Atata, xUnit, cross-browser, CI-ready) Lombiq uses on its own client projects. Watch the <a href="https://www.youtube.com/watch?v=YBdzXsREkxI" target="_self">demo on YouTube for more</a>, or check <a href="https://github.com/Lombiq/UI-Testing-Toolbox/blob/dev/Lombiq.Tests.UI/Docs/SqlQueryMonitoring.md" target="_self">the docs for setup details</a>.</p><p class="embed-container"><iframe width="840" height="473" src="https://www.youtube-nocookie.com/embed/YBdzXsREkxI" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" spellcheck="false"></iframe></p><h2>News from the community</h2><h3>Orchard Harvest 2026 Program</h3><p>The Orchard Harvest 2026 conference will be held in Vancouver, and we look forward to seeing you all this autumn in Canada. Our confirmed dates for this year are September 10th and 11th.</p><p>Don't miss this limited-time offer: just $280 for two days of all-access learning and networking. <a href="https://www.tickettailor.com/events/lombiqtechnologiesltd/2247098" target="_self">Secure your early-bird tickets</a> to the conference now!</p><p>The full Orchard Harvest 2026 program is live! Be sure to check out the <a href="https://orchardcore.net/harvest" target="_blank">conference's updated official website</a> for the program!</p><p>As we move forward, we will keep community members informed of the details, and you will find every detail in this newsletter, too!</p><p>Don't miss the biggest Orchard Core event of the year!</p><p><img alt="Orchard Harvest 2026 Program" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260731/orchard-harvest-program.png"></p><h3>Orchard Dojo Newsletter</h3><p>Lombiq's Orchard Dojo Newsletter has 411 subscribers! We have started this newsletter to keep the Orchard community informed about the latest platform news. By subscribing to this newsletter, you will receive an email whenever a new post is published to Orchard Dojo, including <em>'This Week in Orchard'</em>, of course.</p><p>Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to <a href="https://orcharddojo.us12.list-manage.com/subscribe?u=32f819a768237590e479c9d0a&amp;id=039db8f13f">subscribe here</a>!</p><h5>If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of <a href="https://www.youtube.com/watch?v=BXOebnvxWO8" target="_self">this Orchard meeting</a>!</h5>]]></description>
      <pubDate>Fri, 07 Aug 2026 11:05:01 GMT</pubDate>
      <guid isPermaLink="true">https://orcharddojo-net-staging.lombiq.com/blog/catch-slow-sql-before-production-how-to-use-orchard-core-agent-skills-this-week-in-orchard-07-08-2026</guid>
    </item>
    <item>
      <title>Orchard Core Just Got a New Home, Content Version Pruning Feature - This week in Orchard (31/07/2026)</title>
      <link>https://orcharddojo-net-staging.lombiq.com/blog/orchard-core-just-got-a-new-home-content-version-pruning-feature-this-week-in-orchard-31-07-2026</link>
      <description><![CDATA[<h2>Orchard Core updates</h2><h3>Content Version Pruning Feature</h3><p>The new <em>Content Version Pruning</em> feature provides a background task that periodically deletes old archived content item versions; versions that are neither the latest nor the published one. On sites that are edited often, every save or publish leaves the previous version behind in the database. Over time, these accumulate, growing the storage footprint and slowing version-history queries. Pruning keeps that history bounded. The latest draft and the published version of an item are never deleted; only superseded (archived) versions are eligible.</p><p>To try it out, head to <em>Tools -&gt; Features</em> and enable the <em>Content Version Pruning</em> feature. After that, you will find a new settings page under <em>Settings -&gt; Content Version Pruning</em>, where you can configure its behavior. As you can see, you can configure the retention days for content item versions, automatically pruning old, non-latest, and non-published versions while keeping at least one version per item, with options to specify which content types to prune.</p><p>Here we said to prune the non-latest, non-published versions of the <em>Blog Post</em> content items that are older than 30 days, while keeping one version of the most recent archived versions, regardless of age.</p><p><img alt="Content Version Pruning Feature" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260731/content-version-pruning-feature.png"></p><p>Deletions are flushed in batches to keep the unit of work bounded, and a failure to delete one version is logged and skipped without aborting the run.</p><p>Note that pruned versions are permanently removed from the database and cannot be restored. Choose a retention period and version-keep count that match your audit and rollback needs before enabling the task.</p><p>Thanks, <a href="https://github.com/PUXVSE" target="_blank">PUXVSE,</a> for your first contribution, and <a href="https://github.com/agriffard" target="_blank">Antoine Griffard</a> for the documentation!</p><h3>New "Add &amp; Configure" and "Save &amp; Configure" buttons in the content editor UI</h3><p>This change by <a href="https://github.com/MikeAlhayek" target="_self">Mike Alhayek</a> lets you add a content part or a content field and configure it in one step, instead of adding it first and then hunting for it again to set it up. It introduces new <em>Add &amp; Configure</em> and <em>Save &amp; Configure</em> buttons to the content editor, with more dynamic controls and clearer feedback, and updated backend logic to support the new flows. The <em>Add Selected Parts</em> button in <em>AddPartsTo.cshtml</em> is now only visible when at least one part is selected, with dynamic show/hide logic via JavaScript.</p><p>Here we have a site set up with the <em>Blog</em> recipe, and we want to add a new <em>Text Field</em> called <em>Quote</em> to the predefined <em>Blog Post</em> content type. To do that, we need to navigate to <em>Design -&gt; Content Definition -&gt; Content Types</em> and hit <em>Edit</em> near the <em>Blog Post</em> content type. Then hit the <em>Add Field</em> button, select the <em>Text Field</em>, and click the <em>Save &amp; Configure</em> button to immediately configure the newly added field.</p><p><img alt="New Save and Configure button" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260731/new-save-and-configure-button.gif"></p><h3>Demos</h3><h4>Orchard Core Just Got a New Home</h4><p>Over the past two weeks, you could see demos of <a href="https://lombiq.link/jmp/ace361f5" target="_self">how the community shaped the Orchard Core website</a>, including the <a href="https://lombiq.link/jmp/9c5fd031" target="_self">page that promotes Orchard Harvest</a>.</p><p>The <a href="https://orchardcore.net/" target="_self">new Orchard Core website</a> is live! <a href="https://github.com/buzznick" target="_self">Nick Jackson</a> demoed the final version, walking through the technical build and the content updates.</p><p>The site is built on vanilla Orchard Core (upgraded to Orchard Core 3), with only the Tailwind module added for styling; external modules were intentionally left out to keep the implementation clean. Highlights include automated daily NuGet download stats via workflows, clickable speaker bios, historical Orchard Harvest event pages, and a "stay up to date" section. The site also hits double-A accessibility standards with strong Google Lighthouse scores on both mobile and desktop.</p><p>Thanks again to <a href="https://github.com/buzznick" target="_self">Nick Jackson</a> for the build, and to the whole team for the feedback that shaped it!</p><p><img alt="New Orchard Core Website" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260731/new-orchard-core-website.png"></p><p><a href="https://www.youtube.com/watch?v=klhd_x2BUYU" target="_self">Check out the recording</a> and let us know what you think!</p><p class="embed-container"><iframe width="840" height="473" src="https://www.youtube-nocookie.com/embed/klhd_x2BUYU" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" spellcheck="false"></iframe></p><h2>News from the community</h2><h3>Sign in with Microsoft: SSO for Orchard Core</h3><p>Tired of making users juggle yet another username and password? <a href="https://lombiq.link/jmp/769327d0" target="_self">Our article shows</a> how to plug Microsoft sign-in (personal accounts or Entra ID/Microsoft 365) straight into your ASP.NET Core or Orchard Core app, so people log in with credentials they already trust, while Orchard Core keeps full control over roles and permissions behind the scenes.</p><p>You can test-drive the whole flow on <a href="https://lombiq.link/jmp/4a8beec1" target="_self">DotNest</a> without writing a line of custom code. Check out <a href="https://docs.orchardcore.net/en/latest/reference/modules/Microsoft.Authentication/" target="_self">the official documentation</a>, or <a href="https://lombiq.link/jmp/31fa103" target="_self">contact us</a> if you want help wiring Microsoft SSO into your app or portal.</p><p><img alt="Integrate Microsoft Log in DotNest" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260731/integrate-microsoft-login-dotnest.png"></p><h3>Orchard Harvest 2026 Program</h3><p>The Orchard Harvest 2026 conference will be held in Vancouver, and we look forward to seeing you all this autumn in Canada. Our confirmed dates for this year are September 10th and 11th.</p><p>Don't miss this limited-time offer: just $280 for two days of all-access learning and networking. <a href="https://www.tickettailor.com/events/lombiqtechnologiesltd/2247098" target="_self">Secure your early-bird tickets</a> to the conference now!</p><p>The full Orchard Harvest 2026 program is live! Be sure to check out the <a href="https://orchardcore.net/harvest" target="_blank">conference's updated official website</a> for the program!</p><p>As we move forward, we will keep community members informed of the details, and you will find every detail in this newsletter, too!</p><p>Don't miss the biggest Orchard Core event of the year!</p><p><img alt="Orchard Harvest 2026 Program" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260731/orchard-harvest-program.png"></p><h3>Orchard Dojo Newsletter</h3><p>Lombiq's Orchard Dojo Newsletter has 413 subscribers! We have started this newsletter to keep the Orchard community informed about the latest platform news. By subscribing to this newsletter, you will receive an email whenever a new post is published to Orchard Dojo, including <em>'This Week in Orchard'</em>, of course.</p><p>Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to <a href="https://orcharddojo.us12.list-manage.com/subscribe?u=32f819a768237590e479c9d0a&amp;id=039db8f13f">subscribe here</a>!</p><h5>If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of <a href="https://www.youtube.com/watch?v=G_ksUNlZGZw" target="_self">this Orchard meeting</a>!</h5>]]></description>
      <pubDate>Fri, 31 Jul 2026 09:48:15 GMT</pubDate>
      <guid isPermaLink="true">https://orcharddojo-net-staging.lombiq.com/blog/orchard-core-just-got-a-new-home-content-version-pruning-feature-this-week-in-orchard-31-07-2026</guid>
    </item>
    <item>
      <title>Sponsorship Spotlight: Hisham Bin Ateya</title>
      <link>https://orcharddojo-net-staging.lombiq.com/blog/sponsorship-spotlight-hisham-bin-ateya</link>
      <description><![CDATA[<p><strong>Gábor</strong>: When did you first come across Orchard?</p><p><strong>Hisham</strong>: My journey with Orchard started before Orchard Core, when Orchard CMS was hosted on <a href="https://en.wikipedia.org/wiki/CodePlex" target="_self">CodePlex</a> and simply called Orchard. To be honest, I didn't use Orchard 1 for production, just exploring what was there. I have been following Orchard Core since the beginning, when it was called Orchard vNext. It was a prototype, if I recall, and I started my first contribution on May 25, 2017.</p><p><strong>Gábor</strong>: Right, the very first commits to the Orchard Core repo were made by <a href="https://github.com/Jetski5822" target="_self">Nicholas Mayne</a> in November of 2014.  That was more than 10 years ago! And why do you like contributing to Orchard?</p><p><strong>Hisham</strong>: For me, Orchard Core is not the first project I contributed to. Open-source software is close to my heart. I had already contributed to many projects before Orchard Core. After dedicating a lot of time to Orchard Core, I found it helped me understand many aspects of the ecosystem.</p><p>This has helped me use Orchard Core in my daily development and in production websites, as well as help the community as much as I can.</p><p><strong>Gábor</strong>: What do you like most about Orchard?</p><p><strong>Hisham</strong>: Flexibility, Extensibility, and Community.</p><p><strong>Gábor</strong>: Have you tried other CMSs too?</p><p><strong>Hisham</strong>: Sure, I tried many CMSs and frameworks, including DotNetNuke (DNN), Umbraco, Oqtane Framework, and Kentico CMS in the ASP.NET Core space. I also tried many PHP CMSs, including Drupal and Joomla.</p><p>For me, Orchard Core is one of the top 3 I have ever seen, but it has a steep learning curve; there are specialized terms, such as drivers and shapes.</p><p><strong>Gábor</strong>: And what do you think is the difference between Orchard and the other CMSs?</p><p><strong>Hisham</strong>: Orchard Core is not just a CMS; it's a web application framework with a CMS built on top of it, which is unique compared to other OSS projects.</p><p>It contains many modules, more than enough to start building your websites and web applications without worrying about the framework and cross-cutting concerns such as multitenancy, modularity, localization, logging, and much more.</p><p>I'd like to mention that Orchard Core is very flexible and extensible, and you can do many things even if you don't own the source code. It is the only product I have ever seen that provides such flexibility, in my opinion, but it also introduces some complexity.</p><p><strong>Gábor</strong>: You mentioned that you are contributing to other open-source projects too. What are these projects? Are you contributing to the ones you mentioned?</p><p><strong>Hisham</strong>:  Yes, of course. I also contributed to many open-source software projects before Orchard Core, including the <a href="https://github.com/oqtane/oqtane.framework" target="_self">Oqtane Framework</a>. I contributed to <a href="https://github.com/simplcommerce/simplcommerce" target="_self">SimplCommerce</a>, as well as to ASP.NET Core in its early days, when it was called DNX (Dot Net eXecution environment).</p><p>I'm running and maintaining a few libraries, such as <a href="https://www.nuget.org/packages/My.Extensions.Localization.Json/" target="_self">JSON Localizer</a>, which has over 700K downloads on NuGet.</p><p>I'm also helping with many projects, especially in localization. For more details, you can check out <a href="https://github.com/hishamco" target="_self">my GitHub profile</a>.</p><p><strong>Gábor</strong>: Congratulations on reaching more than 700K downloads! And you also have a repository on GitHub called <a href="https://github.com/OrchardCoreContrib/OrchardCoreContrib.Modules" target="_self">Orchard Core Contrib Modules</a>. Could you tell us more about it?</p><p><strong>Hisham</strong>: Yes, I started a GitHub organization named "Orchard Core Contrib (OCC)", which is from the community to the community. It contains several repositories, including APIs, modules, and themes, that are not included by default in the official Orchard Core release. There were features that started there and were later moved to Orchard Core, which is impressive.</p><p>However, I faced many challenges maintaining these 59 packages, and the number is increasing over time, which requires significant time and support to keep these projects running.</p><p>But I will not forget the very useful feedback and contributions I received from the community. On that note, I invite any Orchard developer to contribute to this great project, which is community-to-community, as I mentioned before.</p><p><strong>Gábor</strong>: I'm glad to hear that you receive useful feedback from the community. It's always a good feeling when others use and care about a project.</p><p><strong>Hisham</strong>: I agree. The community is one of the most important things that made this project a success story. Many OSS projects have lost traction when there was no community around them.</p><p>Finally, I can't find the words to express my gratitude to Lombiq for their financial support for my contributions.</p><p><strong>Gábor</strong>: It's our pleasure to support the developers who power open source. One last question: are you planning to join <a href="https://orchardcore.net/harvest" target="_self">this year's Harvest</a>?</p><p><strong>Hisham</strong>: Unfortunately, no, due to the difficulties in reaching Canada and the US.</p><p><strong>Gábor</strong>: I'm sad that you can't make it. Thank you for the interview, and I hope to see you at Harvest next year!</p><p><br></p><p>Stay tuned for the upcoming parts of the Sponsorship Spotlight series! And if you missed the previous part, you can <a href="https://lombiq.link/jmp/72eac9cb" target="_self">check it out here</a>, where we talked with <a href="https://github.com/agriffard" target="_self">Antoine Griffard</a>, one of the main developers of Orchard Core. If you don't want to miss our upcoming Sponsorship Spotlight series, sign up for the <a href="https://www.linkedin.com/build-relation/newsletter-follow?entityUrn=7407473393501077505" target="_self">Lombiq Technologies Newsletter</a> and stay up to date with what's new, insightful, and happening at Lombiq.</p><p>Check out our <a href="https://orcharddojo.us12.list-manage.com/subscribe?u=32f819a768237590e479c9d0a&amp;id=039db8f13f" target="_self">Orchard Dojo newsletter</a> too for news about Orchard!</p>]]></description>
      <pubDate>Tue, 28 Jul 2026 09:47:41 GMT</pubDate>
      <guid isPermaLink="true">https://orcharddojo-net-staging.lombiq.com/blog/sponsorship-spotlight-hisham-bin-ateya</guid>
    </item>
    <item>
      <title>Orchard Harvest's new website; Ready to simplify your Orchard Core hosting? - This week in Orchard (24/07/2026)</title>
      <link>https://orcharddojo-net-staging.lombiq.com/blog/orchard-harvest-s-new-website-ready-to-simplify-your-orchard-core-hosting-this-week-in-orchard-24-07-2026</link>
      <description><![CDATA[<h2>Orchard Core updates</h2><h3>Improve Features Management UI</h3><p><a href="https://github.com/MikeAlhayek" target="_self">Mike Alhayek</a> reworked the <em>Features</em> page in the admin UI:</p><ul><li>Removed the jQuery dependency in favor of vanilla JavaScript.</li><li>Search now matches on both feature description and feature ID.</li><li>New filters hide On Demand and Always Enabled features by default, with an option to show them.</li><li>You can now select all features within a category at once.</li><li>Dependency badges switched to the lighter badge style, matching the pattern used elsewhere in the UI, including the Content Management screens.</li></ul><p>The GIF below shows the <em>Visibility</em> filter hiding features by default, then selecting every feature under one category in a single click.</p><p><img alt="Improve Features management UI" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260724/improve-features-management-ui.gif"></p><h3>Shape Debugging Site Settings</h3><p><a href="https://github.com/MikeAlhayek" target="_self">Mike Alhayek</a> introduced a new site-level "Debugging" settings group that lets site owners turn shape debugging (HTML comments around rendered shapes) on or off directly from the admin UI, instead of requiring code changes.</p><p>To enable it, go to <em>Settings -&gt; Debugging</em> and tick <em>Write shape debug information</em>. When enabled, Orchard Core writes HTML comments around rendered shapes so you can inspect which shape binding or template produced a fragment on a running site.</p><p>In our example, we have a site set up with the <em>Blog</em> recipe and checked the source code of the homepage. As you can see, the rendered shapes are wrapped with comments on any page you inspect. The opening comment contains the shape type and the binding used. Razor bindings report the <em>.cshtml</em> path, while Liquid bindings report a virtual <em>.liquid</em> source.</p><p><img alt="Shape Debugging Site Settings" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260724/shape-debugging-site-setting.png"></p><h3>Demos</h3><h4>Inside Orchard Harvest's New Website</h4><p><a href="https://github.com/buzznick" target="_self">Nick Jackson</a> presented the redesign concepts for the Orchard Harvest website: layout changes, improved navigation, dynamic content blocks, and enhancements to the <a href="https://try.orchardcore.net/" target="_self">Try Orchard Core</a> site.</p><p><a href="https://orchardcorewebsite.blob.core.windows.net/demo/v1/harvest-upcoming.html" target="_self">The preview</a> shows the new hero section, call-to-action buttons, sponsorship logos, and streamlined navigation. The redesign supports dynamic layouts for pre- and post-conference states, including sections for submitting talks, past event photos, and sponsor information. Speaker profiles are simplified with links to GitHub or LinkedIn, and the schedule is presented in an accordion style to save vertical space and highlight breaks.</p><p>Nick also showcased <a href="https://orchardcorewebsite.blob.core.windows.net/demo/v1/try.html" target="_self">improvements to the Try Orchard Core demo site</a>, clarifying the signup process, emphasizing privacy and free access, and adding frequently asked questions for user reassurance.</p><p><img alt="Orchard Harvest Site Redesign" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260724/orchard-harvest-site-redesign.png"></p><p><a href="https://orchardcorewebsite.blob.core.windows.net/demo/v1/index.html" target="_self">See the preview</a> and share your feedback on direction, accuracy, and tone.</p><p><a href="https://www.youtube.com/watch?v=1F3XnDm2HkU" target="_self">Watch it on YouTube</a> and <a href="https://github.com/OrchardCMS/OrchardCore.Website/pull/17" target="_self">check out the pull request</a>!</p><p class="embed-container"><iframe width="840" height="473" src="https://www.youtube-nocookie.com/embed/1F3XnDm2HkU" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" spellcheck="false"></iframe></p><h2>News from the community</h2><h3>Ready to simplify your Orchard Core hosting?</h3><p>We launched DotNest, our fully managed Orchard Core hosting platform, on Microsoft Marketplace, already powering more than 6,000 websites worldwide. IT teams, marketing teams, and digital agencies can now provision a fully managed Orchard Core site in minutes, directly through their existing Azure subscription: no separate procurement, no infrastructure to manage.</p><p>What you get: automatic updates, native Azure integration, extensive theming and content-modeling freedom, built-in ecommerce, enterprise-grade performance, and GDPR compliance out of the box.</p><p>Skip the infrastructure work. Explore <a href="https://marketplace.microsoft.com/en-us/product/saas/lombiq.dotnest-production" target="_self">DotNest on Microsoft Marketplace</a>, or visit <a href="https://lombiq.link/jmp/82bbd237" target="_self">DotNest.com</a> to learn more.</p><p><a href="https://lombiq.link/jmp/f1c79bf2" target="_self">Read the announcement</a> on our site!</p><p><img alt="DotNest Azure Marketplance" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260724/dotnest-azure-marketplace.png"></p><h3>Orchard Harvest 2026 Program</h3><p>The Orchard Harvest 2026 conference will be held in Vancouver, and we look forward to seeing you all this autumn in Canada. Our confirmed dates for this year are September 10th and 11th.</p><p>Don't miss this limited-time offer: just $280 for two days of all-access learning and networking. <a href="https://www.tickettailor.com/events/lombiqtechnologiesltd/2247098" target="_self">Secure your early-bird tickets</a> to the conference now!</p><p>The full Orchard Harvest 2026 program is live! Be sure to check out the <a href="https://orchardcore.net/harvest" target="_blank">conference's updated official website</a> for the program!</p><p>As we move forward, we will keep community members informed of the details, and you will find every detail in this newsletter, too!</p><p>Don't miss the biggest Orchard Core event of the year!</p><p><img alt="Orchard Harvest 2026 Program" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260626/orchard-harvest-2026-program.png"></p><h3>Orchard Dojo Newsletter</h3><p>Lombiq's Orchard Dojo Newsletter has 413 subscribers! We have started this newsletter to keep the Orchard community informed about the latest platform news. By subscribing to this newsletter, you will receive an email whenever a new post is published to Orchard Dojo, including <em>'This Week in Orchard'</em>, of course.</p><p>Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to <a href="https://orcharddojo.us12.list-manage.com/subscribe?u=32f819a768237590e479c9d0a&amp;id=039db8f13f">subscribe here</a>!</p><h5>If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of <a href="https://www.youtube.com/watch?v=G_ksUNlZGZw" target="_self">this Orchard meeting</a>!</h5>]]></description>
      <pubDate>Fri, 24 Jul 2026 09:21:26 GMT</pubDate>
      <guid isPermaLink="true">https://orcharddojo-net-staging.lombiq.com/blog/orchard-harvest-s-new-website-ready-to-simplify-your-orchard-core-hosting-this-week-in-orchard-24-07-2026</guid>
    </item>
    <item>
      <title>Help shape Orchard Core's new website, a new website using Orchard Core - This week in Orchard (17/07/2026)</title>
      <link>https://orcharddojo-net-staging.lombiq.com/blog/help-shape-orchard-core-s-new-website-a-new-website-using-orchard-core-this-week-in-orchard-17-07-2026</link>
      <description><![CDATA[<h2>Orchard Core updates</h2><h3>OCAT CSS Classes for Admin Editors</h3><p>This change by <a href="https://github.com/MikeAlhayek" target="_self">Mike Alhayek</a> focuses on improving the consistency and maintainability of the Orchard Core admin UI by standardizing form layouts, enhancing accessibility, and refining the structure of several view files. The main changes include removing the <em>TheAdminThemeOptions</em> and the <em>CssOrchardHelperExtensions</em>, so admin editor views now use static CSS classes prefixed with <em>ocat-</em> (Orchard Core Admin Theme) instead of C# helper methods that injected CSS classes at runtime.</p><p>For example, in <em>BooleanField.Edit.cshtml</em>, the <em>Orchard.GetFieldWrapperClasses()</em> helper was replaced by <em>ocat-wrapper</em> and <em>Orchard.GetEndClasses()</em> by <em>ocat-end-offset</em>.</p><p><img alt="Replace CssOrchardHelperExtensions with ocat classes" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260717/replace-cssorchardhelperextensions-with-ocat-classes.png"></p><p>The <a href="https://docs.orchardcore.net/en/latest/reference/themes/admin-theme/" target="_self">docs about the Admin Theme Conventions</a> mention the available OCAT CSS classes for Admin Editors, the Content Part and Field Wrapper classes with some examples about how to use OCAT classes in custom views.</p><p>The <a href="https://docs.orchardcore.net/en/latest/releases/3.0.0/#admin-theme-removal-of-theadminthemeoptions-and-css-helper-extensions" target="_self">release notes for Orchard Core 3.0</a> list the CSS helper extensions that were removed along with the new CSS classes to use instead.</p><h3>Enable Liquid Support for Workflow Tasks alongside JavaScript</h3><p>Thanks to <a href="https://github.com/MikeAlhayek" target="_self">Mike Alhayek</a>, all workflow tasks that previously only supported JavaScript now also support Liquid. Additionally, <em>LiquidTask</em> was added to mimic <em>ScriptTask</em>.</p><p>As you can see, the <em>SetProperty</em> task now includes a <em>Syntax</em> selector for switching between JavaScript and Liquid.</p><p><img alt="Enable Liquid support for Workflow tasks" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260717/enable-liquid-support-for-workflow-tasks.png"></p><p>All affected workflow edit views (<em>ForEachTask</em>, <em>ForLoopTask</em>, <em>IfElseTask</em>, <em>SetOutputTask</em>, <em>SetPropertyTask</em>, <em>WhileLoopTask</em>, and the new <em>LiquidTask</em>) have been updated to use the <em>ocat-*</em> CSS class conventions mentioned previously required by the admin theme.</p><p>You can also find a new AI agent skill called <a href="https://github.com/OrchardCMS/OrchardCore/blob/main/.agents/skills/orchardcore-admin-edit-views/SKILL.md" target="_self">OrchardCore Admin Edit Views</a> under <em>.agents/skills/</em> to document the <em>ocat-*</em> CSS class patterns so future AI-assisted development correctly uses the two-column admin edit view layout.</p><h3>Demos</h3><h4>Help Shape Orchard Core's New Website</h4><p><a href="https://github.com/buzznick" target="_self">Nick Jackson</a> presents a demo of the proposed Orchard Core website redesign, outlining design decisions, targeted audiences, content structure, and plans for feedback and further development.</p><p>The redesign targets two audiences: .NET developers evaluating the framework, and the business decision-makers (agency owners, CTOs, clients) who need reassurance that Orchard Core is a safe, mature choice. Nick explained the design reasoning in detail: the visual style intentionally mirrors the existing admin UI for consistency, the layout is clean and modular to match the product itself, the color palette leans on Orchard Core's green tones for a trustworthy feel, and icons and stock photography were minimized in favor of real screenshots and contributor data. <a href="https://github.com/orgs/OrchardCMS/discussions/19367" target="_self">His post on GitHub</a> also includes a factual comparison table against Umbraco and ABP, positioning Orchard Core as a combined CMS/application framework that's free and community-led.</p><p>The stated goals are to drive more installs/trials and to reassure business stakeholders about cost, governance, and longevity, with a toggle letting visitors switch between developer-focused and business-focused messaging.</p><p><img alt="New Orchard Core Website" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260717/new-orchard-core-website.png"></p><p><a href="https://orchardcorewebsite.blob.core.windows.net/demo/v1/index.html" target="_self">See the preview</a> and share your feedback on direction, accuracy, and tone.</p><p><a href="https://www.youtube.com/watch?v=aWh1ovEnyxE" target="_self">Watch it on YouTube</a> and <a href="https://github.com/OrchardCMS/OrchardCore.Website/pull/17" target="_self">check out the pull request</a>!</p><p class="embed-container"><iframe width="840" height="473" src="https://www.youtube-nocookie.com/embed/aWh1ovEnyxE" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" spellcheck="false"></iframe></p><h2>News from the community</h2><h3>A new website using Orchard Core: GoRide</h3><p>GoRide is a hyperlocal marketplace, their mission is to bring merchants together to offer you the best possible bike rental fleet. Check out their <a href="https://lombiq.link/jmp/5fd55cdf" target="_self">Orchard Core site here</a>!</p><p><img alt="GoRide" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260717/goride.png"></p><p>For more Orchard Core sites in the wild, visit <a href="https://lombiq.link/jmp/38134ed" target="_self">Show Orchard</a>, a community showcase of representative Orchard CMS and Orchard Core websites maintained by <a href="https://lombiq.link/jmp/eae10736" target="_self">Lombiq Technologies</a>. Show Orchard itself runs on Orchard Core on <a href="https://lombiq.link/jmp/48bc2175" target="_self">DotNest</a>. Read the <a href="https://lombiq.link/jmp/4e6e9030" target="_self">case study</a> on how we migrated it from Orchard 1!</p><p>If you're considering a similar migration, the Lombiq team is available to help. <a href="https://lombiq.link/jmp/25ded690" target="_self">Get in touch</a>!</p><h3>Orchard Harvest 2026 Program</h3><p>The Orchard Harvest 2026 conference will be held in Vancouver, and we look forward to seeing you all this autumn in Canada. Our confirmed dates for this year are September 10th and 11th.</p><p>Don't miss this limited-time offer: just $280 for two days of all-access learning and networking. <a href="https://www.tickettailor.com/events/lombiqtechnologiesltd/2247098" target="_self">Secure your early-bird tickets</a> to the conference now!</p><p>The full Orchard Harvest 2026 program is live! Be sure to check out the <a href="https://orchardcore.net/harvest" target="_blank">conference's updated official website</a> for the program!</p><p>As we move forward, we will keep community members informed of the details, and you will find every detail in this newsletter, too!</p><p>Don't miss the biggest Orchard Core event of the year!</p><p><img alt="Orchard Harvest 2026 Program" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260626/orchard-harvest-2026-program.png"></p><h3>Orchard Dojo Newsletter</h3><p>Lombiq's Orchard Dojo Newsletter has 414 subscribers! We have started this newsletter to keep the Orchard community informed about the latest platform news. By subscribing to this newsletter, you will receive an email whenever a new post is published to Orchard Dojo, including <em>'This Week in Orchard'</em>, of course.</p><p>Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to <a href="https://orcharddojo.us12.list-manage.com/subscribe?u=32f819a768237590e479c9d0a&amp;id=039db8f13f">subscribe here</a>!</p><h5>If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of <a href="https://www.youtube.com/watch?v=HbIYY-55so4" target="_self">this Orchard meeting</a>!</h5>]]></description>
      <pubDate>Fri, 17 Jul 2026 09:04:10 GMT</pubDate>
      <guid isPermaLink="true">https://orcharddojo-net-staging.lombiq.com/blog/help-shape-orchard-core-s-new-website-a-new-website-using-orchard-core-this-week-in-orchard-17-07-2026</guid>
    </item>
    <item>
      <title>Never Let Your SSL Expire Again, Convert Alerts to Dismissible Toasts - This week in Orchard (10/07/2026)</title>
      <link>https://orcharddojo-net-staging.lombiq.com/blog/never-let-your-ssl-expire-again-convert-alerts-to-dismissible-toasts-this-week-in-orchard-10-07-2026</link>
      <description><![CDATA[<h2>Orchard Core updates</h2><h3>Add import/export support for OrchardCore.Security settings</h3><p><em>OrchardCore.Security</em> lacked the ability to import/export its settings: no <em>IRecipeStepHandler</em> implementation (making even hand-crafted recipes impossible) and no <em>IDeploymentSource</em>. <a href="https://github.com/okalangkenneth" target="_self">Kenneth Okalang</a> fixed this by adding a <em>SecurityDeploymentStartup</em> that registers a site settings property deployment step for <em>SecuritySettings</em> via <em>AddSiteSettingsPropertyDeploymentStep</em>. Both import and export (via recipe steps and deployment plans) are now available through the standard UI.</p><p>In the admin UI, navigate to <em>Settings -&gt; Security -&gt; Security Headers</em> to configure the content security policy, permissions policy, and referrer policy.</p><p><img alt="Security headers settings" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260710/security-headers-settings.png"></p><p>To export, go to <em>Tools -&gt; Deployments -&gt; Plans</em>, create a new deployment plan, and add the <em>Security settings step</em>. Execute the plan and download the result. Unzipping the archive reveals a <em>Recipe.json</em> with the settings for all three <em>Security Headers</em> tabs.</p><p><img alt="Execute security settings deployment plan" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260710/execute-security-settings-deployment-plan.png"></p><h3>Convert Alerts to Dismissible Toasts</h3><p>Notification messages generated by <em>INotifier</em> will now display as toast alerts. By default, only <em>Success</em> notifications are automatically dismissed after 5 seconds, while <em>Error</em>, <em>Warning</em>, and <em>Information</em> notifications remain visible until manually dismissed.</p><p>Developers can customize the dismissal timeout or disable automatic dismissal entirely. All notification types can also be manually closed by users using the X button.</p><p>This improves the user experience by preventing transient success messages from permanently occupying screen space, while ensuring more important notifications remain visible without affecting the layout or positioning of HTML components such as buttons.</p><p><img alt="Toast Notification" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260710/toast-notification.png"></p><p><a href="https://github.com/MikeAlhayek" target="_self">Mike Alhayek</a> also updated <a href="https://docs.orchardcore.net/en/latest/reference/modules/Notifications/#ui-notifications-with-inotifier" target="_self">the docs of the Notifications module</a> with code examples about how to send a notification, or how to customize the toast messages by overriding the <em>Message</em> and the <em>NotifyMessages</em> shapes.</p><p><img alt="Notifications Module Docs" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260710/notifications-module-docs.png"></p><h3>Demos</h3><h4>Never Let Your SSL Expire Again - SSL Check Feature</h4><p><a href="https://github.com/hishamco" target="_self">Hisham Bin Ateya</a> created <em>SSL Check</em>, a new feature that will be part of the Orchard Core Security module. Enable it under <em>Tools -&gt; Features</em>. Once active, the <em>Multi-Tenancy -&gt; Tenants</em> page shows a colored <em>SSL</em> badge next to each tenant domain indicating certificate expiration status.</p><p><img alt="SSL Badge Tenants page" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260710/ssl-badge-tenants-page.png"></p><p>The thresholds are configurable under <em>Configuration -&gt; Security -&gt; SSL Checker</em>. Tenants within the warning threshold get a yellow badge; those within the critical threshold get a red badge.</p><p><img alt="SSL Checker Settings" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260710/ssl-checker-settings.png"></p><p>The feature also integrates with the Admin Dashboard: enable the <em>Admin Dashboard</em> feature, and a widget appears on the admin home page summarizing all domains and their expiration dates.</p><p><img alt="SSL Widget Admin Dashboard" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260710/ssl-widget-admin-dashboard.png"></p><p>And it's still not all of it! A <a href="https://www.youtube.com/watch?v=0ZByxvkyOH8" target="_self">recording is available on YouTube</a>!</p><p class="embed-container"><iframe width="840" height="473" src="https://www.youtube-nocookie.com/embed/0ZByxvkyOH8" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" spellcheck="false"></iframe></p><h2>News from the community</h2><h3>Sponsorship Spotlight: Antoine Griffard</h3><p><a href="https://github.com/agriffard" target="_self">Antoine Griffard</a> has been contributing to Orchard since its earliest days (more than 15 years). In our new Sponsorship Spotlight series, he talks about what keeps him going: "If you give some time and effort to contributing, everything you did will be yours forever."</p><p><a href="https://lombiq.link/jmp/408149f5" target="_self">Read the full interview</a> to hear his story, from his first MVP Summit to the upcoming Orchard Harvest conference in Vancouver this September.</p><p><img alt="Sponsorship Spotlight: Antoine Griffard" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260710/sponsorship-spotlight-antoine.png"></p><h3>Orchard Harvest 2026 Program</h3><p>The Orchard Harvest 2026 conference will be held in Vancouver, and we look forward to seeing you all this autumn in Canada. Our confirmed dates for this year are September 10th and 11th.</p><p>Don't miss this limited-time offer: just $280 for two days of all-access learning and networking. <a href="https://www.tickettailor.com/events/lombiqtechnologiesltd/2247098" target="_self">Secure your early-bird tickets</a> to the conference now!</p><p>The full Orchard Harvest 2026 program is live! Be sure to check out the <a href="https://orchardcore.net/harvest" target="_blank">conference's updated official website</a> for the program!</p><p>As we move forward, we will keep community members informed of the details, and you will find every detail in this newsletter, too!</p><p>Don't miss the biggest Orchard Core event of the year!</p><p><img alt="Orchard Harvest 2026 Program" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260626/orchard-harvest-2026-program.png"></p><h3>Orchard Dojo Newsletter</h3><p>Lombiq's Orchard Dojo Newsletter has 414 subscribers! We have started this newsletter to keep the Orchard community informed about the latest platform news. By subscribing to this newsletter, you will receive an email whenever a new post is published to Orchard Dojo, including <em>'This Week in Orchard'</em>, of course.</p><p>Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to <a href="https://orcharddojo.us12.list-manage.com/subscribe?u=32f819a768237590e479c9d0a&amp;id=039db8f13f">subscribe here</a>!</p><h5>If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of <a href="https://www.youtube.com/watch?v=HbIYY-55so4" target="_self">this Orchard meeting</a>!</h5>]]></description>
      <pubDate>Fri, 10 Jul 2026 10:08:24 GMT</pubDate>
      <guid isPermaLink="true">https://orcharddojo-net-staging.lombiq.com/blog/never-let-your-ssl-expire-again-convert-alerts-to-dismissible-toasts-this-week-in-orchard-10-07-2026</guid>
    </item>
    <item>
      <title>Rethinking the Media Gallery, Explore Long-Term Orchard Core Support in Action - This week in Orchard (03/07/2026)</title>
      <link>https://orcharddojo-net-staging.lombiq.com/blog/rethinking-the-media-gallery-explore-long-term-orchard-core-support-in-action-this-week-in-orchard-03-07-2026</link>
      <description><![CDATA[<h2>Orchard Core updates</h2><h3>Jint async scripting APIs</h3><p>JavaScript global methods received the new <em>GlobalMethod.AsyncMethod</em> property, which is accessible in JavaScript as a function using the given name and the <em>Async</em> suffix. This is non-breaking, but we suggest using the new methods where applicable going forward. In cases where the method value is immediately returned, this is very simple, for example, replacing <em>deleteContentItem</em> with <em>deleteContentItemAsync</em>:</p><pre class="language-js"><code class="language-js"><span class="token string-property property">"ContentItemId"</span><span class="token operator">:</span> <span class="token string">"[js: deleteContentItem('blogContentItemId')]"</span></code></pre><p>can be replaced with</p><pre class="language-js"><code class="language-js"><span class="token string-property property">"ContentItemId"</span><span class="token operator">:</span> <span class="token string">"[js: deleteContentItemAsync('blogContentItemId')]"</span></code></pre><p>which works without any need to <em>await</em>, because the expression returns a <em>JavaScript Promise</em> object, which is automatically awaited by the engine.</p><p>So, the idea here is that we have <em>async</em> methods, like <em>deleteContentItemAsync</em>, which means we can call <em>await</em> on them. But at the same time, if we don't call <em>await</em>, then the new code will handle that, and await it.</p><p>If you check out the <a href="https://docs.orchardcore.net/en/latest/reference/modules/Scripting/#content-orchardcorecontents" target="_self">related page in the Orchard Core documentation</a>, you can see the new versions of the functions.</p><p>Using the new version avoids a sync-over-async call that can cause a thread deadlock, so it's always preferable. Thanks for the contribution to <a href="https://github.com/sarahelsaig" target="_self">Sára El-Saig</a>!</p><p><img alt="Scripting module documentation" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260703/scripting-module-documentation.png"></p><h3>CancellationToken to NotificationServices and use Result Pattern</h3><p>This change by <a href="https://github.com/MikeAlhayek" target="_self">Mike Alhayek</a> introduces support for cancellation tokens throughout the email and SMS sending infrastructure and improves code documentation by adding XML doc comments. The most significant changes include updating public APIs to accept <em>CancellationToken</em> parameters, propagating these tokens through internal calls, and enhancing method documentation for clarity and maintainability.</p><p>So, the <em>IEmailService.SendAsync()</em>, <em>ISmsService.SendAsync()</em>, <em>IEmailProvider.SendAsync()</em>, and <em>ISmsProvider.SendAsync()</em> methods now accept a <em>CancellationToken</em>. This is a source- and binary-breaking change for custom email services, providers, and event handlers. Update your implementations and overrides to include the new <em>cancellationToken</em> parameter.</p><p>Check out the release notes of v3.0, where you can find the mentioned changes under the <a href="https://docs.orchardcore.net/en/latest/releases/3.0.0/#notifications-module" target="_self">Notifications Module</a> and <a href="https://docs.orchardcore.net/en/latest/releases/3.0.0/#email-interfaces" target="_self">Email Interfaces</a> sections.</p><p><img alt="Add CancellationToken to NotificationServices and use Result Pattern" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260703/add-cancellationtoken-to-notificationservices-and-use-result-pattern.png"></p><h3>Demos</h3><h4>Rethinking the Media Gallery - Now Powered by Vue 3</h4><p>The goal of this feature is to migrate the Media Library to Vue 3. It means migrating all the components (for example, the Media Picker) to Vue 3. Here you can <a href="https://github.com/OrchardCMS/OrchardCore/pull/14256" target="_self">find the pull request</a> containing the changes by <a href="https://github.com/Skrypt" target="_self">Jasmin Savard</a>.</p><p>This change also involves adding new media-related features. If you navigate to <em>Tools -&gt; Features</em> and search for "<em>media</em>", you will see several new ones:</p><ul><li>The <strong>Media SignalR</strong> and <strong>Media SignalR - Azure</strong> features enable real-time media updates via SignalR. When enabled, changes to media files and folders are broadcast to connected clients. You can use SignalR locally as a SignalR host, where the tenant becomes the host of the SignalR server. SignalR will synchronize changes across browsers, so you will see them instantly.</li><li>The <strong>Media TUS Uploads</strong> feature enables resumable file uploads using the TUS protocol. When enabled, it replaces the default chunked upload mechanism with the TUS standard, allowing uploads to be paused and resumed.</li><li><strong>The Media SignalR - Redis</strong> feature uses Redis as the backplane for real-time media updates, enabling multi-instance deployments.</li></ul><p>Now let's quickly see the new Media Library in action!</p><p>The navigation is different; we have different icons at the top. We can go to a grid with images and to a table view with more details about the files, but without the images. We can set the thumbnail size and the number of how many items we want to display per page. It also saves the preferences in your browser's local storage.</p><p><img alt="Media Library Vue 3" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260703/media-library-vue3.gif"></p><p>We have new modals in the Media Library. If we create a new subfolder, we can set the folder name in this modal. Or if we want to move/copy a file to a new folder, we can select the destination folder in another modal. As you can see, we have toast notifications for actions that happen on the Media Library. If you upload files, you can see the <em>Upload</em> modal at the bottom-right with the progress bar and a pause button.</p><p>And it's still not all of it! If you want to see the new Media Library in action, <a href="https://youtu.be/oKXDAA_Hi3o" target="_self">head to YouTube for a recording</a>!</p><p class="embed-container"><iframe width="840" height="473" src="https://www.youtube-nocookie.com/embed/oKXDAA_Hi3o" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" spellcheck="false"></iframe></p><h2>News from the community</h2><h3>Case study: Long-term Orchard Core maintenance for the City of Santa Monica</h3><p>Several years ago, we helped migrate <a href="https://www.santamonica.gov/" target="_self">santamonica.gov</a> from Orchard 1 to Orchard Core. Since then, our collaboration has continued with a different but equally critical focus: long-term maintenance and reliability.</p><p>Over the past couple of years, our work has centered on the kind of improvements that are rarely visible from the outside, yet essential for any long-running public website:</p><ul><li>Keeping Orchard Core up to date through major version upgrades.</li><li>Adding comprehensive automated testing, including accessibility, security, and visual regression checks.</li><li>Improving developer experience with predictable local setup.</li><li>Cleaning up and standardizing the codebase to make future changes easier.</li><li>Identifying and resolving performance bottlenecks.</li></ul><p>The goal was to leave the project in a state where development can continue safely and efficiently, without regressions, surprises, or accumulated technical debt.</p><p>As <a href="https://www.linkedin.com/in/sushmita-inamdar-36987822a" target="_self">Sushmita Inamdar</a>, Software Developer at the City of Santa Monica, put it:</p><p><em>"Lombiq continues to be an invaluable partner in maintaining and improving our Orchard Core platform… Their work behind the scenes has significantly improved the reliability, security, and maintainability of our platform."</em></p><p>We're grateful for the trust and the ongoing collaboration, and we're glad to keep supporting a mission-critical public website as it evolves.</p><p>If you run an Orchard Core site and are thinking about upgrades, testing, performance, or long-term maintenance, <a href="https://lombiq.link/jmp/bfd3b80a" target="_self">this case study</a> may be useful for planning your next steps.</p><p>Do you run an Orchard Core site that needs upgrading, testing, performance work, or long-term maintenance? <a href="https://lombiq.link/jmp/88f1c169" target="_self">Get in touch with us</a>, and we can help you plan the next steps.</p><p><img alt="City of Santa Monica case study" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260703/city-of-santa-monica-case-study.png"></p><h3>Orchard Harvest 2026 Program</h3><p>The Orchard Harvest 2026 conference will be held in Vancouver, and we look forward to seeing you all this autumn in Canada. Our confirmed dates for this year are September 10th and 11th.</p><p>Don't miss this limited-time offer: just $280 for two days of all-access learning and networking. <a href="https://www.tickettailor.com/events/lombiqtechnologiesltd/2247098" target="_self">Secure your early-bird tickets</a> to the conference now!</p><p>The full Orchard Harvest 2026 program is live! Be sure to check out the <a href="https://orchardcore.net/harvest" target="_blank">conference's updated official website</a> for the program!</p><p>As we move forward, we will keep community members informed of the details, and you will find every detail in this newsletter, too!</p><p>Don't miss the biggest Orchard Core event of the year!</p><p><img alt="Orchard Harvest 2026 Program" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260626/orchard-harvest-2026-program.png"></p><h3>Orchard Dojo Newsletter</h3><p>Lombiq's Orchard Dojo Newsletter has 414 subscribers! We have started this newsletter to keep the Orchard community informed about the latest platform news. By subscribing to this newsletter, you will receive an email whenever a new post is published to Orchard Dojo, including <em>'This Week in Orchard'</em>, of course.</p><p>Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to <a href="https://orcharddojo.us12.list-manage.com/subscribe?u=32f819a768237590e479c9d0a&amp;id=039db8f13f">subscribe here</a>!</p><h5>If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of <a href="https://www.youtube.com/watch?v=HbIYY-55so4" target="_self">this Orchard meeting</a>!</h5>]]></description>
      <pubDate>Fri, 03 Jul 2026 10:35:38 GMT</pubDate>
      <guid isPermaLink="true">https://orcharddojo-net-staging.lombiq.com/blog/rethinking-the-media-gallery-explore-long-term-orchard-core-support-in-action-this-week-in-orchard-03-07-2026</guid>
    </item>
    <item>
      <title>Sponsorship Spotlight: Antoine Griffard</title>
      <link>https://orcharddojo-net-staging.lombiq.com/blog/sponsorship-spotlight-antoine-griffard</link>
      <description><![CDATA[<p><strong>Gábor</strong>: When did you first come across Orchard?</p><p><strong>Antoine</strong>: In 2009-2010, I discovered the Orchard project in version 0.5 on Codeplex. It was originally managed by a team of people at Microsoft. I knew <a href="https://github.com/bleroy" target="_self">Bertrand Le Roy</a>, one of the project managers, whom I had met in 2007 in Redmond when I went to my first MVP Summit. A few months later, another developer I knew, <a href="https://github.com/sebastienros" target="_self">Sébastien Ros</a>, joined the team. In 2010, version 1.0 was released with ASP.NET MVC Razor views, and the project switched to an open-source approach. I started contributing to issues, docs, translations, and modules like Fields. An election was organized to select the first Steering Committee members. Bertrand was the benevolent dictator at that time. There was an Orchard gallery (which ran the first version of the NuGet Gallery) where you could deploy your own modules and themes. In 2012, the first conference was held in Santa Monica, where I was lucky to meet in person some of the contributors I had been in touch with. Among them, two young Hungarian students.</p><p><strong>Gábor</strong>: I think we all know who those two Hungarians could be!</p><p><strong>Antoine</strong>: Yes, that was the first time I met <a href="https://github.com/piedone" target="_self">Zoltán</a> and <a href="https://github.com/BenedekFarkas" target="_self">Benedek</a> in person. If I remember correctly, there was no Lombiq at that time.</p><p><strong>Gábor</strong>: You are correct: Lombiq was founded a year later, in 2013. We have just had our 13th anniversary. But they started contributing to Orchard and were part of the community even before Lombiq was founded. Speaking of which, why do you like contributing to Orchard?</p><p><strong>Antoine</strong>: After using the Framework and CMS, I felt like I had to give back a little. I switched from someone who uses a tool to someone who contributes to make it better and help people. For me, if you keep something for yourself, it is lost, but if you give some time and effort to contributing, everything you did will be yours forever. If you think about it, the contribution is the reward itself.</p><p><strong>Gábor</strong>: You are totally right. It's a very good feeling to see that the code you write could be part of something others will use or improve later. But what do you like most about Orchard?</p><p><strong>Antoine</strong>: Technically, I really like its modularity and extensibility. It offers many modules out of the box, and you can extend them with your own modules and themes. What I like most about Orchard Core is that it has made me a better developer in so many ways.</p><p><strong>Gábor</strong>: Are you contributing to other open-source projects too?</p><p><strong>Antoine</strong>: Probably not enough (laughs), but I try to contribute to other projects like Blazor component libraries (e.g., Fluent Blazor UI), Microsoft documentation, and products (e.g., Aspire). Sharing my knowledge is an important part of being a Microsoft MVP.</p><p><strong>Gábor</strong>: I know we started our discussion about some members of the community, but what do you think about the community in general?</p><p><strong>Antoine</strong>: The weekly meetings and discussion forums like <a href="https://orchardcore.net/discord" target="_self">Discord</a> make you feel like you're part of a community. And being able to meet people and travel all around the world for conferences like Orchard Harvest is priceless.</p><p><strong>Gábor</strong>: You attended the last two Harvests as well. In 2024, we organized it in Las Vegas, and last year the conference took place in Prague, Czechia. And <a href="https://orchardcore.net/harvest" target="_self">we will organize it again this year</a>: The next Orchard Core conference will take place in Vancouver, Canada, on September 10th and 11th! Will you be able to join, Antoine? If I remember correctly, you attended every single Harvest so far.</p><p><strong>Antoine</strong>: Hopefully yes, I'm working on it!</p><p><strong>Gábor</strong>: Thank you for the interview!</p><p><br></p><p>Stay tuned for the upcoming parts of the Sponsorship Spotlight series! If you don't want to miss them, sign up for the <a href="https://www.linkedin.com/build-relation/newsletter-follow?entityUrn=7407473393501077505" target="_self">Lombiq Technologies Newsletter</a> and stay up to date with what's new, insightful, and happening at Lombiq.</p><p>Check out our <a href="https://orcharddojo.us12.list-manage.com/subscribe?u=32f819a768237590e479c9d0a&amp;id=039db8f13f" target="_self">Orchard Dojo newsletter</a> too for news about Orchard!</p>]]></description>
      <pubDate>Wed, 01 Jul 2026 10:03:07 GMT</pubDate>
      <guid isPermaLink="true">https://orcharddojo-net-staging.lombiq.com/blog/sponsorship-spotlight-antoine-griffard</guid>
    </item>
    <item>
      <title>Orchard Harvest 2026 program, Your website should integrate with your business systems - This week in Orchard (26/06/2026)</title>
      <link>https://orcharddojo-net-staging.lombiq.com/blog/orchard-harvest-2026-program-your-website-should-integrate-with-your-business-systems-this-week-in-orchard-26-06-2026</link>
      <description><![CDATA[<h2>Orchard Core updates</h2><h3>Set up tenants faster with improved shared and preset database support</h3><p>The idea here is that if you have a setup with multiple tenants on the same database, you will need some sort of prefix to distinguish which one belongs to which. Today, the UI doesn't even require you to select the pattern; only the prefix is there to use. But if you don't use the prefix, you might get an error. So the <em>RequireTablePrefix</em> lets you make it required. But then, if you don't want that altogether, maybe you will have some sort of auto-generated prefix, and then you don't have to prompt the user at all. You can say just make the prefix the same as the tenant name and use that pattern everywhere. It allows users to make the tenants a bit easier to follow by using a given pattern.</p><p>So, if you check out <a href="https://docs.orchardcore.net/en/latest/releases/3.0.0/#database-presets-required-prefixes-and-generated-database-names" target="_self">the release notes for Orchard Core 3</a>, you can see a new set of configuration options for creating table prefixes in multitenancy. The new <em>RequireTablePrefix</em> option can require a table prefix, and the new <em>TablePrefixPattern</em> lets you create a Liquid configuration like <em>ShellSettings.Name</em> to force the prefix to use the <em>ShellSettings.Name</em>. And this way, you don't have to provide it; it will be computed automatically. Thanks for the contribution from <a href="https://github.com/MikeAlhayek" target="_self">Mike Alhayek</a>!</p><p><img alt="Tenants Setup Improvements" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260626/tenants-and-setup-improvements.png"></p><h3>Add Settings Recipe Step sections in the docs</h3><p>We were missing some documentation on how to customize settings via recipe steps. So, we can configure all the settings, but there is no documentation on which properties to provide for each setting. This contribution by <a href="https://github.com/MikeAlhayek" target="_self">Mike Alhayek</a> is fixing the gap between what we can do and how we can do it. If people don't know what to do, then they will never do it. And if the Agent doesn't find the example, it will not know what to write in the recipe.</p><p>It means that from now on, you will find a <em>Recipe Configuration</em> section for all modules with settings that can be configured via the <em>Settings</em> recipe step. <a href="https://docs.orchardcore.net/en/latest/reference/modules/Users/#recipe-configuration" target="_self">Here you can find an example</a> showing how to configure the <em>Login</em>, <em>Registration</em>, and <em>Reset Password settings</em>, etc.</p><p><img alt="Settings recipe step sections in the docs" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260626/settings-recipe-step-sections-in-the-docs.png"></p><h3>Demos</h3><h4>Lock Down Your Health Checks</h4><p>The <a href="https://github.com/OrchardCoreContrib/OrchardCoreContrib.Modules" target="_self">OrchardCoreContrib.Modules repository</a> contains a set of modules for Orchard Core that are driven by the community members who love Orchard Core. The repository contains several modules, and this time we will focus on the <em>Health Checks Module</em>, which provides health checks for your website. You can also add this module <a href="https://www.nuget.org/packages/OrchardCoreContrib.HealthChecks/" target="_self">as a NuGet package</a> to your project. Now, if you go to <em>Tools -&gt; Features</em> and search for <em>Health Checks</em>, you will see four features:</p><ul><li><strong>Health Checks</strong>: Provides health checks for the website.</li><li><strong>Health Checks Blocking Rate Limiting</strong>: Adds blocking behavior to the health checks rate limiter. Clients exceeding the limit are temporarily blocked to prevent DoS attacks.</li><li><strong>Health Checks IP Restriction</strong>: Restricts access to health checks endpoints by IP address.</li><li><strong>Health Checks Rate Limiting</strong>: Limits requests to health checks endpoints to prevent DOS attacks.</li></ul><p>Let's see how we can configure and use those!</p><p>As you can see, we have an <em>AllowedIPs</em> array under <em>Access</em>, where we can set the collection of IP addresses permitted to access health check endpoints.</p><p>The <em>RateLimiting</em> provides configuration options for rate limiting applied to health check endpoints. Here you can see that we set the maximum number of concurrent permits to 5 and the time window for which rate limiting is applied to 10 seconds. The duration a client is blocked after the rate limit is exceeded is 10 seconds.</p><p><img alt="Health Checks" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260626/health-checks.png"></p><p>As you can see, the health check URL is <em>/health</em>. So, if we hit that, we will get a detailed response because <em>ShowDetails</em> is <em>true</em>, which lets us show the details of the checks' dependencies. The <em>Status</em> is <em>Unhealthy</em> because one tenant is not running (<em>Tenant's health check</em> is provided by the <a href="https://github.com/OrchardCoreContrib/OrchardCoreContrib.Modules/blob/main/src/OrchardCoreContrib.Tenants/README.md" target="_self">OrchardCoreContrib.Tenants module</a>).</p><p>If we hit the endpoint more times than allowed within a given time frame, we will be blocked for 10 seconds, as specified by the <em>BlockDuration</em> property. And as always, if you want to see this module in action, <a href="https://www.youtube.com/watch?v=yHSuyVPbi4g" target="_self">head to YouTube for a demo</a> of this module by <a href="https://github.com/hishamco" target="_self">Hisham Bin Ateya</a>!</p><p class="embed-container"><iframe width="840" height="473" src="https://www.youtube-nocookie.com/embed/yHSuyVPbi4g" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" spellcheck="false"></iframe></p><h2>News from the community</h2><h3>Your website should integrate with your business systems</h3><p>When visitors submit a form, your team shouldn't be copy-pasting data into CRMs, sending Slack messages, or updating spreadsheets by hand. That's slow, inconsistent, and doesn't scale. Orchard Core makes integration simple without requiring custom code by:</p><ul><li>Sending form submission data directly to Zapier, Make, or n8n.</li><li>Triggering CRM updates, email workflows, and team notifications automatically.</li><li>Receiving webhook calls from external systems to create or update content inside your CMS.</li></ul><p>The result: your website stays stable while your business workflows evolve freely in the automation layer.</p><p>Ready to connect your website to your business systems?</p><p>DotNest's managed Orchard Core hosting lets you set this up without any infrastructure overhead. <a href="https://lombiq.link/jmp/84faec9e" target="_self">Check out our post for the details</a> and <a href="https://lombiq.link/jmp/279d8ced" target="_self">get in touch</a> to explore what's possible for your team.</p><p><img alt="Your website should integrate with your business systems" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260626/your-website-should-integrate-with-your-business-systems-dotnest.png"></p><h3>Orchard Harvest 2026 Program</h3><p>The Orchard Harvest 2026 conference will be held in Vancouver, and we look forward to seeing you all this autumn in Canada. Our confirmed dates for this year are September 10th and 11th.</p><p>Don't miss this limited-time offer: just $280 for two days of all-access learning and networking. <a href="https://www.tickettailor.com/events/lombiqtechnologiesltd/2247098" target="_self">Secure your early-bird tickets</a> to the conference now!</p><p>The full Orchard Harvest 2026 program is live! Be sure to check out the <a href="https://orchardcore.net/harvest" target="_blank">conference's updated official website</a> for the program!</p><p>As we move forward, we will keep community members informed of the details, and you will find every detail in this newsletter, too!</p><p>Don't miss the biggest Orchard Core event of the year!</p><p><img alt="Orchard Harvest 2026 Program" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260626/orchard-harvest-2026-program.png"></p><h3>Orchard Dojo Newsletter</h3><p>Lombiq's Orchard Dojo Newsletter has 414 subscribers! We have started this newsletter to keep the Orchard community informed about the latest platform news. By subscribing to this newsletter, you will receive an email whenever a new post is published to Orchard Dojo, including <em>'This Week in Orchard'</em>, of course.</p><p>Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to <a href="https://orcharddojo.us12.list-manage.com/subscribe?u=32f819a768237590e479c9d0a&amp;id=039db8f13f">subscribe here</a>!</p><h5>If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of <a href="https://www.youtube.com/watch?v=HbIYY-55so4" target="_self">this Orchard meeting</a>!</h5>]]></description>
      <pubDate>Fri, 26 Jun 2026 09:27:58 GMT</pubDate>
      <guid isPermaLink="true">https://orcharddojo-net-staging.lombiq.com/blog/orchard-harvest-2026-program-your-website-should-integrate-with-your-business-systems-this-week-in-orchard-26-06-2026</guid>
    </item>
    <item>
      <title>Orchard Core 3.0, Admin Theme in Orchard Core: The Developer cheat sheet - This week in Orchard (19/06/2026)</title>
      <link>https://orcharddojo-net-staging.lombiq.com/blog/orchard-core-3-0-admin-theme-in-orchard-core-the-developer-cheat-sheet-this-week-in-orchard-19-06-2026</link>
      <description><![CDATA[<h2>Orchard Core updates</h2><h3>Admin Theme in Orchard Core: The Developer cheat sheet</h3><p>When building modules or custom admin pages in Orchard Core, knowing how to work with the Admin Theme is essential for creating a consistent and maintainable user experience. Whether you're styling forms or building custom editors, Orchard Core gives you a clean, framework-agnostic toolkit to do it right.</p><p>Ready to build better admin experiences in Orchard Core? Dive into the <a href="https://docs.orchardcore.net/en/latest/reference/themes/admin-theme/" target="_self">Admin Theme Conventions documentation</a> added by our new contributor, <a href="https://github.com/JasonPG2007" target="_self">Quoc Bao An Nguyen</a>, and start crafting custom admin interfaces that are flexible, maintainable, and visually consistent, no matter which theme your users choose.</p><p><img alt="Admin Theme conventions" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260619/admin-theme-conventions.png"></p><h3>Skip the Admin Dashboard: Configure ReCaptcha programatically</h3><p>You currently need to configure ReCaptcha settings from settings. This is a good and necessary way to do it, but for environment-based settings (like different ones for staging and prod), it'd be better to make them configurable via configuration providers as well. <em>ReCaptchaSettings</em> is almost ready for this. We can solve this in a similar way to what we have in a lot of other modules:</p><ul><li>Provide an extension method to do environment configuration, similar to <em>ConfigureAzureADSettings()</em>.</li><li>Check that everywhere where <em>ReCaptchaSettings</em> is used, it's used as an <em>IOptions&lt;ReCaptchaSettings&gt;</em> and not directly as site settings (except when the site settings are edited). E.g., <em>ReCaptchaLoginFilter</em> goes directly to the site settings instead of going the options way.</li></ul><p>With the latest updates by <a href="https://github.com/ghazi1567" target="_self">ghazi1567</a>, you can now streamline this process using the <em>ConfigureReCaptchaSettings()</em> extension method. This allows you to map your settings directly from <em>appsettings.json</em>, ensuring the <em>SiteKey</em> and <em>SecretKey</em> are applied automatically during application initialization. Check out the <a href="https://docs.orchardcore.net/en/latest/reference/modules/ReCaptcha/#recaptcha-settings-configuration" target="_blank">documentation of the ReCaptcha module for the details,</a> and thanks again, <a href="https://github.com/ghazi1567" target="_blank">ghazi1567,</a> for your first contribution!</p><p><img alt="ReCaptcha settings configuration" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260619/recaptcha-settings-configuration.png"></p><h3>Demos</h3><h4>Route Smarter: Chat Response Handlers</h4><p>There is a feature in the <a href="https://orchardcore.crestapps.com/docs/ai/" target="_blank">AI Suite</a> that is extremely helpful if you are exposing a chat widget to the public. It can change the chat's response using a chat response handler. This allows you to handle cases, like handing over a connection or a chat happening with AI. It means, like, you start a conversation with AI, and then the AI can decide to route you to a real person. So, using Chat Response Handlers lets you register custom handlers that route prompts to external systems, such as live agent platforms (e.g., Genesys, Twilio, Flex, LivePerson), rather than to AI.</p><p>This enables scenarios like:</p><ul><li><strong>Live agent handoff</strong>: An AI function detects the user needs human support and transfers the session to a live agent queue.</li><li><strong>Hybrid AI + human</strong>: AI handles initial triage, then a human agent takes over mid-conversation.</li><li><strong>Non-AI chat profiles</strong>: Configure a profile to skip AI entirely and route all prompts to an external system from the start.</li></ul><p><img alt="Chat Response Handlers" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260619/chat-response-handlers.png"></p><p><a href="https://www.youtube.com/watch?v=1FkqkNS9ZWA" target="_self">Check out this recording on YouTube</a> to see how Orchard can transfer you to a human agent via the <a href="https://lombiq.link/jmp/3149e504" target="_self">AI Chat Admin Widget and Frontend Widget</a>. In this demo by <a href="https://github.com/MikeAlhayek" target="_self">Mike Alhayek</a>, you can see that the AI Suite sends over the session with the context to Genesys, where the user can continue the conversation with a human.</p><p class="embed-container"><iframe width="840" height="473" src="https://www.youtube-nocookie.com/embed/1FkqkNS9ZWA" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" spellcheck="false"></iframe></p><h2>News from the community</h2><h3>Orchard Core 3.0</h3><p>The community yesterday released the third major version of Orchard Core with several new features and additions! This release is packed with performance improvements, bug fixes, and a variety of enhancements, making it our best version yet. Whether you're building a new project or maintaining an existing one, Orchard Core 3.0 brings stability and power to your fingertips. Why Upgrade to Orchard Core 3.0?</p><ul><li><strong>Enhanced Performance</strong>: Your sites and applications will run faster, smoother, and more efficiently.</li><li><strong>Rock-Solid Stability</strong>: We've squashed numerous bugs, ensuring a more reliable and enjoyable development experience.</li><li><strong>Seamless Development</strong>: By sticking to version control best practices, we've ensured no breaking changes in any patch or minor release, allowing developers to confidently create modules and libraries that will work across the entire 3.x series.</li></ul><p>Prior to initiating this upgrade, thoroughly review the <a href="https://docs.orchardcore.net/en/latest/releases/3.0.0/" target="_self">documented list of breaking changes</a> (such as Orchard Core 3.0 requiring .NET 10) to ensure a smooth, hassle-free transition.</p><p>Orchard Core is available as a NuGet package that you can easily add to your ASP.NET Core solution. Here's how you can <a href="https://docs.orchardcore.net/en/latest/getting-started/" target="_self">get started with Orchard Core</a>.</p><p>As you can see from the release notes, Orchard Core 3.0 contains many new additions compared to the previous version. From week to week, we try to summarize the latest features of the new release to make sure you will get the most out of your new version! If you are curious about what you can achieve, you will find all the information you need in this blog post series over the coming weeks!</p><p><img alt="Orchard Core 3 release notes" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260619/orchard-core-3-relese-notes.png"></p><h3>Lombiq at BeerUP Tech Fest</h3><p>We had a blast at <a href="https://digitalk.tech/beerup-tech-fest-2026" target="_self">Digitalk-tech's BeerUP Tech Fest</a>! It was indeed more like a festival, with two tracks of talks running late into the night and a festival atmosphere in the garden. Met many people from Budapest's wider tech community and made many valuable connections.</p><p><a href="https://github.com/barthamark" target="_self">Márk Bartha</a>, <a href="https://github.com/piedone" target="_self">Zoltán István Lehóczky</a>, <a href="https://github.com/I3undy" target="_self">Milán Keszthelyi</a>, and <a href="https://github.com/domonkosgabor" target="_self">Gábor Domonkos</a>, as pictured, manned our table at the <a href="https://www.linkedin.com/company/vivetech" target="_self">ViVeTech Nyrt</a>, booth and engaged with attendees. Zoltán also gave the ".NET web architecture in regulated environments: CMS or custom development" talk, sharing our experiences working with clients in the healthcare, finance, insurance, construction, and government sectors.</p><p><img alt="Lombiq at BeerUP Tech Fest" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260619/lombiq-beerup-tech-fest.png"></p><h3>Orchard Harvest 2026 Early Bird tickets!</h3><p>We're excited to open registration for Orchard Harvest 2026!</p><p>This year, we've also created a short "convince your boss" one-pager to help you make the case for attending. It highlights the practical takeaways, business value, and networking opportunities waiting at the event.</p><p>If you want to learn from real-world Orchard Core use cases, get a better sense of where the platform is heading, and connect with experts and active community members, this is for you. We'll be sharing this year's speakers and topics over time, so stay tuned!</p><p><a href="https://www.tickettailor.com/events/lombiqtechnologiesltd/2247098" target="_self">Secure your spot today for the early bird pricing</a> and get ready to level up your skills at Orchard Harvest!</p><p><img alt="Orchard Harvest 2026" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260605/orchard-harvest-2026-pager.jpg"></p><h3>Orchard Dojo Newsletter</h3><p>Lombiq's Orchard Dojo Newsletter has 415 subscribers! We have started this newsletter to keep the Orchard community informed about the latest platform news. By subscribing to this newsletter, you will receive an email whenever a new post is published to Orchard Dojo, including <em>'This Week in Orchard'</em>, of course.</p><p>Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to <a href="https://orcharddojo.us12.list-manage.com/subscribe?u=32f819a768237590e479c9d0a&amp;id=039db8f13f">subscribe here</a>!</p><h5>If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of <a href="https://www.youtube.com/watch?v=onZW40R6hII" target="_self">this Orchard meeting</a>!</h5>]]></description>
      <pubDate>Fri, 19 Jun 2026 10:20:58 GMT</pubDate>
      <guid isPermaLink="true">https://orcharddojo-net-staging.lombiq.com/blog/orchard-core-3-0-admin-theme-in-orchard-core-the-developer-cheat-sheet-this-week-in-orchard-19-06-2026</guid>
    </item>
    <item>
      <title>Mastering Lucene Query Syntax in Orchard Core, How to quickly spin off your Orchard Core site? - This week in Orchard (12/06/2026)</title>
      <link>https://orcharddojo-net-staging.lombiq.com/blog/mastering-lucene-query-syntax-in-orchard-core-how-to-quickly-spin-off-your-orchard-core-site-this-week-in-orchard-12-06-2026</link>
      <description><![CDATA[<h2>Orchard Core updates</h2><h3>Mastering Lucene Query Syntax in Orchard Core</h3><p>Lost in your content? Lucene's got the map. From fuzzy searches to regex wizardry, Orchard Core's query syntax lets you hunt down any document with pinpoint precision, wildcards, ranges, booleans, and all. Whether you're searching for "everything" (*:*) or something that almost matches, Lucene speaks your language.</p><p>Thanks to <a href="https://github.com/Manuel-dev-ing" target="_self">Manuel Tamayo Montero</a>, you can now find <a href="https://docs.orchardcore.net/en/latest/guides/lucene-query-syntax/" target="_self">a new guide in the Orchard Core documentation</a> with several examples of operators, expressions, fuzzy searches, and wildcard searches.</p><p><img alt="Lucene Query Syntax Documentation" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260612/lucene-query-syntax-documentation.png"></p><h3>Use Jint async scripting APIs</h3><p>Jint 4.8 can now await promises and .NET task interop asynchronously. Orchard's JavaScript scripting paths were still executing through synchronous evaluation, which meant script-exposed async services had to block with <em>GetAwaiter().GetResult()</em>.</p><p>This change by <a href="https://github.com/sebastienros" target="_self">Sébastien Ros</a> is about supporting async JavaScript scripts, but more importantly, supporting the asynchronous execution of any JavaScript script. Previously, the <em>Evaluate</em> method was not async; now there is an <em>EvaluateAsync</em> method in Jint. This way we don't have to call <em>GetAwaiter().GetResult()</em> on scripting, and we can just <em>await</em> the result. It allows workflows and other features relying on JavaScript to run asynchronously without blocking.</p><p><img alt="Use Jint async scripting APIs" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260612/use-jint-async-scripting-apis.png"></p><h3>Demos</h3><h4>How to quickly spin off your Orchard Core site?</h4><p>The idea is to have an Electron app for people who are not really technical, or for those who just want to experiment with Orchard Core and quickly spin off a site. <a href="https://github.com/buzznick" target="_self">Nick Jackson</a> demos an application that lets you do that without going to an IDE.</p><p>If you hit the <em>New</em> button, you can choose between two different creation modes to set up your site:</p><ul><li><strong>Express</strong>: Quick setup with sensible default. Here you just need to pick a name, email, and recipe.</li><li><strong>Custom</strong>: Full control over database port, directory, and more.</li></ul><p>In both cases, you can select which modules and themes you want to install. For a custom installation, you can select which Orchard Core version to install, choose the recipe, the database provider, and so on.</p><p><img alt="Electron app select modules and themes" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260612/electron-app-select-modules-and-themes.png"></p><p>So, it's just a quick experiment using a desktop app to see how it can run with Orchard. And as always, if you want to see how you can use this application, <a href="https://youtu.be/LiOWG8rEj8A" target="_self">head to YouTube for a quick demo</a>!</p><p class="embed-container"><iframe width="840" height="473" src="https://www.youtube-nocookie.com/embed/LiOWG8rEj8A" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" spellcheck="false"></iframe></p><h2>News from the community</h2><h3>Rebuilding DotNest.com: Orchard Core, Tailwind 4, and a more maintainable workflow</h3><p>As you may know, we recently rebuilt <a href="https://lombiq.link/jmp/71c416c5" target="_self">DotNest.com</a> (our managed Orchard Core hosting platform), treating it as more than a visual refresh. The project had three main focuses:</p><ul><li>Better Landing Page structure.</li><li>Modernized Front-End Workflow.</li><li>Practical AI-Assisted development.</li></ul><p><a href="https://lombiq.link/jmp/992937dc" target="_self">Our post</a> concludes that all three areas yielded real benefits: cleaner content management, faster UI development, and clearer insights into where AI assistance genuinely helps versus where human oversight is essential. That experience ultimately led to the <a href="https://github.com/Lombiq/Tailwind-Agent-Skills" target="_self">Tailwind Agent Skills</a> and <a href="https://github.com/Lombiq/Orchard-Core-Agent-Skills" target="_self">Orchard Core Agent Skills</a> repositories.</p><p>If you're planning an Orchard Core website, a redesign, or a modernization project, <a href="https://lombiq.com/contact-us" target="_self">reach out to us</a>. We're always happy to help teams build Orchard Core solutions that remain easy to evolve as requirements grow over time.</p><p><img alt="Rebuilding DotNest.com" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260612/rebuilding-dotnest.png"></p><h3>Orchard Harvest 2026 Early Bird tickets!</h3><p>We're excited to open registration for Orchard Harvest 2026!</p><p>This year, we've also created a short "convince your boss" one-pager to help you make the case for attending. It highlights the practical takeaways, business value, and networking opportunities waiting at the event.</p><p>If you want to learn from real-world Orchard Core use cases, get a better sense of where the platform is heading, and connect with experts and active community members, this is for you. We'll be sharing this year's speakers and topics over time, so stay tuned!</p><p><a href="https://www.tickettailor.com/events/lombiqtechnologiesltd/2247098" target="_self">Secure your spot today for the early bird pricing</a> and get ready to level up your skills at Orchard Harvest!</p><p><img alt="Orchard Harvest 2026" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260605/orchard-harvest-2026-pager.jpg"></p><h3>Orchard Dojo Newsletter</h3><p>Lombiq's Orchard Dojo Newsletter has 416 subscribers! We have started this newsletter to keep the Orchard community informed about the latest platform news. By subscribing to this newsletter, you will receive an email whenever a new post is published to Orchard Dojo, including <em>'This Week in Orchard'</em>, of course.</p><p>Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to <a href="https://orcharddojo.us12.list-manage.com/subscribe?u=32f819a768237590e479c9d0a&amp;id=039db8f13f">subscribe here</a>!</p><h5>If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of <a href="https://www.youtube.com/watch?v=kMZXFRfacsk" target="_self">this Orchard meeting</a>!</h5>]]></description>
      <pubDate>Fri, 12 Jun 2026 09:22:21 GMT</pubDate>
      <guid isPermaLink="true">https://orcharddojo-net-staging.lombiq.com/blog/mastering-lucene-query-syntax-in-orchard-core-how-to-quickly-spin-off-your-orchard-core-site-this-week-in-orchard-12-06-2026</guid>
    </item>
    <item>
      <title>Orchard Harvest 2026 Early Bird tickets, exploring Orchard Core's Next-Gen Visual Layout Editor Feature - This week in Orchard (05/06/2026)</title>
      <link>https://orcharddojo-net-staging.lombiq.com/blog/orchard-harvest-2026-early-bird-tickets-exploring-orchard-core-s-next-gen-visual-layout-editor-feature-this-week-in-orchard-05-06-2026</link>
      <description><![CDATA[<h2>Orchard Core updates</h2><h3>How to create and install a custom module?</h3><p>Did you know that with just a few configuration tweaks and a single project reference, you can extend Orchard Core CMS with your very own custom module that is fully integrated into the admin UI and discoverable at runtime? Thanks to <a href="https://github.com/Manuel-dev-ing" target="_self">Manuel Tamayo Montero</a>, this guide in the <a href="https://docs.orchardcore.net/en/latest/guides/create-install-custom-module/" target="_self">Orchard Core documentation</a> reveals the simple steps that most developers overlook when trying to get a custom module up and running.</p><p><img alt="How to create and install a custom module" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260605/create-and-install-a-custom-module-guide.png"></p><h3>Category filtering for Deployment Steps</h3><p>If you have the <em>Workflows</em> feature enabled, you can let users visually implement business rules using flowchart diagrams. Whenever you add events or tasks to your workflow, the modal organizes them into categories, and you also have a filter to find the next executable step more easily.</p><p>And this is a nice, helpful experience for users, so why don't we have it for the deployment steps too? <a href="https://github.com/MikeAlhayek" target="_self">Mike Alhayek</a> thought that the same UI could be helpful when adding <em>Deployment Steps</em> to <em>Deployment Plans</em>. To check it out, head to <em>Tools -&gt; Deployments -&gt; Plans</em> and click on the <em>Add Deployment Plan</em> button. Give it a name, then add steps to your plan. And as you can see on the screen below, the <em>Available Steps</em> modal now also shows categories, helping you find the step you want to add to your plan much more quickly.</p><p><img alt="Category filtering for Deployment Steps" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260605/category-filtering-for-deployment-steps.png"></p><h3>Demos</h3><h4>New visual Layout Editor for Orchard Core</h4><p>This time, we will see a visual drag-and-drop editor for arranging content type editor fields into tabs, cards, and columns in Orchard Core. Here you can find <a href="https://github.com/Buzz-Interactive/Buzz.OrchardCore.EditorLayout" target="_self">the repository for the Editor Layout feature</a> developed by <a href="https://github.com/buzznick" target="_self">Nick Jackson</a>.</p><p>By default, Orchard Core renders all parts and fields on a content type's editor in a single flat list. This module lets you organize them into a structured layout using a drag-and-drop interface, without writing any placement.json or code.</p><p>So, after adding this module to your Orchard Core web project as a project reference, we can set up our site. For the demo, we used the <em>Blog</em> recipe. Once our site is up, we need to enable the <em>Editor Layout</em> feature under <em>Configuration -&gt; Features</em>. Let's try this out by modifying the content definition of the predefined <em>Blog Post</em> content type. To do that, we navigated to <em>Content -&gt; Content Definition -&gt; Content Types,</em> then clicked <em>Edit</em> next to the <em>Blog Post</em> content type. At the bottom of the content type editor, we will find a button labeled <em>Editor Layout</em>. Click on it and use the switch to enable the editor layout, which shows us a visual representation of what we can build in the editor.</p><p><img alt="Blog Post editor layout" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260605/blog-post-editor-layout.png"></p><p>Here we can arrange our parts and fields:</p><ul><li>Add tabs to create tabbed sections on the editor.</li><li>Add cards within a tab to group fields in a bordered card.</li><li>Add columns within a tab or card to place fields side by side.</li><li>Drag items from the Available Items sidebar into tabs, cards, or columns.</li><li>Reorder items by dragging them within or between containers.</li></ul><p>First, we added a new column to the <em>Content</em> card placed on the <em>Content</em> tab. It means we now have two columns in the <em>Content</em> card, and both columns will be set to 50% width by default to fill the space. But of course, we can change the width if we want. Once we have that, we move the <em>Banner Image</em> field to this new column inside the <em>Content</em> card.</p><p>We can also add new tabs by clicking on the <em>Add Tab</em> button. In the <em>Add Tab</em> modal, we can set the name of the new tab. We decided to move the <em>Autoroute Part</em> to the default <em>Content</em> card of this newly created <em>Settings</em> tab. We can easily do that by selecting the <em>Autoroute</em> on the left and dropping this into this card. Orchard will automatically notice that we have already used this part in the <em>Content</em> tab and remove it from there.</p><p>Save this editor layout and edit our predefined <em>Blog Post</em> content item to check how our new editor for this content type will look. As you can see, the blog post editor reflects the layout we set up.</p><p><img alt="Editor Layout" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260605/editor-layout.gif"></p><p>And you can build a much more complex editor by using this feature! If you are curious about how you can do that, <a href="https://www.youtube.com/watch?v=nLqRLybkl9s" target="_self">head to YouTube for a recording</a>!</p><p class="embed-container"><iframe width="840" height="473" src="https://www.youtube-nocookie.com/embed/nLqRLybkl9s" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" spellcheck="false"></iframe></p><h2>News from the community</h2><h3>Orchard Harvest 2026 Early Bird tickets!</h3><p>We're excited to open registration for Orchard Harvest 2026!</p><p>This year, we've also created a short "convince your boss" one-pager to help you make the case for attending. It highlights the practical takeaways, business value, and networking opportunities waiting at the event.</p><p>If you want to learn from real-world Orchard Core use cases, get a better sense of where the platform is heading, and connect with experts and active community members, this is for you. We'll be sharing this year's speakers and topics over time, so stay tuned!</p><p><a href="https://www.tickettailor.com/events/lombiqtechnologiesltd/2247098" target="_self">Secure your spot today for the early bird pricing</a> and get ready to level up your skills at Orchard Harvest!</p><p><img alt="Orchard Harvest 2026" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260605/orchard-harvest-2026-pager.jpg"></p><h3>Orchard Dojo Newsletter</h3><p>Lombiq's Orchard Dojo Newsletter has 416 subscribers! We have started this newsletter to keep the Orchard community informed about the latest platform news. By subscribing to this newsletter, you will receive an email whenever a new post is published to Orchard Dojo, including <em>'This Week in Orchard'</em>, of course.</p><p>Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to <a href="https://orcharddojo.us12.list-manage.com/subscribe?u=32f819a768237590e479c9d0a&amp;id=039db8f13f">subscribe here</a>!</p><h5>If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of <a href="https://www.youtube.com/watch?v=g--d4HCA1Fc" target="_self">this Orchard meeting</a>!</h5>]]></description>
      <pubDate>Fri, 05 Jun 2026 09:00:14 GMT</pubDate>
      <guid isPermaLink="true">https://orcharddojo-net-staging.lombiq.com/blog/orchard-harvest-2026-early-bird-tickets-exploring-orchard-core-s-next-gen-visual-layout-editor-feature-this-week-in-orchard-05-06-2026</guid>
    </item>
    <item>
      <title>Let Your AI Agents Talk to Each Other - A2A in Orchard Core, Who Are We Building the New OrchardCore.net For? - This week in Orchard (29/05/2026)</title>
      <link>https://orcharddojo-net-staging.lombiq.com/blog/let-your-ai-agents-talk-to-each-other-a2a-in-orchard-core-who-are-we-building-the-new-orchardcore-net-for-this-week-in-orchard-29-05-2026</link>
      <description><![CDATA[<h2>Orchard Core updates</h2><h3>Sort user roles alphabetically in the admin UI</h3><p><a href="https://github.com/gvkries" target="_self">Georg von Kries</a> made this change to ensure that user roles are consistently displayed in alphabetical order across the admin interface. This affects role filters, user edit forms, and user role displays, improving usability and readability. Let's see some samples for this!</p><p>If you navigate to the admin UI of Orchard Core and head to <em>Access Control -&gt; Users</em>, you can see all of the available users in your site. If you hit the <em>Role</em> dropdown, you can see the <em>Filter by role</em> list, where the roles are now ordered alphabetically. And if you hit <em>Edit</em> near any of the users, you can see the list of the roles that you can assign to the currently-selected user. As you can see, the roles here are also ordered alphabetically.</p><p><img alt="Sort user roles alphabetically in admin UI" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260529/sort-user-roles-alphabetically-in-admin-ui.png"></p><h3>Add DocumentsAddedOrUpdated and DocumentsDeleted events to IDocumentIndexHandler</h3><p><a href="https://github.com/MikeAlhayek" target="_self">Mike Alhayek</a> added new events needed to allow other projects to implement the <em>IDocumentIndexHandler</em> for synchronization, such as when an index is updated or when another data source is updated. It means these events help keep external systems in sync with changes to the document index.</p><p>The news events are:</p><ul><li><strong>DocumentsAddedOrUpdatedAsync</strong>, that notifies the handler after documents have been added to or updated in a provider-specific index.</li><li><strong>DocumentsDeletedAsync</strong>, that notifies the handler after documents have been removed from a provider-specific index.</li></ul><p>If we check it out quickly, we may notice how these new events are utilized across Orchard Core. As you may know, we have three different index managers in Orchard to support Lucene, Elasticsearch, and Azure AI Search. If we check out one, for example, the <em>LuceneIndexManager.cs</em>, you can see how we utilize the new events at the end of the <em>DeleteDocumentsAsync</em> and <em>AddOrUpdateDocumentsAsync</em> methods.</p><p><img alt="Utilizing new events in LuceneIndexManager" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260529/documentsaddedorupdated-and-documentsdeleted-events-to-idocumentindexhandler.png"></p><h3>Demos</h3><h4>Let Your AI Agents Talk to Each Other - A2A in Orchard Core</h4><p>One of the issues you will notice is that the more code you write using AI, the more you couple your code with your system. Long system prompts in your code come really nasty, really quickly if you have a whole lot of them. <a href="https://github.com/MikeAlhayek" target="_self">Mike Alhayek</a> created a structure that lets you define AI templates for prompts and profiles. Let's see an example for each of them!</p><p>Prompt templates are discovered from module files and other registered Orchard template providers. The common Orchard pattern is to place them in a module under <em>Templates/Prompts/</em>. You can find one here, called <a href="https://github.com/CrestApps/CrestApps.OrchardCore/blob/main/src/Modules/CrestApps.OrchardCore.Omnichannel.Sms/Templates/Prompts/sms-conclusion-analysis.md" target="_self">SMS Conclusion Analysis</a>.</p><p>The <em>Prompts</em> folders contain markdown files with prompts that support Liquid to generate the system prompt. So, you don't have to define it in the code. You can see that they contain a <em>title</em>,<em>a description</em>, etc., and, of course, the <em>prompt</em> itself. The good thing about that is you don't really have to couple your code with prompts. Everything is separated, and with the help of Liquid, it's really helpful because we don't have to have system code all over the place, and we can reuse it or inject one into another.</p><p><img alt="Prompt template" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260529/promp-template.png"></p><p>The other one is a set of templates for AI Profiles, which are very similar in structure. AI profile templates are the Orchard Core-friendly way to stamp out repeatable AI profile configurations inside the admin UI and recipes. <a href="https://github.com/CrestApps/CrestApps.OrchardCore/blob/main/src/Modules/CrestApps.OrchardCore.AI/Templates/Profiles/executor-agent.md" target="_self">Here you can see a sample of it</a>, this one called <em>Executor Agent</em>. It's preconfigured; you can just apply it.</p><p><img alt="Profile template" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260529/profile-template.png"></p><p>Now let's see how you can use these along with another new feature called the <em>Agent-to-Agent Protocol (A2A)</em>. The A2A modules bring the Agent-to-Agent protocol to Orchard Core, enabling tenants to connect to remote agents or expose local agent profiles to other clients. We will demo all of these by navigating to the admin UI and clicking the <em>Add Profile</em> button on the <em>Artificial Intelligence -&gt; Profiles</em> page. Here, you will notice the new <em>Apply Template</em> dropdown, which contains predefined templates from the markdown files. We don't need to use them, but if we do and select one, it prefills everything based on the template right after we click on the <em>Apply</em> button. Obviously, you can override and change everything here that you want.</p><p><img alt="Using a Profile template" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260529/using-a-profile-template.png"></p><p>If you notice, there is a new profile type, called <em>Agent</em>. By creating a new profile type called <em>Agent</em>, you're creating an agent accessible via the A2A protocol. Before accessing that profile, we need to enable the <em>Agent-to-Agent (A2A) Host</em> feature, which exposes all AI Agent profiles through the A2A protocol, enabling external agents and clients to discover and communicate with locally hosted agents.</p><p>Now we open another app provided by the <a href="https://github.com/CrestApps/CrestApps.OrchardCore" target="_self">AI Suite</a> called <em>A2AClientSample</em>. The easiest way to have this is to set the <em>CrestApps.Aspire.AppHost</em> as the startup project of the solution, and run it. It will start an Aspire host, which will also set up this sample project for you. Once you have it, click on the <em>Go to Agents</em> button to discover all agents exposed by the A2A host, view their skills, and send messages. Here you can see that we created two agents, the <em>Planner Agent</em> and the <em>Research Agent,</em> via profile templates. We can access those two via the A2A protocol and send prompts to them using the <em>Message text</em> area.</p><p><img alt="A2A Client" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260529/agents-a2a-protocol.png"></p><p>And that's still not all of it! If you want to see these features in action, <a href="https://www.youtube.com/watch?v=aMVt_4RqDgc" target="_self">head to YouTube for a recording</a> by <a href="https://github.com/MikeAlhayek" target="_self">Mike Alhayek</a>!</p><p class="embed-container"><iframe width="840" height="473" src="https://www.youtube-nocookie.com/embed/aMVt_4RqDgc" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" spellcheck="false"></iframe></p><h2>News from the community</h2><h3>Who Are We Building the New OrchardCore.net For?</h3><p><a href="https://github.com/buzznick" target="_self">Nick Jackson</a> started a proposal to identify the target audience for a redesigned <a href="https://orchardcore.net/" target="_self">OrchardCore.net website</a>, which identifies two main groups.</p><p>The primary audience is the .NET Developers, who have already chosen .NET and are evaluating Orchard Core as a framework to avoid building common features (user accounts, permissions, multi-tenancy, etc.) from scratch. Three personas are outlined: architects/tech leads, developers building sites or products, and existing contributors. Key competitors named are Umbraco (for content sites) and abp.io (for business applications). These users want to quickly assess code quality, maintenance health, getting-started steps, and built-in features.</p><p>The secondary audience is the Business Decision-Makers, people who fund or approve platform choices but don't write code, like agency owners, product managers, CTOs, and clients whose agency chose Orchard Core for them. They care about cost, longevity, licensing, hiring availability, and plain-language explanations of what the platform does.</p><p>The core design philosophy is that, rather than trying to appeal to all developers, the site deliberately focuses on the .NET audience, so every page can be specific and relevant by using .NET terminology, naming .NET alternatives, and showing .NET code instead of being vague for everyone.</p><p>Who should the <a href="https://orchardcore.net/" target="_self">OrchardCore.net</a> redesign speak to? Take a look at our audience proposal and share your thoughts. Do you agree with the personas? Are we missing anyone? Chime in, push back, and help shape the redesign's direction <a href="https://github.com/orgs/orchardCMS/discussions/19264" target="_self">in this GitHub discussion</a>.</p><p><img alt="Orchard Core website renewal" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260529/orchard-core-website-renewal.png"></p><h3>Orchard Dojo Newsletter</h3><p>Lombiq's Orchard Dojo Newsletter has 417 subscribers! We have started this newsletter to keep the Orchard community informed about the latest platform news. By subscribing to this newsletter, you will receive an email whenever a new post is published to Orchard Dojo, including <em>'This Week in Orchard'</em>, of course.</p><p>Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to <a href="https://orcharddojo.us12.list-manage.com/subscribe?u=32f819a768237590e479c9d0a&amp;id=039db8f13f">subscribe here</a>!</p><h5>If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of <a href="https://www.youtube.com/watch?v=g--d4HCA1Fc" target="_self">this Orchard meeting</a>!</h5>]]></description>
      <pubDate>Fri, 29 May 2026 11:30:17 GMT</pubDate>
      <guid isPermaLink="true">https://orcharddojo-net-staging.lombiq.com/blog/let-your-ai-agents-talk-to-each-other-a2a-in-orchard-core-who-are-we-building-the-new-orchardcore-net-for-this-week-in-orchard-29-05-2026</guid>
    </item>
    <item>
      <title>How Does AI Stay Personalized Across Sessions? Orchard Harvest 2025 recordings are up! - This week in Orchard (22/05/2026)</title>
      <link>https://orcharddojo-net-staging.lombiq.com/blog/how-does-ai-stay-personalized-across-sessions-orchard-harvest-2025-recordings-are-up-this-week-in-orchard-22-05-2026</link>
      <description><![CDATA[<h2>Orchard Core updates</h2><h3>File Upload Limit documentation</h3><p>There was a question about how to set file upload size limits, and we came up with an idea to have a global solution so we don't have to set custom limits every time we create new actions. <a href="https://github.com/hishamco" target="_self">Hisham Bin Ateya</a> added a new section to the <a href="https://docs.orchardcore.net/en/latest/reference/modules/Media/#file-upload-limit" target="_self">Orchard Core documentation</a> explaining how file upload limits work and how to customize them.</p><p><img alt="File upload limit documentation" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260522/file-upload-limit-documentation.png"></p><h3>New Transliterate Liquid Filter</h3><p><a href="https://github.com/urbanit" target="_self">Sotiris Roussos</a> introduced a new <em>transliterate</em> Liquid filter to the <em>OrchardCore.Liquid</em> module. It converts Unicode text (e.g., Greek, Cyrillic, Arabic, Chinese, etc.) into its closest ASCII/Latin representation using the <a href="https://github.com/anyascii/anyascii" target="_self">AnyAscii library</a>. It also means that, from now on, the <em>Slugify</em> string filter transliterates the provided string. The same applies to the <em>Media Slugify</em> module (if enabled) for Media files. Let's see how this works!</p><p>We set up our site using the <em>Agency</em> recipe, which enables the <em>Templates</em> module by default and provides a template for the <em>Landing Page</em> content type, which we can use for our small presentation. But first, don't forget to enable the <em>Localization</em> feature, as the <em>transliterate</em> filter is part of it.</p><p>Another thing to mention is the <em>Media Slugify</em> module, which transforms newly created folders and files into SEO-friendly versions by generating slugs. By default, transliteration happens when the feature is enabled. But there are configuration values you can use to enable or disable transliteration. You can read more about it in the <a href="https://docs.orchardcore.net/en/latest/reference/modules/Media.Slugify/" target="_blank">Media Slugify module's documentation</a>.</p><p>But for now, let's navigate to <em>Design -&gt; Templates</em> and edit the predefined <em>Content__LandingPage</em> template. As you can see, we used the <em>transliterate</em> filter in line 6, which transliterates the non-Latin text to <em>Ellinika</em>.</p><p><img alt="New Transliterate Liquid Filter" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260522/new-transliterate-liquid-filter.png"></p><h3>Demos</h3><h4>How Does AI Stay Personalized Across Sessions?</h4><p>The <em>AI Memory</em> feature of the <a href="https://orchardcore.crestapps.com/docs/intro" target="_self">AI Suite for Orchard Core</a> provides persistent, user-scoped AI memory, enabling the AI to remember durable, non-sensitive preferences and background details for authenticated users across multiple conversations.</p><p>To test this quickly, <a href="https://github.com/CrestApps/CrestApps.OrchardCore" target="_blank">clone the repository from GitHub</a>, then head to Orchard's admin UI and select <em>Tools -&gt; Features</em>. Here you will find three features related to memory:</p><ul><li><strong>AI Memory</strong>: Provides persistent, user-scoped AI memory for AI profiles and chat interactions.</li><li><strong>AI Memory indexing using Azure AI Search</strong>: Provides services to index AI memory in Azure AI Search indexes.</li><li><strong>AI Memory indexing using Elasticsearch</strong>: Provides services to index AI memory in Elasticsearch indexes.</li></ul><p>For now, we want authenticated user memories to be stored in the core AI Memory feature and indexed into Elasticsearch for semantic lookup, so we will enable the <em>AI Memory indexing using Elasticsearch</em> feature. After, we have to make sure that we have an AI Memory (Elasticsearch) index set up (we can do that under <em>Search -&gt; Indexes</em>).</p><p>But why is it good for us, or what's the advantage of using AI Memory? We can use memory for durable, non-sensitive information, like:</p><ul><li>response style preferences,</li><li>formatting preferences,</li><li>active projects or workstreams,</li><li>recurring topics the user commonly asks about,</li><li>stable background context that the user explicitly wants remembered.</li></ul><p><img alt="Set up an AI Profile" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260522/set-up-ai-profile.png"></p><p>OK, now let's see it in action using a <em>Profile</em>. Head to <em>Artificial Intelligence -&gt; Profiles</em> and create a new one or edit an existing <em>AI Profile</em>. Here, you will notice that we have ticked the <em>Enable user memory</em> checkbox. Now start a chat with this profile and ask something like, <em>"Who am I?</em>"</p><p>As you can see, the profile has information about me; it knows my name because it's stored in the memory (this information comes from the internal memory).</p><p><img alt="Chat with an AI Profile" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260522/chat-with-a-profile.png"></p><p>And as always, if you want to see this feature in action, <a href="https://www.youtube.com/watch?v=dsjxCNQrbGE" target="_self">head to YouTube for a recording</a> by <a href="https://github.com/MikeAlhayek" target="_self">Mike Alhayek</a>!</p><p class="embed-container"><iframe width="840" height="473" src="https://www.youtube-nocookie.com/embed/dsjxCNQrbGE" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" spellcheck="false"></iframe></p><h2>News from the community</h2><h3>Orchard Harvest 2025 recordings are up!</h3><p>The 8th Orchard Harvest Conference was held in Prague on the 11th and 12th of November, 2025. It was an excellent opportunity to share knowledge, discuss development plans and ideas, and, foremost, meet the community.</p><p>We recorded every session, and they are now available on YouTube (the last recording will be available in a few hours)! If you haven't done so yet, <a href="https://www.youtube.com/@OrchardCore" target="_self">subscribe to this YouTube channel</a>, and you can find the playlist of last year's Harvest recordings <a href="https://www.youtube.com/playlist?list=PLpCsCyd254FodB6zUxTUj7g3hGIeEotvB" target="_self">here</a>.</p><p><img alt="Orchard Harvest 2025 Recordings" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260522/orchard-harvest-2025-playlist.png"></p><h3>Orchard Dojo Newsletter</h3><p>Lombiq's Orchard Dojo Newsletter has 417 subscribers! We have started this newsletter to keep the Orchard community informed about the latest news on the platform. By subscribing to this newsletter, you will receive an email whenever a new post is published to Orchard Dojo, including <em>'This Week in Orchard'</em>, of course.</p><p>Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to <a href="https://orcharddojo.us12.list-manage.com/subscribe?u=32f819a768237590e479c9d0a&amp;id=039db8f13f">subscribe here</a>!</p><h5>If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of <a href="https://www.youtube.com/watch?v=g--d4HCA1Fc" target="_self">this Orchard meeting</a>!</h5>]]></description>
      <pubDate>Fri, 22 May 2026 09:22:44 GMT</pubDate>
      <guid isPermaLink="true">https://orcharddojo-net-staging.lombiq.com/blog/how-does-ai-stay-personalized-across-sessions-orchard-harvest-2025-recordings-are-up-this-week-in-orchard-22-05-2026</guid>
    </item>
    <item>
      <title>Content Transfer module, a new website using Orchard Core - This week in Orchard (15/05/2026)</title>
      <link>https://orcharddojo-net-staging.lombiq.com/blog/content-transfer-module-a-new-website-using-orchard-core-this-week-in-orchard-15-05-2026</link>
      <description><![CDATA[<h2>Orchard Core updates</h2><h3>SMS Health Checks feature</h3><p>The <em>Health Checks</em> module enables the health checks feature from ASP.NET Core, and the health check endpoint is available at <em>/health/live</em> for each tenant. This module now includes a health check that reports the status of the Twilio SMS service. Thanks for the contribution by <a href="https://github.com/hishamco" target="_self">Hisham Bin Ateya</a>!</p><p>To make this work, don't forget to enable <em>Health Checks</em> and <em>SMS</em> features under <em>Tools -&gt; Features</em>. Once you have that, head to <em>Settings -&gt; Communication -&gt; SMS</em> and set up your Twilio Account Info on the <em>Twilio</em> tab. As you can see here, the status is <em>Healthy</em>, which means we set up our Twilio account correctly and Twilio itself is working.</p><p><img alt="SMS Health Check feature" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260515/sms-health-check-feature.png"></p><h3>Reduce allocations by using .TryGet&lt;&gt; method over .As&lt;&gt;</h3><p>The <em>ISite</em> interface now includes a new method, <em>bool TryGet&lt;T&gt;(out T settings)</em>, to support checking for optional site settings without allocating a new instance when a settings object is missing.</p><p>This is a minor breaking change for custom <em>ISite</em> implementations, which must now implement this method.</p><p>So, if you check out the changes in Orchard, you can see that we prefer <em>.TryGet&lt;&gt;</em> method over <em>.As&lt;&gt;</em> to reduce allocations, and prefer <em>.TryGet&lt;&gt;</em> and <em>.GetOrCreate&lt;&gt;</em> extensions to improve readability. Thanks for the contribution by <a href="https://github.com/MikeAlhayek" target="_self">Mike Alhayek</a>!</p><p><img alt="Reduce allocations" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260515/reduce-allocations.png"></p><h3>Demos</h3><h4>Content Transfer module</h4><p>This time, <a href="https://github.com/MikeAlhayek" target="_self">Mike Alhayek</a> introduces the new <em>Content Transfer</em> module, which provides bulk import and export of content items using Excel files. You can find the code for this module <a href="https://github.com/OrchardCMS/OrchardCore/pull/14630" target="_self">in this pull request</a>.</p><p>First, let's head to <em>Tools -&gt; Features</em> and enable the <em>Content Transfer</em> module to import and export content to and from Excel files. This allows us to configure a content type to make it importable and exportable.</p><p>Let's say we want to make the <em>Article</em> content type importable and exportable. To do that, we need to navigate to <em>Design -&gt; Content Definition -&gt; Content Types</em> and hit <em>Edit</em> near the <em>Article</em> one. Put a tick in the <em>Allow bulk import</em> and <em>Allow bulk export</em> checkboxes.</p><p><img alt="Allow Bulk import export" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260515/allow-bulk-import-export.png"></p><p>Once you have that, you can go to <em>Content</em>, where you will see the two new options: <em>Bulk Export</em> and <em>Bulk Import</em>. We want to export, so we select the <em>Bulk Export</em> option and click the <em>Export</em> button in the upper right. We select the <em>Article</em> from the <em>Content type</em> drop-down (that's the only content type we can export right now), and if we select <em>Partial Export</em> as the <em>Export scope</em>, we can filter down the data. We can filter by owners or version, or specify the date range for created and modified. For now, we simply export all published and click the <em>Export Data</em> button.</p><p><img alt="Bulk export" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260515/bulk-export.png"></p><p>When you do that, it provides you with these files in two ways. If there are only a few items, it returns the file in real time. If there are too many, it will queue them for later access. And to access it later, you can use the list on the <em>Bulk Export</em> page to download the data you require.</p><p>If we want to import data, we need to select the <em>Bulk Import</em> option from the menu. Hitting the <em>Import</em> button in the top-right corner lets you select the content type you want to import. First of all, based on the content type, you can see the file's requirements, such as accepted file formats and file size limits. Under you can see the column requirements, such as which fields are required. You can also download a template to see a sample of the accepted file format.</p><p><img alt="Bulk import" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260515/bulk-import.png"></p><p>Hitting <em>Upload</em> will start importing the records in the background. At the list on the <em>Bulk Import</em> page, you can see the progress of the import, and the errors if you have any (like "<em>Your permalink is already in use</em>" if the <em>AutoroutePart_Path</em> contains an existing permalink).</p><p><img alt="Imported content" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260515/imported-content.png"></p><p>As you can see, the <em>Bulk Import</em> page shows we imported 232 articles, and the process completed without any errors. If we navigate to <em>Content -&gt; Content Items</em>, we can see several Article content items that we just created a few minutes ago.</p><p>And as always, if you want to see this feature in action, <a href="https://www.youtube.com/watch?v=cZMVh52DspE" target="_self">head to YouTube for a recording</a>!</p><p class="embed-container"><iframe width="840" height="473" src="https://www.youtube-nocookie.com/embed/cZMVh52DspE" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" spellcheck="false"></iframe></p><h2>News from the community</h2><h3>A new website using Orchard Core: JobsIreland</h3><p>At JobsIreland, they aim to help people to get jobs and help employers connect with the right people. Whether you're looking for your next job or finding the right person to join your team, JobsIreland can help you. <a href="https://showorchard.com/gallery/business/jobsireland" target="_self">Check out their Orchard Core site here</a>!</p><p><img alt="JobsIreland Show Orchard" src="/media/BlogPost/this-week-in-orchard-posts/2026/20260515/jobs-ireland.jpg"></p><p>If you are interested in more websites using Orchard and Orchard Core, don't forget to visit <a href="https://showorchard.com/" target="_self">Show Orchard</a>. Show Orchard is a website that showcases representative Orchard CMS and Orchard Core websites from around the internet. Ryan Drew Burnett started it, but since he no longer works with Orchard, it is now maintained by our team at <a href="https://lombiq.com/" target="_self">Lombiq Technologies</a>. Oh, and in case you haven't heard about it yet, Show Orchard is also running on Orchard Core in <a href="https://dotnest.com/" target="_self">DotNest</a> for more than two years now! Here's the <a href="https://dotnest.com/blog/show-orchard-case-study-migrating-an-orchard-1-dotnest-site-to-orchard-core" target="_self">case study</a> about how we migrated it from Orchard 1!</p><p>If you're considering migrating your Orchard 1 website to Orchard Core, this is an excellent time. Should you have any questions or encounter challenges, don't hesitate to reach out to us. We're always ready to bring our expertise to your unique project needs. <a href="https://dotnest.com/contact-us" target="_self">Get in touch with us today</a>, and let's start making your Orchard Core website even better!</p><h3>Orchard Dojo Newsletter</h3><p>Lombiq's Orchard Dojo Newsletter has 418 subscribers! We have started this newsletter to keep the Orchard community informed about the latest news on the platform. By subscribing to this newsletter, you will receive an email whenever a new post is published to Orchard Dojo, including <em>'This Week in Orchard'</em>, of course.</p><p>Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to <a href="https://orcharddojo.us12.list-manage.com/subscribe?u=32f819a768237590e479c9d0a&amp;id=039db8f13f">subscribe here</a>!</p><h5>If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of <a href="https://www.youtube.com/watch?v=tzAyFAxyJXE" target="_self">this Orchard meeting</a>!</h5>]]></description>
      <pubDate>Fri, 15 May 2026 11:43:10 GMT</pubDate>
      <guid isPermaLink="true">https://orcharddojo-net-staging.lombiq.com/blog/content-transfer-module-a-new-website-using-orchard-core-this-week-in-orchard-15-05-2026</guid>
    </item>
  </channel>
</rss>