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

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

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

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

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

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

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

Ready to explore? Let's dive in!

Latest tutorials

Featured tags

AI
IIS
MCP
API
SMS
SEO
All tags >

How we reduced our app's server-side latency in Azure by 98% while lowering cost by 28%

Sounds like clickbait, right? Fair enough, here's the TL;DR: We moved our Azure Web App from the Windows S1 plan to the new Linux P0v4 plan. Read on for the details!How we used to run our Orchard Core apps in AzureThose Orchard Core web apps of ours that aren't too resource-hungry (like the app running Orchard Dojo) we've been running on the Windows S1 plan of App Services. This now legacy plan provides 1 vCPU, 1,75 GB of RAM, and HDD local storage for a cost of USD 73/month. Not a lot of processing power, but it was enough if your requirements weren't high either. And it, as you may have guessed it, runs on a Windows server.We've done measurements before, and the Linux pair of this App Service plan performed worse. The newer Premium tiers, with newer hardware and SSD storage performed better, but were too expensive for our use-cases and the added performance wasn't necessary. However, two things happened since then: The S1 tier of App Services became deprecated, and a new, v4 Premium tier was rolled out. What's more, the lowest plan of Premium v4, P0v4, is actually cheaper at USD 53,3/month! This is a 28% cost reduction right off the bat, and it promised better performance, too, so we had to try it out. And this was a great success!Windows S1 App Services — the baselineThe test subject was our Lombiq Tenants Core app. This runs most of our own websites, including Orchard Dojo, dotnest.com (but not the sites created on DotNest), and our company website. This is how its performance looked under the Windows S1 plan: Not great, but not terr... No, at face value, it's actually quite terrible, with the 99th percentile being at 18 seconds for generating a server-side response. However, digging into the details revealed that the vast majority of requests that users cared about (e.g. excluding error pages that spambots hit) performed on an acceptable level, within 1-200 ms. Now, this is indeed not great, but not terrible either. Still, the average response time for all requests, even if this includes ones that no real person was seeing and one-off outliers, was 3,7 s. Can we fix this?The charts in this post are from Azure Application Insights, BTW, Azure's app monitoring service. We use it enhanced by our open-source Lombiq Hosting - Azure Application Insights for Orchard Core module, check it out!Linux wasn't always betterAn ASP.NET Core web app, especially in its source form but even when compiled to binaries, consists of a lot of small files, and it constantly works with a lot of small files too (like stylesheets, images). You'd expect that this is a clear case where Linux (with its usually used ext4 file system) has an advantage over Windows (with NTFS). Linux also generally has a lower resource footprint in itself, leaving more for the web app. So, it should just be faster, right? Nope!At least, it wasn't faster at the time when we compared the Windows and Linux S1 tiers. The average server-side latency was about 68% worse under Linux, although for a lower price. The tiny savings weren't worth the worse UX.But then the P0v4 App Service plan came.Migrating to Linux P0v4 App Services and reducing latency by 98%The new P0v4 App Service plan, which came out of preview and entered general availability in September 2025, offers still 1 vCPU but 4 GB RAM, and SSD storage. It also contains the latest hardware all around. So, we checked out how it performs in real life.Moving from a Windows to Linux App Service Plan is a manual process: You have to create a new App Service, configure every service connection and automation to use it instead of the old one, and deploy your app to it anew. It's a chore, but you have to do it only once. And this is your reward: As you can see, 50th percentile was reduced to only 39 ms from 226, and the 99th percentile from 17,8 s to 738 ms. The average response time on the Windows S1 App Service was 3,7 s, while on the Linux P0v4 one 77,5 ms. Let me write it out in a more obvious way: 3700 ms vs 77,5. That's a 98% reduction in latency! Which is absolutely awesome. There must be multiple generations between the CPUs and RAM of the S1 and P0v4 tiers, and I guess having an SSD and newer everything else helps too. More RAM surely does as well, although that was always enough before too.ConclusionMy recommendation would be to keep an eye on the offering that Azure, or your hosting provider, has, because the cost of compute is constantly coming down while performance is going up. With clever and not always ethical tricks, providers try to keep you paying ever increasingly more. However, the reality of hardware advances should eventually be reflected in your monthly bill and your app's performance metrics — you might need to work for it, though.Do you also want better performance for your Orchard Core or any ASP.NET Core app? Contact us and we can take a look!

Elasticsearch improvements, hosting an Orchard Core application on Ubuntu VPS using GitHub Actions - This week in Orchard (19/09/2025)

All of our speakers and their introductions for Orchard Harvest are now available! The topics for this week are Elasticsearch improvements. See a demo about how you can host an Orchard Core application on Ubuntu VPS using GitHub Actions!

Orchard Harvest 2025 venue, new function to clone existing roles - This week in Orchard (05/09/2025)

We have the venue for the Orchard Harvest conference! Our topics for this week are simplifying security headers settings using tabs and a new function to clone existing roles. Don't forget to check out our Open-Source Orchard Core Extensions project, which is updated to the latest and greatest 2.2.0 Orchard Core version.

Ability to delete Content Part and Content Type from the list page, Orchard Core-integrated AI modules now available on DotNest - This week in Orchard (22/08/2025)

Secure your early bird ticket to the Orchard Harvest conference! Our topics for this week are adding an ability to delete Content Part and Content Type from the list page, and adding an AdditionalProperties collection for BuildDocumentIndexContext! Oh, and have we mentioned that the Orchard Core-integrated AI modules are now available on DotNest? Without further ado, let's get started!

Orchard Harvest 2025 tickets on sale, add Vector and Complex document type support to allow indexing complex objects - This week in Orchard (08/08/2025)

Secure your early bird ticket to the Orchard Harvest conference! Our topics for this week are to allow setting whether to fall back to the parent culture or not through UI, and add Vector and Complex document type support to allow indexing complex objects! Without further ado, let's get started!

Migrate the OpenID module to OpenIddict 7.0, Orchard CMS Dev-Time Orchestration with ASP.NET Aspire - This week in Orchard (01/08/2025)

This week, we would like to show you a tutorial about Orchard CMS Dev-Time Orchestration with ASP.NET Aspire! But first, check out the fix for the native validation when the invalid input is hidden and the updated OpenID module to OpenIddict 7.0! Without further ado, let's get started!