﻿<?xml version="1.0" encoding="utf-8"?><rss xmlns:a10="http://www.w3.org/2005/Atom" version="2.0"><channel><title>CodeArt: All Blog Posts</title><link>https://www.codeart.dk/blog/rss/</link><description>All current blog posts published by Allan Thraen on the CodeArt.dk site.</description><language>en</language><generator>CodeArt.dk</generator><item><guid isPermaLink="true">https://www.codeart.dk/blog/2026/5/announcing-piwikpro-optimizely-connector/</guid><link>https://www.codeart.dk/blog/2026/5/announcing-piwikpro-optimizely-connector/</link><category>Integrations</category><category>Web Content Management</category><category>Optimizely (Episerver)</category><category>Behavior Analytics</category><category>Addon Development</category><category>.NET Development</category><title>Piwik PRO Connector for Optimizely CMS — Now on NuGet (and Yes, It Speaks Both 12 and 13)</title><description>Analytics has spent the last decade living in another tab — and what's in that tab usually isn't the full story. Between consent requirements, browser restrictions, and the gap between "what marketing wants to know" and "what the tracking script actually captures", most analytics setups end up describing about half the picture. The new Piwik PRO Connector for Optimizely CMS is now live on NuGet, dual-targeted for both CMS 12 (.NET 8) and CMS 13 (.NET 10) from the exact same package — and one of its quieter superpowers is making it dramatically easier to get rich Optimizely context (content type, language, audience membership, block impressions, plus whichever custom dimensions matter for your site) into Piwik PRO, so the dashboards finally know what they're looking at. Editors get analytics next to their content. Developers get a tracking API that doesn't require writing JavaScript by hand. And the privacy-first part comes for free, courtesy of Piwik PRO.</description><pubDate>Mon, 04 May 2026 20:09:31 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2026/4/a-new-chapter-focusing-on-ai-at-umage.ai</guid><link>https://www.codeart.dk/blog/2026/4/a-new-chapter-focusing-on-ai-at-umage.ai</link><category>Artificial Intelligence</category><title>A new chapter: focusing on AI at umage.ai</title><description>AI is starting to change how software is actually built and maintained. Not in theory — but in practice. This is the background for starting umage.ai.</description><pubDate>Tue, 21 Apr 2026 18:19:52 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2026/3/announcing-piwik-pro-.net-sdk</guid><link>https://www.codeart.dk/blog/2026/3/announcing-piwik-pro-.net-sdk</link><category>.NET Development</category><category>Behavior Analytics</category><category>Web Content Management</category><category>Integrations</category><category>Website Improvements</category><title>Announcing Piwik PRO .NET SDK</title><description>For years, developers have treated analytics as something external — a tool marketers use while developers stay focused on applications. But what if analytics data could become a first-class citizen in your .NET applications? That’s the idea behind the new Piwik PRO .NET SDK — a developer-friendly way to track events, query analytics using LINQ-style syntax, and integrate privacy-first analytics directly into modern .NET apps. At CodeArt we helped build the SDK and are now launching open source sample code, including a fully working Blazor sample, as well as good SDK documentation.</description><pubDate>Mon, 16 Mar 2026 11:31:07 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2026/3/ai-generated-optimizely-developer-newsletter/</guid><link>https://www.codeart.dk/blog/2026/3/ai-generated-optimizely-developer-newsletter/</link><category>Optimizely (Episerver)</category><category>Artificial Intelligence</category><category>.NET Development</category><title>AI Generated Optimizely Developer Newsletter</title><description>Updates in the Optimizely ecosystem are everywhere: blog posts, forums, release notes, NuGet packages, and documentation changes. This newsletter brings the important ones together in one place.</description><pubDate>Tue, 10 Mar 2026 19:51:35 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2026/3/packageexplorer-support-for-visual-builder-and-nested-items/</guid><link>https://www.codeart.dk/blog/2026/3/packageexplorer-support-for-visual-builder-and-nested-items/</link><category>Optimizely (Episerver)</category><category>Addon Development</category><category>Vision Demos &amp; Prototypes</category><category>C#</category><title>Inspect SaaS CMS Packages Without Losing Your Sanity (Package Explorer Update)</title><description>Optimizely export packages have quietly become more complex. Inline (nested) blocks in CMS 12 and PaaS solutions weren’t always displayed clearly, and with SaaS CMS—and soon CMS 13—Visual Builder introduces compositions, layout hierarchies, and display templates on top. This update to the Optimizely Package Explorer improves support across these scenarios, making it far easier to inspect and understand what’s actually inside your packages.</description><pubDate>Sun, 01 Mar 2026 19:47:18 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2026/2/using-headlesskit-to-build-a-head-for-an-optimizely-saas-cms-in-.net-10</guid><link>https://www.codeart.dk/blog/2026/2/using-headlesskit-to-build-a-head-for-an-optimizely-saas-cms-in-.net-10</link><category>C#</category><category>Vision Demos &amp; Prototypes</category><category>.NET Development</category><category>Web Content Management</category><category>Frontend Development</category><category>Optimizely (Episerver)</category><title>Using HeadlessKit to build a head for an Optimizely SaaS CMS in .NET 10</title><description>Headless has a tendency to promise freedom and deliver alignment meetings. Two codebases. Two sets of models. Two teams trying very hard not to drift apart. With Optimizely SaaS CMS, headless is mandatory. So instead of fighting it, I decided to flip it. What happens if we build the head first — properly, in .NET — and let the CMS adapt to that reality? That experiment became CodeArt.Optimizely.HeadlessKit - now available as open source.</description><pubDate>Thu, 19 Feb 2026 20:41:36 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2025/11/optimizely-package-explorer-now-with-extra-superpowers/</guid><link>https://www.codeart.dk/blog/2025/11/optimizely-package-explorer-now-with-extra-superpowers/</link><category>.NET Development</category><category>Web Content Management</category><category>Optimizely (Episerver)</category><category>Tips and Tricks</category><title>Optimizely Package Explorer: Now With Extra Superpowers</title><description>If you’ve ever opened a .episerverdata file and asked “What is in here?” (guilty as charged) — then this is your moment. We’ve given our open-source tool CodeArt.Optimizely.PackageExplorer a fresh update with new features and polish, so you can slice, dice and explore those content packages with ease. Grab some coffee (or your beverage of choice) and let’s dive in.</description><pubDate>Thu, 20 Nov 2025 20:27:49 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2025/11/meet-emma-falken--codearts-new-ai-writing-partner-still-powered-by-humans/</guid><link>https://www.codeart.dk/blog/2025/11/meet-emma-falken--codearts-new-ai-writing-partner-still-powered-by-humans/</link><category>Artificial Intelligence</category><category>Life as a Coder</category><title>Meet Emma Falken — CodeArt’s New AI Writing Partner (Still Powered by Humans)</title><description>I’m Emma, CodeArt’s new AI colleague. I write the words — the humans make sure they’re the right ones.</description><pubDate>Thu, 20 Nov 2025 20:07:31 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2025/8/opalytics-under-the-hood-pt.-2--from-piwik-pro-to-opal-and-why-i-rolled-my-own-tools-sdk</guid><link>https://www.codeart.dk/blog/2025/8/opalytics-under-the-hood-pt.-2--from-piwik-pro-to-opal-and-why-i-rolled-my-own-tools-sdk</link><category>.NET Development</category><category>Artificial Intelligence</category><category>Behavior Analytics</category><category>Optimizely (Episerver)</category><category>C#</category><category>Vision Demos &amp; Prototypes</category><title>Opalytics Under the Hood – How I wired Piwik PRO into Opal with .NET and JSON</title><description>In the previous post , I showed how Opalytics lets you ask human questions and get analytics answers. This time we’re going full dev-mode: OAuth tokens, discovery docs, tool calling—and a small detour where I didn’t use the official SDK and built my own attribute-based version instead.</description><pubDate>Thu, 28 Aug 2025 11:43:31 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2025/8/opalytics-turning-analytics-into-actionable-insights-with-opal--piwik-pro/</guid><link>https://www.codeart.dk/blog/2025/8/opalytics-turning-analytics-into-actionable-insights-with-opal--piwik-pro/</link><category>Optimizely (Episerver)</category><category>Behavior Analytics</category><category>Web Content Management</category><category>Artificial Intelligence</category><category>.NET Development</category><category>Vision Demos &amp; Prototypes</category><title>Opalytics: Talking to Your Analytics (So You Don’t Have to Look at Yet Another Dashboard)</title><description>My hackathon project for Optimizely OMVPs: plugging Piwik PRO into Opal, so you can just ask questions instead of fiddling with filters.</description><pubDate>Mon, 25 Aug 2025 15:04:03 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2025/5/adding-granular-editor-access-control-to-built-in-parts-of-optimizely-cms-12/</guid><link>https://www.codeart.dk/blog/2025/5/adding-granular-editor-access-control-to-built-in-parts-of-optimizely-cms-12/</link><category>Optimizely (Episerver)</category><category>.NET Development</category><category>Web Content Management</category><category>Tips and Tricks</category><category>C#</category><title>Adding granular editor access control to built-in parts of Optimizely CMS 12</title><description>A classic challenge in Optimizely CMS (well, really in any system I guess), is to ensure that the right people have the right access - and that potentially dangerous actions can't be accidentally done by unqualified users.</description><pubDate>Fri, 30 May 2025 11:31:25 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2025/5/scan-file-uploads-for-malware-in-episerveroptimizely-cms-11---episerver-forms/</guid><link>https://www.codeart.dk/blog/2025/5/scan-file-uploads-for-malware-in-episerveroptimizely-cms-11---episerver-forms/</link><category>.NET Development</category><category>Optimizely (Episerver)</category><category>C#</category><category>Tips and Tricks</category><title>Scan file uploads for Malware in EPiServer/Optimizely CMS 11 - EPiServer Forms</title><description>Do you have forms on your website where visitors can upload files? Perhaps CV's for job applications or documentation for claims, or other kind of applications or images? And have you thought about the risk of these files potentially containing malware right on your production webserver? A client of mine has this concern on an EPiServer (now Optimizely)  CMS 11 using the EPiServer Forms extension and I investigated and found an approach to handle it.</description><pubDate>Fri, 09 May 2025 14:08:19 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2025/4/opensource-release-new-package-explorer-for-optimizely-cms/</guid><link>https://www.codeart.dk/blog/2025/4/opensource-release-new-package-explorer-for-optimizely-cms/</link><category>Vision Demos &amp; Prototypes</category><category>Addon Development</category><category>Optimizely (Episerver)</category><title>Opensource release: New Package Explorer for Optimizely CMS</title><description>The import/export ".episerverdata" packages have been around as far as I can remember - and even though they might seem a bit outdated, it's still one of the most common ways to move content around today. But it can be quite a hassle to work with. I recently was inspired to build a tool that will hopefully make life a bit easier when dealing with the packages across versions.</description><pubDate>Wed, 09 Apr 2025 14:10:12 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2025/4/tracking-utm-parameters-in-optimizely-cms-forms/</guid><link>https://www.codeart.dk/blog/2025/4/tracking-utm-parameters-in-optimizely-cms-forms/</link><category>Optimizely (Episerver)</category><category>Web Content Management</category><category>Website Improvements</category><category>Tips and Tricks</category><category>C#</category><title>Tracking UTM Parameters in Optimizely CMS Forms</title><description>When you are spending your marketing dollars on social media / CPC campaigns, correctly attributing your leads is everything so you know where to invest more. Usually you can get this insight from your Marketing Automation or analytics - but I recently got a question if it's possible to also automatically add it to your Optimizely CMS forms. And of course it is. Here are two ways of doing that.</description><pubDate>Thu, 03 Apr 2025 05:00:21 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2024/8/series-headless-site-on-optimizely-graph-exploring-interesting-ways-we-can-query-the-content/</guid><link>https://www.codeart.dk/blog/2024/8/series-headless-site-on-optimizely-graph-exploring-interesting-ways-we-can-query-the-content/</link><category>.NET Development</category><category>Web Content Management</category><category>Optimizely (Episerver)</category><category>Information Retrieval</category><category>API Building</category><title>[Series: Headless Site on Optimizely Graph] Exploring interesting ways we can query the content</title><description>Look up in the sky! It's a bird! No, wait - it's Optimizely Graph! This is part 2 in the blog post series where we explore how a fully functioning headless site can be build in .NET core using Optimizely Graph, and in this post we'll see how Optimizely Graph is both a powerful search &amp; query engine (on par with good old Episerver Find) - but also how it can fully replace the content delivery API.</description><pubDate>Sat, 24 Aug 2024 12:44:54 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2024/6/new-series-building-a-.net-core-headless-site-on-optimizely-graph-and-saas-cms</guid><link>https://www.codeart.dk/blog/2024/6/new-series-building-a-.net-core-headless-site-on-optimizely-graph-and-saas-cms</link><category>Web Content Management</category><category>.NET Development</category><category>Optimizely (Episerver)</category><title>New Series: Building a .NET Core headless site on Optimizely Graph and SaaS CMS</title><description>Welcome to this new multi-post series where you can follow along as I indulge in yet another crazy experiment: Can we make our beloved Alloy site run as a headless site on top of Optimizely Graph (and SaaS CMS) using a mix of both MVC, Razor Pages and Blazor components - and can we make both the developer and editor experience as we are used to in classic Optimizely/Episerver sites? Let's find out!</description><pubDate>Fri, 14 Jun 2024 14:59:16 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2024/6/upgrade-to-optimizely-cms-12-issue-list-item-fields-have-become-required/</guid><link>https://www.codeart.dk/blog/2024/6/upgrade-to-optimizely-cms-12-issue-list-item-fields-have-become-required/</link><category>C#</category><category>Optimizely (Episerver)</category><title>Upgrade To Optimizely CMS 12 Issue: List item fields have become Required</title><description>There are many funny details to be aware of when upgrading from Episerver CMS 11 to Optimizely CMS 12. One of them that might feel a bit confusing is when your list items start to have all required fields in the UI. Here's how to fix it.</description><pubDate>Fri, 07 Jun 2024 11:42:29 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2023/12/christmas-countdown-1-the-grand-finale.-going-headless-without-using-your-head</guid><link>https://www.codeart.dk/blog/2023/12/christmas-countdown-1-the-grand-finale.-going-headless-without-using-your-head</link><category>Web Content Management</category><category>Optimizely (Episerver)</category><category>Frontend Development</category><category>Website Improvements</category><category>Tech Talk</category><title>Christmas Countdown: #1 The Grand Finale. Going headless without using your head!</title><description>In 2014 the term 'headless cms' was coined - and presented as a cool new 'feature' in the Web CMS industry. And it quickly became a hot buzzword for a few years later. In a few days it's 2024 and we can celebrate that it's been a concept for 10 years. Strangely, I still encounter new implementations that want to go 'headless' based on an almost religious belief that it's the new cool thing.</description><pubDate>Sat, 23 Dec 2023 06:00:31 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2023/12/christmas-countdown-2-were-live-that-means-were-done-right/</guid><link>https://www.codeart.dk/blog/2023/12/christmas-countdown-2-were-live-that-means-were-done-right/</link><category>Web Content Management</category><category>Optimizely (Episerver)</category><category>Website Improvements</category><category>Tech Talk</category><title>Christmas Countdown: #2 We're live! That means we're done, right?</title><description>They day you go live with your new website is naturally the culmination of months, sometimes years of work - and it's fine to celebrate. But #2 on this top 12 list of common pitfalls is to think that going live is the completion of the website. It's not. It's the start...</description><pubDate>Fri, 22 Dec 2023 06:00:35 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2023/12/christmas-countdown-3-nihs---not-invented-here-syndrome-in-real-life/</guid><link>https://www.codeart.dk/blog/2023/12/christmas-countdown-3-nihs---not-invented-here-syndrome-in-real-life/</link><category>.NET Development</category><category>Optimizely (Episerver)</category><category>Web Content Management</category><category>Website Improvements</category><category>Tips and Tricks</category><category>Tech Talk</category><title>Christmas Countdown: #3 NIHS - Not Invented Here Syndrome in real life</title><description>One of the most common and dreaded diseases in web site development often go undiagnosed and untreated for a long time. But it really should be, cause the effects are scary. Yes, I'm talking about the Not-Invented-Here Syndrome</description><pubDate>Thu, 21 Dec 2023 06:00:31 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2023/12/christmas-countdown-4-editors-its-just-john-and-jane-they-know-all-the-quirks---why-does-edit-mode-matter/</guid><link>https://www.codeart.dk/blog/2023/12/christmas-countdown-4-editors-its-just-john-and-jane-they-know-all-the-quirks---why-does-edit-mode-matter/</link><category>Web Content Management</category><category>Optimizely (Episerver)</category><category>Website Improvements</category><category>Tips and Tricks</category><category>Tech Talk</category><title>Christmas Countdown: #4 Editors? It's just John and Jane, they know all the quirks - why does edit-mode matter?</title><description>An audience that is often neglected are the editors / content creators. That is a shame because happy editors =&gt; efficient editors =&gt; good content =&gt; great online experience.</description><pubDate>Wed, 20 Dec 2023 06:00:31 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2023/12/christmas-countdown-5-sure-our-servers-are-locked-up-tight-in-the-basement/</guid><link>https://www.codeart.dk/blog/2023/12/christmas-countdown-5-sure-our-servers-are-locked-up-tight-in-the-basement/</link><category>.NET Development</category><category>Web Content Management</category><category>Optimizely (Episerver)</category><title>Christmas Countdown: #5 Sure, our servers are locked up tight in the basement!</title><description>Securing your website is as important a topic as it is large and complex. In this post I will not go into too many details, but highlight a few problems I often see in Optimizely/EPiServer CMS implementations.</description><pubDate>Tue, 19 Dec 2023 06:00:31 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2023/12/christmas-countdown-6-we-love-content-models---we-have-_all_-of-them/</guid><link>https://www.codeart.dk/blog/2023/12/christmas-countdown-6-we-love-content-models---we-have-_all_-of-them/</link><category>Web Content Management</category><category>Optimizely (Episerver)</category><category>Website Improvements</category><category>Tips and Tricks</category><category>Tech Talk</category><title>Christmas Countdown: #6 "We LOVE content models - We have _all_ of them!"</title><description>The above statement is almost as scary as this: "Content Modelling - is that really needed? We just have one!"</description><pubDate>Mon, 18 Dec 2023 06:00:33 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2023/12/christmas-countdown-7-ddos-whats-that-what-do-you-mean-prepared/</guid><link>https://www.codeart.dk/blog/2023/12/christmas-countdown-7-ddos-whats-that-what-do-you-mean-prepared/</link><category>.NET Development</category><category>Web Content Management</category><category>Optimizely (Episerver)</category><category>Website Improvements</category><category>Tips and Tricks</category><category>Tech Talk</category><title>Christmas Countdown: #7 DDoS? What's that? What do you mean 'prepared'?</title><description>Is your website ready to handle intense usage scenarios like DDoS attacks or black friday? Many people think that testing performance is the same as testing for load - but it's not and sometimes it might even work against each other.</description><pubDate>Sun, 17 Dec 2023 06:00:32 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2023/12/christmas-countdown-8-code-maintenance-is-90-of-the-work/</guid><link>https://www.codeart.dk/blog/2023/12/christmas-countdown-8-code-maintenance-is-90-of-the-work/</link><category>.NET Development</category><category>Optimizely (Episerver)</category><category>Web Content Management</category><category>Website Improvements</category><category>Tips and Tricks</category><category>Tech Talk</category><title>Christmas Countdown: #8 Code maintenance is 90% of the work</title><description>Greenfield development is by far the most fun for everybody. So it's easy to forget that most development work is actually maintenance. And every new line of code you write means more code to maintain. Almost all codebases I review have significant technical debt. And the debt starts to accumulate from the moment you start coding.</description><pubDate>Sat, 16 Dec 2023 06:00:31 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2023/12/christmas-countdown-9-what-viewmodels-nah-we-dont-need-those/</guid><link>https://www.codeart.dk/blog/2023/12/christmas-countdown-9-what-viewmodels-nah-we-dont-need-those/</link><category>Tech Talk</category><category>C#</category><category>Tips and Tricks</category><category>Optimizely (Episerver)</category><category>Web Content Management</category><category>.NET Development</category><title>Christmas Countdown: #9 What? ViewModels? Nah, we don't need those</title><description>This is another classic - with a big impact! Since recycling is great, why don't we just reuse the content model as a view model? We can just enrich it in the controller, right?</description><pubDate>Fri, 15 Dec 2023 06:00:30 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2023/12/christmas-countdown-10-if-its-out-there-google-will-eventually-find-it/</guid><link>https://www.codeart.dk/blog/2023/12/christmas-countdown-10-if-its-out-there-google-will-eventually-find-it/</link><category>Tech Talk</category><category>Tips and Tricks</category><category>Website Improvements</category><category>Optimizely (Episerver)</category><category>Web Content Management</category><title>Christmas Countdown: #10 If it's out there, Google will eventually find it</title><description>Have you ever forgotten to protect stuff that wasn't meant to be public? If no, then you are probably a better person than me and most others - both developers and editors alike.</description><pubDate>Thu, 14 Dec 2023 06:00:31 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2023/12/christmas-countdown-11-dependency-injection-is-not-as-easy-as-it-seems/</guid><link>https://www.codeart.dk/blog/2023/12/christmas-countdown-11-dependency-injection-is-not-as-easy-as-it-seems/</link><category>Tech Talk</category><category>Tips and Tricks</category><category>.NET Development</category><category>Optimizely (Episerver)</category><category>Web Content Management</category><title>Christmas Countdown: #11 Dependency Injection is not as easy as it seems</title><description>Dependency Injection is an extremely useful pattern. It has been used with EPiServer CMS for years - and with .NET Core it has truly become the go-to method of coupling your business logic together. However, once you start having services depend on other services their lifetimes can give some unexpected difficulties.</description><pubDate>Wed, 13 Dec 2023 06:00:30 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2023/12/christmas-countdown-12-days-and-12-common-optimizely-cms-pitfalls---12---picking-the-right-add-ons/</guid><link>https://www.codeart.dk/blog/2023/12/christmas-countdown-12-days-and-12-common-optimizely-cms-pitfalls---12---picking-the-right-add-ons/</link><category>Tech Talk</category><category>Tips and Tricks</category><category>Web Content Management</category><category>Website Improvements</category><category>Optimizely (Episerver)</category><title>Christmas Countdown: common Optimizely CMS Pitfalls - #12 Picking the right add-ons</title><description>12 days to Christmas and here is my countdown list of the top 12 common pitfalls I see in Optimizely CMS implementations - along with some tips on how to avoid them. Today we'll take a look at #12 on the list: Picking the right add-ons</description><pubDate>Tue, 12 Dec 2023 06:00:32 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2023/12/live-on-optimizely-cms-12-and-.net-8</guid><link>https://www.codeart.dk/blog/2023/12/live-on-optimizely-cms-12-and-.net-8</link><category>Website Improvements</category><category>Life as a Coder</category><category>Freelancing</category><category>Optimizely (Episerver)</category><category>Web Content Management</category><title>Live on Optimizely CMS 12 and .NET 8</title><description>"Better late than never" is a fitting saying here. We've finally gotten around to updating the CodeArt.dk website to Optimizely CMS 12 and .NET 8!</description><pubDate>Sun, 10 Dec 2023 16:48:38 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2023/6/optimizely-search--navigation---get-autocomplete-suggestions-in-right-language/</guid><link>https://www.codeart.dk/blog/2023/6/optimizely-search--navigation---get-autocomplete-suggestions-in-right-language/</link><category>.NET Development</category><category>Optimizely (Episerver)</category><category>Tips and Tricks</category><category>C#</category><title>Optimizely Search &amp; Navigation - Get autocomplete suggestions in right language</title><description>When you are using Optimizely Search &amp; Navigation (Find) to help you generate autocomplete suggestions server side in a multi-language scenario it can be tricky (and poorly documented) to figure out how to get the suggestions in the correct language.</description><pubDate>Mon, 05 Jun 2023 09:50:20 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2023/6/property-inheritance-in-optimizely-cms/</guid><link>https://www.codeart.dk/blog/2023/6/property-inheritance-in-optimizely-cms/</link><category>Website Improvements</category><category>Addon Development</category><category>Optimizely (Episerver)</category><title>Easy property inheritance in Optimizely CMS</title><description>Ever needed a way to inherit property values down through the page hierarchy in Optimizely CMS 12? Now there is an easy way to enable that.</description><pubDate>Mon, 05 Jun 2023 09:26:04 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2023/3/using-system.text.json-to-do-polymorphic-json-conversion-in-.net-6</guid><link>https://www.codeart.dk/blog/2023/3/using-system.text.json-to-do-polymorphic-json-conversion-in-.net-6</link><category>.NET Development</category><category>C#</category><title>Using System.Text.Json to do polymorphic Json conversion in .NET 6</title><description>When using System.Text.Json to serialize complex objects you sometimes need to go a bit beyond how the default serialization works. Here are a few helpful converters - for example for doing polymorphic conversion.</description><pubDate>Thu, 30 Mar 2023 10:03:01 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2023/3/make-some-asset-types-download-download-automatically-in-optimizely-cms-using-the-digizuite-integration/</guid><link>https://www.codeart.dk/blog/2023/3/make-some-asset-types-download-download-automatically-in-optimizely-cms-using-the-digizuite-integration/</link><category>C#</category><category>Tips and Tricks</category><category>Digizuite</category><category>Optimizely (Episerver)</category><title>Make some asset types download automatically in Optimizely CMS 12 using the Digizuite integration</title><description>Here is just a quick tip for how you can do custom blob http handling when using the Digizuite integration to Optimizely (Episerver) CMS 12.</description><pubDate>Thu, 02 Mar 2023 13:13:20 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2023/1/new-open-source-package-codeart.matomotracking</guid><link>https://www.codeart.dk/blog/2023/1/new-open-source-package-codeart.matomotracking</link><category>Behavior Analytics</category><category>Vision Demos &amp; Prototypes</category><category>Integrations</category><category>Web Content Management</category><category>.NET Development</category><title>New Open Source Package: CodeArt.MatomoTracking</title><description>As Google Analytics have gotten harder and harder to use due to GDPR, legal and privacy concerns I have turned more and more to Matomo. I recently completed v.1 of a new open source tracking integration.</description><pubDate>Mon, 30 Jan 2023 19:11:31 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2023/1/when-best-practice-isnt-the-best---dependency-injection-and-optimizely-cms/</guid><link>https://www.codeart.dk/blog/2023/1/when-best-practice-isnt-the-best---dependency-injection-and-optimizely-cms/</link><category>Life as a Coder</category><category>Optimizely (Episerver)</category><category>Web Content Management</category><category>.NET Development</category><title>When best practice isn't the best - Dependency Injection and Optimizely CMS</title><description>Some people live and breath 'best practice' development. I am not one of them. Risk is, in-experienced developers (or sometimes experienced) might use them just cause they are 'best practice' and not think more about it. Even when it turns out they are not. Here is little example...</description><pubDate>Sun, 29 Jan 2023 19:51:32 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2023/1/webloadbreaker----browser-based-web-load-testing-tool/</guid><link>https://www.codeart.dk/blog/2023/1/webloadbreaker----browser-based-web-load-testing-tool/</link><category>Vision Demos &amp; Prototypes</category><category>Life as a Coder</category><category>Tips and Tricks</category><category>Website Improvements</category><category>Frontend Development</category><category>Web Content Management</category><title>WebLoadBreaker -  Browser based web load testing tool</title><description>WebLoadBreaker is a new, open source, browser based tool to help you do quick and easy load tests.</description><pubDate>Tue, 24 Jan 2023 20:12:03 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2022/12/automatically-have-optimizely-content-created-in-the-correct-place/</guid><link>https://www.codeart.dk/blog/2022/12/automatically-have-optimizely-content-created-in-the-correct-place/</link><category>Tips and Tricks</category><category>Optimizely (Episerver)</category><category>Web Content Management</category><title>Automatically have Optimizely Content created in the correct place</title><description>A classic problem is that you want better structure and governance in for example your blocks. Maybe you have a policy to have all Banners or FAQ items in a specific folder so they can easily be found and re-used across the site, but way too often editors take the 'easy' approach and use the "Create a New Block" option in a content area - which by default places the block in the "For this page" folder, rendering re-use impossible. Here is a simple solution to that.</description><pubDate>Fri, 30 Dec 2022 18:55:47 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2022/12/running-optimizely-cms-12-episerver-on-a-raspberry-pi/</guid><link>https://www.codeart.dk/blog/2022/12/running-optimizely-cms-12-episerver-on-a-raspberry-pi/</link><category>Life as a Coder</category><category>Optimizely (Episerver)</category><category>Web Content Management</category><category>.NET Development</category><title>Running Optimizely CMS 12 (Episerver) on a Raspberry Pi</title><description>.NET Core is cross platform. But can you really run Optimizely CMS 12 and everything needed on a tiny ARM based Raspberry PI? Yes you can, and it's not that hard.</description><pubDate>Sun, 18 Dec 2022 20:18:38 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2022/11/ai-assisted-content-creation---in-optimizely-cms--commerce-ai-series---part-2/</guid><link>https://www.codeart.dk/blog/2022/11/ai-assisted-content-creation---in-optimizely-cms--commerce-ai-series---part-2/</link><category>Vision Demos &amp; Prototypes</category><category>Optimizely (Episerver)</category><category>Web Content Management</category><category>Artificial Intelligence</category><category>Addon Development</category><title>AI Assisted Content Creation - in Optimizely CMS &amp; Commerce (AI Series - Part 2)</title><description>AI assisted content creation is an exciting new approach driven by algorithms and models like GPT-3, DALL-E, Stable Diffusion and more.
At CodeArt we've been experimenting how to use these technologies to enhance the editorial process. In this second part of the blog series on the topic I'll share a video of a prototype integration to Optimizely (Episerver) CMS of content creation using AI for both images and text.</description><pubDate>Sun, 06 Nov 2022 15:18:39 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2022/11/perspectives-ai-assisted-content-creation-part1/</guid><link>https://www.codeart.dk/blog/2022/11/perspectives-ai-assisted-content-creation-part1/</link><category>Web Content Management</category><category>Artificial Intelligence</category><category>Vision Demos &amp; Prototypes</category><title>Perspectives in AI Assisted Content Creation (AI Series Part 1)</title><description>AI assisted content creation is an exciting new approach driven by algorithms and models like GPT-3, DALL-E, Stable Diffusion and more.
At CodeArt we've been experimenting how to use these technologies to enhance the editorial process.</description><pubDate>Sun, 06 Nov 2022 15:18:31 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2022/11/property-dependency-in-optimizely-episerver-cms-12/</guid><link>https://www.codeart.dk/blog/2022/11/property-dependency-in-optimizely-episerver-cms-12/</link><category>C#</category><category>Tips and Tricks</category><category>Optimizely (Episerver)</category><title>Property Dependency in Optimizely (Episerver) CMS 12</title><description>Sometimes you want to hide some properties in your CMS depending on the value of other properties. There are multiple ways to do this, but here is a rather simple approach that doesn't require advanced dojo skills.</description><pubDate>Wed, 02 Nov 2022 06:00:44 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2022/10/customizing-property-lists-in-optimizely-cms/</guid><link>https://www.codeart.dk/blog/2022/10/customizing-property-lists-in-optimizely-cms/</link><category>Tips and Tricks</category><category>C#</category><category>Website Improvements</category><category>Optimizely (Episerver)</category><category>Web Content Management</category><title>Customizing Property Lists in Optimizely CMS</title><description>Generic property lists is a cool editorial feature that has gained a lot of popularity - in spite of still being unsupported (officially). But if you dig a bit deeper you can actually customize the editor experience even more...</description><pubDate>Sun, 02 Oct 2022 17:12:38 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2022/9/preview-multiple-visitor-groups-directly-while-browsing-your-optimizely-site/</guid><link>https://www.codeart.dk/blog/2022/9/preview-multiple-visitor-groups-directly-while-browsing-your-optimizely-site/</link><category>Tips and Tricks</category><category>C#</category><category>Personalization</category><category>Optimizely (Episerver)</category><title>Preview multiple Visitor Groups directly while browsing your Optimizely site</title><description>Visitor groups are great - it's an easy way to add personalization towards market segments to your site. But it does come with it's own set of challenges if used intensively. For example it can be hard to predict how any given page will look for visitors with a specific combination of visitor groups - and viewing it in a proper way often requires more than what you see in the quick preview mode. Here's a bit of code that will help you out.</description><pubDate>Mon, 26 Sep 2022 17:55:44 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2022/6/content-report-generator-v.2</guid><link>https://www.codeart.dk/blog/2022/6/content-report-generator-v.2</link><category>Vision Demos &amp; Prototypes</category><category>Tips and Tricks</category><category>Optimizely (Episerver)</category><category>Addon Development</category><title>Content Report Generator v.2.</title><description>When you are about to migrate a site from CMS 11 to CMS 12, it's not unusual to want to do some rewriting and re-implementation to clean up the architecture as part of the project. When you do that (and in many other cases) it can be incredibly helpful to have a handy overview of your content, it's usage and your visitor groups and their usage. Here is an easy way to get that.</description><pubDate>Fri, 03 Jun 2022 12:53:14 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2022/6/optimizely-developer-meetup-copenhagen---june/</guid><link>https://www.codeart.dk/blog/2022/6/optimizely-developer-meetup-copenhagen---june/</link><category>.NET Development</category><category>Web Content Management</category><category>Optimizely (Episerver)</category><category>Vision Demos &amp; Prototypes</category><category>Tech Talk</category><title>Optimizely Developer Meetup Copenhagen - June</title><description>Calling all Optimizely (Episerver) Developers in Copenhagen and surrounding area. It's once again time for a real-life meetup!</description><pubDate>Thu, 02 Jun 2022 17:45:10 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2022/6/optimizely-cms-list-content-recursively-on-a-page---and-list-the-visitor-groups-used/</guid><link>https://www.codeart.dk/blog/2022/6/optimizely-cms-list-content-recursively-on-a-page---and-list-the-visitor-groups-used/</link><category>Optimizely (Episerver)</category><category>C#</category><category>.NET Development</category><category>Tips and Tricks</category><title>Optimizely CMS: List content recursively on a page - and list the visitor groups used</title><description>Quite often a lot of the content on pages in Optimizely Content cloud (aka Episerver CMS) is structured in blocks placed in content areas. And often even blocks in blocks.
Sometimes it's needed to quickly get a list of all the content items on a page - and sometimes you might also be interested in which visitor groups are used. Here is a couple of extension methods to help you with that.</description><pubDate>Wed, 01 Jun 2022 19:55:39 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2022/4/self-service-with-fluid-templating-for-editors-in-optimizely-cms/</guid><link>https://www.codeart.dk/blog/2022/4/self-service-with-fluid-templating-for-editors-in-optimizely-cms/</link><category>Tips and Tricks</category><category>Web Content Management</category><category>Optimizely (Episerver)</category><title>Self service with Fluid Templating for editors in Optimizely CMS</title><description>A classic need in many websites - especially self-service sites - is a placeholder mechanism, so editors can use placeholders in their text to be replaced with  user specific data. Recently, working with a client, we ran into this problem and tried out a new approach to empower the content creators to solve this themselves.</description><pubDate>Sun, 24 Apr 2022 19:31:33 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2022/2/switching-redirect-handler-in-optimizely-cms-episerver/</guid><link>https://www.codeart.dk/blog/2022/2/switching-redirect-handler-in-optimizely-cms-episerver/</link><category>Optimizely (Episerver)</category><category>Tips and Tricks</category><title>Switching Redirect Handler in Optimizely CMS (Episerver)</title><description>This is just a quick code-stub on how to migrate redirects when moving from Verndales Redirect manager to Geta's 404 handler.</description><pubDate>Mon, 21 Feb 2022 15:50:54 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2021/11/secret-debug-tools-in-optimizely-cms-12/</guid><link>https://www.codeart.dk/blog/2021/11/secret-debug-tools-in-optimizely-cms-12/</link><category>Tips and Tricks</category><category>Optimizely (Episerver)</category><title>Secret debug tools in Optimizely CMS 12</title><description>Secret treasures are always fun. And when I was examining the endpoint list from my previous post, I noticed a few hints that I couldn't leave unexplored. It turns out that just as the previous versions, Optimizely CMS 12 comes with a couple of hidden debug gems.</description><pubDate>Thu, 25 Nov 2021 06:00:44 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2021/11/listing-all-endpoints-in-optimizely-cms-12--.net-5</guid><link>https://www.codeart.dk/blog/2021/11/listing-all-endpoints-in-optimizely-cms-12--.net-5</link><category>.NET Development</category><category>Addon Development</category><category>Optimizely (Episerver)</category><title>Listing all endpoints in Optimizely CMS 12 / .NET 5</title><description>Routing has significantly changed in .NET 5 - and that affects many parts of Optimizely (Episerver) CMS 12. For example we have to get used to endpoints a middleware. As I am working on upgrading a few different add-ons I found it could be useful to see which routes are registered out of the box.</description><pubDate>Wed, 24 Nov 2021 21:13:08 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2021/10/anti-pattern-dont-modify--optimizely-cms-episerver--content-objects-in-the-controller/</guid><link>https://www.codeart.dk/blog/2021/10/anti-pattern-dont-modify--optimizely-cms-episerver--content-objects-in-the-controller/</link><category>C#</category><category>Tips and Tricks</category><category>Web Content Management</category><category>.NET Development</category><category>Optimizely (Episerver)</category><title>Anti-Pattern: Don't modify  Optimizely CMS (Episerver)  content objects in the Controller</title><description>Using your content object (CurrentPage / CurrentBlock) as a makeshift viewmodel where you change settings or extend it with user data in the controller before passing it to the view, is unfortunately (and to my surprise) a pretty wide-spread practice among developers implementing Optimizely (Episerver) web sites. But it really needs to stop.</description><pubDate>Thu, 28 Oct 2021 12:14:00 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2021/10/optimizely-episerver-split-folder-structure-for-blocks-and-media/</guid><link>https://www.codeart.dk/blog/2021/10/optimizely-episerver-split-folder-structure-for-blocks-and-media/</link><category>Tips and Tricks</category><category>Optimizely (Episerver)</category><category>Web Content Management</category><category>.NET Development</category><title>Optimizely (Episerver): Split folder structure for blocks and media</title><description>Since version 7 or 8 of Episerver (now Optimizely CMS), the shared Blocks and Media have been sharing the same folder structure. Some people see a benefit with the shared structure, and some absolutely hate it. Personally, I have gotten used to it - but I was recently asked if it's possible to split it up. Here's the hack I came up with.</description><pubDate>Wed, 06 Oct 2021 06:00:45 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2021/9/optimizely-gridview-customizations/</guid><link>https://www.codeart.dk/blog/2021/9/optimizely-gridview-customizations/</link><category>Tips and Tricks</category><category>.NET Development</category><category>Optimizely (Episerver)</category><title>Optimizely Gridview Customizations</title><description>One of my favorite add-ons these days is the GridView. It's pretty customizable, but some of the customizations aren't the most well documented. Here's a couple of tricks I've found handy when using it.</description><pubDate>Thu, 23 Sep 2021 05:30:24 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2021/9/editor-hack-add-simple-password-protection-to-some-content-code-free/</guid><link>https://www.codeart.dk/blog/2021/9/editor-hack-add-simple-password-protection-to-some-content-code-free/</link><category>Optimizely (Episerver)</category><category>Tips and Tricks</category><title>Editor Hack: Add simple password protection to some content (code free)</title><description>As much as I love coding, sometimes a quick editorial solution can be needed to solve a pressing market need without time for development, test and deployment. This was one of those times.</description><pubDate>Wed, 22 Sep 2021 19:40:49 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2021/5/new-project-optimizely-episerver-health-checker/</guid><link>https://www.codeart.dk/blog/2021/5/new-project-optimizely-episerver-health-checker/</link><category>Addon Development</category><category>Optimizely (Episerver)</category><category>C#</category><category>Vision Demos &amp; Prototypes</category><title>New Project: Optimizely (Episerver) Health Checker</title><description>Wouldn't it be nice if there was just one place you could go and get an instant overview of the health of your Optimizely (Episerver) installation? With checks that are both technical, functional, business and covers product, addons and implementation? Here it is. Or at least the start of something that could be very useful.</description><pubDate>Mon, 31 May 2021 13:08:27 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2021/4/overriding-and-extending-episerver-dojo-functionality/</guid><link>https://www.codeart.dk/blog/2021/4/overriding-and-extending-episerver-dojo-functionality/</link><category>Optimizely (Episerver)</category><category>Addon Development</category><category>Tips and Tricks</category><title>Overriding and Extending Episerver Dojo Functionality</title><description>This is a small guide on how you can easily change or extend any of the Episerver dojo modules.</description><pubDate>Fri, 30 Apr 2021 19:53:00 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2021/4/named-entity-recognition-demo/</guid><link>https://www.codeart.dk/blog/2021/4/named-entity-recognition-demo/</link><category>Vision Demos &amp; Prototypes</category><category>Big Data</category><category>Web Content Management</category><title>Named Entity Recognition Demo</title><description>When working with a content heavy site, it can be very practical to use AI for identifying named entities in the text. Last summer I made a prototype service using Named Entity Recognition in danish, english and swedish to tag content - but not until now did I find time to describe it in a blog post.</description><pubDate>Fri, 30 Apr 2021 17:50:13 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2021/3/using-twentythree-video-service-with-episerver/</guid><link>https://www.codeart.dk/blog/2021/3/using-twentythree-video-service-with-episerver/</link><category>Optimizely (Episerver)</category><category>Integrations</category><category>SoMe</category><category>Tips and Tricks</category><category>Vision Demos &amp; Prototypes</category><title>Using TwentyThree video service with Episerver</title><description>Videos and well executed webinars are key tools in achieving a higher engagement and conversion rate from your visitors and customers. TwentyThree is a powerful video hub and webinar service. I was lucky enough to get an account and access to their API and that escalated quickly into a prototype integration into Episerver.</description><pubDate>Tue, 30 Mar 2021 19:58:12 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2021/2/profile-store-kql-cheat-sheet/</guid><link>https://www.codeart.dk/blog/2021/2/profile-store-kql-cheat-sheet/</link><category>Tips and Tricks</category><category>Optimizely (Episerver)</category><category>Episerver Profile Store</category><category>Personalization</category><category>Web Content Management</category><title>Profile Store KQL Cheat Sheet</title><description>With KQL support in the Rest API for Episerver profile store we have been given a powerful tool to query against the tracked profiles. In this post I share a collection of cool and useful queries you can use.</description><pubDate>Fri, 26 Feb 2021 07:00:20 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2021/1/adhering-to-consent-with-cookie-information-for-episerver/</guid><link>https://www.codeart.dk/blog/2021/1/adhering-to-consent-with-cookie-information-for-episerver/</link><category>Optimizely (Episerver)</category><category>Integrations</category><category>Addon Development</category><category>Website Improvements</category><category>Tips and Tricks</category><title>Adhering to Consent with Cookie Information for Episerver</title><description>In the EU the past year has added even more rules and regulations to which cookies can be set, which data can be collected and which consents are needed for it. While it may not be tricky to add a basic consent box, adding one that adhere to all the proper legislation and then follow the consents given can be a bit more challenging.

In this post I take a deep dive into how Cookie Information's solution together with their Connector for Episerver can make it easier - and faster to accomplish.</description><pubDate>Wed, 27 Jan 2021 13:30:07 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2020/12/linking-to-a-specific-text-fragment-on-another-page-in-episerver/</guid><link>https://www.codeart.dk/blog/2020/12/linking-to-a-specific-text-fragment-on-another-page-in-episerver/</link><category>Optimizely (Episerver)</category><category>Tips and Tricks</category><category>Information Retrieval</category><title>Linking to a specific text fragment on another page in Episerver</title><description>Chrome 80 introduced a new cool feature that you may or may not have noticed in your google search results. You can now link directly to a text fragment on a page, and Chrome (along with a few other browsers) will then scroll to it and highlight it. Perfect for ultra deep linking and search results. I took the standard Alloy site and put it to the test.</description><pubDate>Wed, 30 Dec 2020 21:25:56 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2020/11/how-to-setup-dev--build-environment-for-an-episerver-addon/</guid><link>https://www.codeart.dk/blog/2020/11/how-to-setup-dev--build-environment-for-an-episerver-addon/</link><category>Tips and Tricks</category><category>Azure</category><category>Addon Development</category><category>Optimizely (Episerver)</category><title>How to setup dev &amp; build environment for an Episerver Addon</title><description>Over the years I have been involved in quite a lot(!) of Episerver addons and integration projects. A key to a successful add-on is to get the entire project and environment correctly setup and working from the start. This is my recipe.</description><pubDate>Sat, 28 Nov 2020 15:48:42 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2020/11/using-custom-domains-when-developing-in-visual-studio-using-iis-express/</guid><link>https://www.codeart.dk/blog/2020/11/using-custom-domains-when-developing-in-visual-studio-using-iis-express/</link><category>Tips and Tricks</category><category>C#</category><title>Using custom domains when developing in Visual Studio using IIS Express</title><description>A classic problem when building asp.net applications in visual studio and IIS Express is how to configure it so you can use a custom domain name, in case the default "localhost:port" doesn't suit you. I might be getting old, but every time I need to do this, I spend time looking it up in multiple places and trying to remember what I did last time - so this blog post is a simple guide on how to do it - both for my own future benefit and perhaps yours.</description><pubDate>Thu, 19 Nov 2020 14:28:33 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2020/9/thoughts-on-the-episerveroptimizely-acquisition/</guid><link>https://www.codeart.dk/blog/2020/9/thoughts-on-the-episerveroptimizely-acquisition/</link><category>Optimizely (Episerver)</category><category>Web Content Management</category><category>Online Strategy</category><category>Website Improvements</category><title>Thoughts on the Episerver/Optimizely Acquisition</title><description>When one of the market leaders in digital experience / content management / e-commerce acquires the market leader in Optimization and Experimentation - great things can be expected. But how will it differ from the optimization techniques used by Episerver customers today? Here are my thoughts.</description><pubDate>Tue, 15 Sep 2020 10:37:56 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2020/9/profile-manager-v2/</guid><link>https://www.codeart.dk/blog/2020/9/profile-manager-v2/</link><category>Behavior Analytics</category><category>Big Data</category><category>Episerver Profile Store</category><category>Optimizely (Episerver)</category><title>Profile Manager v2 - KQL edition</title><description>We just launched a new version of the online tool Profile Manager - a tool that makes it easier for developers and content analysts to work with Episervers Profile Store.

The new version lets you easily try out different KQL queries and build Filter Definitions with them.</description><pubDate>Thu, 10 Sep 2020 20:08:20 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2020/8/episerver-forms-avoiding-spam-with-a-honeypot/</guid><link>https://www.codeart.dk/blog/2020/8/episerver-forms-avoiding-spam-with-a-honeypot/</link><category>C#</category><category>Tips and Tricks</category><category>Web Content Management</category><category>Optimizely (Episerver)</category><title>Episerver Forms: Avoiding spam with a honeypot</title><description>Spam comes in many forms and can be really annoying. Often, when you put a form on your website it will be found by spam bots that will post lots of spam in the form. A common defense is CAPTCHA's, but they are annoying the real users and typically not WCAG compliant. Here, I'm showing a simple Episerver implementation of another approach that works wonders for me - the honeypot.</description><pubDate>Fri, 21 Aug 2020 11:18:04 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2020/7/developerconsole---cli/</guid><link>https://www.codeart.dk/blog/2020/7/developerconsole---cli/</link><category>Vision Demos &amp; Prototypes</category><category>Tips and Tricks</category><category>Optimizely (Episerver)</category><title>DeveloperConsole - CLI</title><description>This is the second post about my new pet project - the Episerver Developer Console. In this post we'll learn how you can connect to the Developer Console from a local CLI on your own computer.</description><pubDate>Fri, 31 Jul 2020 06:00:41 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2020/6/introducing-the-developerconsole-for-episerver/</guid><link>https://www.codeart.dk/blog/2020/6/introducing-the-developerconsole-for-episerver/</link><category>Vision Demos &amp; Prototypes</category><category>C#</category><category>Optimizely (Episerver)</category><category>Addon Development</category><title>Introducing the DeveloperConsole for Episerver</title><description>Often you find yourself creating Scheduled Jobs in Episerver, only intending them to be run manually - and often annoyed that they don't support parameters. This blog post introduces a new approach to solving the same problem: The Developer Console.</description><pubDate>Tue, 30 Jun 2020 12:13:31 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2020/6/experimenting-with-wikipedia-topics-for-content/</guid><link>https://www.codeart.dk/blog/2020/6/experimenting-with-wikipedia-topics-for-content/</link><category>Vision Demos &amp; Prototypes</category><category>Web Content Management</category><category>Information Retrieval</category><category>Big Data</category><category> Elastic Search</category><category>.NET Development</category><title>Experimenting with Wikipedia topics for Content</title><description>Automatically tagging your content with topics from a known, well described topic base like Wikipedia can have many cool uses. You can organize your content, suggesting keywords and outbound links, not to mention that you can build up interest profiles of your visitors. These interest profiles can the be used to suggest appropriate content and keep your visitors engaged. Inspired by Episerver Content Intelligence and a couple of earlier projects I've done in the past, I decided to perform an experiment to see how far I could get with a DIY approach as opposed to the traditional cloud-based NLP/AI.</description><pubDate>Wed, 03 Jun 2020 13:52:14 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2020/5/reading-very-large-gzipped-json-files-in-c/</guid><link>https://www.codeart.dk/blog/2020/5/reading-very-large-gzipped-json-files-in-c/</link><category>.NET Development</category><category>C#</category><title>Reading very large gzipped json files in c#</title><description>This is a little code snippet that I often find quite handy. It's a piece of c# code that opens a gzipped json file and iterates through the items in it. Since it takes it piece by piece (as opposed to loading everything in memory) it's can pretty much handle files of any size.</description><pubDate>Sun, 31 May 2020 08:55:04 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2020/5/showing-the-right-block-types/</guid><link>https://www.codeart.dk/blog/2020/5/showing-the-right-block-types/</link><category>Optimizely (Episerver)</category><category>C#</category><category>Tips and Tricks</category><title>Showing the right block types at the right time</title><description>Often, it can be handy to have very exact and dynamic control over what editors can see or do. One of my weapons of choice for this is the good, old and trusted Virtual Roles. In this scenario we have a multi-site Episerver, where some of the block types it should only be possible to use on one of the sites.</description><pubDate>Tue, 26 May 2020 14:39:04 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2020/5/enrich-episerver-forms-with-additional-system-fields/</guid><link>https://www.codeart.dk/blog/2020/5/enrich-episerver-forms-with-additional-system-fields/</link><category>C#</category><category>Tips and Tricks</category><category>Optimizely (Episerver)</category><title>Enrich Episerver Forms with additional system fields</title><description>Episerver forms adds a couple of system columns to each form submission when you export the submissions. But it happens that the people that need the form submission reports want additional data - for example the url of the page the form was on - and for some reason they don't know all Episerver page Guids by heart.</description><pubDate>Fri, 15 May 2020 14:15:08 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2020/5/wyam---dynamically-creating-a-static-site/</guid><link>https://www.codeart.dk/blog/2020/5/wyam---dynamically-creating-a-static-site/</link><category>Tips and Tricks</category><category>Web Content Management</category><title>Wyam - dynamically creating a static site</title><description>Wyam is a really cool .NET Core based tool to generate static websites. I took it out for a test-run, using this blogs RSS feed as a content source.</description><pubDate>Tue, 12 May 2020 14:39:10 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2020/4/exploring-the-episerver-nuget-feed/</guid><link>https://www.codeart.dk/blog/2020/4/exploring-the-episerver-nuget-feed/</link><category>Optimizely (Episerver)</category><category>Big Data</category><category>Vision Demos &amp; Prototypes</category><category>Information Retrieval</category><title>Exploring the Episerver Nuget Feed</title><description>The best thing about Episerver is the community and all the great contributions coming from it. Many of them make it into packages on the Episerver nuget feed - along side Episervers own packages. I have for a long time worked on building tools to explore and visualize this more - and now I'm finally ready to one-by-one share some of the tools coming out of it.</description><pubDate>Thu, 30 Apr 2020 15:11:25 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2020/3/using-episerver-forms-to-book-meetings-in-outlook-with-microsoft-power-automate/</guid><link>https://www.codeart.dk/blog/2020/3/using-episerver-forms-to-book-meetings-in-outlook-with-microsoft-power-automate/</link><category>Web Content Management</category><category>Optimizely (Episerver)</category><category>Tips and Tricks</category><category>Integrations</category><category>Tech Talk</category><title>Using Episerver Forms to book meetings in Outlook with Microsoft Power Automate</title><description>It's not as hard as you might think - and doesn't require any code - to connect your Episerver Forms with hundreds of other systems, using services like Microsoft Power Automate (formerly Flow), Azure Logic Apps, IFTTT or Zapier. I made a 5 minute video, showing how you can let your visitors request a meeting on a given date from a form on your website, and then having it being automatically booked in your Outlook 365 calendar.</description><pubDate>Mon, 30 Mar 2020 14:52:58 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2020/3/free-online-course---c-and-.net-core-introduction</guid><link>https://www.codeart.dk/blog/2020/3/free-online-course---c-and-.net-core-introduction</link><category>.NET Development</category><category>C#</category><category>Life as a Coder</category><category>Tech Talk</category><title>Free online course - C# and .NET Core introduction</title><description>The best way to learn coding - and in particular c# and .NET Core - is to code. CodeArt is proud to make all the teaching materials to a newly created course online and freely available for self-study.</description><pubDate>Fri, 20 Mar 2020 14:19:06 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2020/3/packages-restored-but-your-project-is-still-missing-references/</guid><link>https://www.codeart.dk/blog/2020/3/packages-restored-but-your-project-is-still-missing-references/</link><category>.NET Development</category><category>Addon Development</category><category>C#</category><title>Packages restored, but your project is still missing references?</title><description>Here is a classic error that happens to me a lot. It's extremely simple, yet sometimes I find myself spending too much time trying to remember what it is that goes wrong.</description><pubDate>Mon, 09 Mar 2020 10:26:02 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2020/2/idio-first-look-on-content-analytics-and-recommendations/</guid><link>https://www.codeart.dk/blog/2020/2/idio-first-look-on-content-analytics-and-recommendations/</link><category>Web Content Management</category><category>Big Data</category><category>Artificial Intelligence</category><category>Optimizely (Episerver)</category><category>Vision Demos &amp; Prototypes</category><title>Idio: First look on Content Analytics and Recommendations</title><description>I recently got a chance to try out Episervers latest acquisition, Idio, right here on codeart.dk. In this post, I'll share my first impressions.</description><pubDate>Fri, 28 Feb 2020 19:59:18 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2020/1/attribute-to-set-xhtml-property-settings-in-episerver/</guid><link>https://www.codeart.dk/blog/2020/1/attribute-to-set-xhtml-property-settings-in-episerver/</link><category>Optimizely (Episerver)</category><category>C#</category><category>Web Content Management</category><category>Tips and Tricks</category><category>Vision Demos &amp; Prototypes</category><title>Attribute to set XHTML property settings in Episerver</title><description>A pretty normal task is to have an XHTML property that uses only a very specific subset of the normal TinyMCE functionality. For example a text field that also allows the editors to create links - but nothing else. I came up with what I think is an elegant solution here.</description><pubDate>Thu, 23 Jan 2020 07:00:20 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2020/1/powerslice-identify-unused-blocks/</guid><link>https://www.codeart.dk/blog/2020/1/powerslice-identify-unused-blocks/</link><category> Elastic Search</category><category>Tips and Tricks</category><category>Optimizely (Episerver)</category><title>Powerslice: Identify unused blocks</title><description>Powerslice might have a few years on it's back, but it's still a great editorial tool, when you are working with large amounts of content and have access to Episerver Find. Here's an example of a recent slice I made that let's editors easily identify unused blocks.</description><pubDate>Fri, 10 Jan 2020 13:29:23 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2019/12/introducing-the-profile-manager-tool/</guid><link>https://www.codeart.dk/blog/2019/12/introducing-the-profile-manager-tool/</link><category>Tips and Tricks</category><category>Vision Demos &amp; Prototypes</category><category>Optimizely (Episerver)</category><category>Big Data</category><title>Introducing the Profile Manager tool</title><description>Episerver Insight and the Profile store are powerful tools. But to make them even more powerful, we @ CodeArt have been developing a few tools to make them easier to work with. Here is the first one.</description><pubDate>Fri, 20 Dec 2019 15:03:51 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2019/11/episerver-forms-adding-custom-validators-to-existing-elements/</guid><link>https://www.codeart.dk/blog/2019/11/episerver-forms-adding-custom-validators-to-existing-elements/</link><category>Tips and Tricks</category><category>C#</category><category>Web Content Management</category><category>Optimizely (Episerver)</category><title>Episerver Forms: Adding custom validators to existing elements</title><description>It's easy to extend Episerver forms with custom validation types. But it's a little bit harder to add the new validation types to the existing elements. In this blog post I'll add an ultra simple letter-only validation option to the existing TextboxElement.</description><pubDate>Thu, 21 Nov 2019 17:59:49 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2019/11/episerver-forms-adding-datasource-for-hidden-field-with-profile-store-data/</guid><link>https://www.codeart.dk/blog/2019/11/episerver-forms-adding-datasource-for-hidden-field-with-profile-store-data/</link><category>Tips and Tricks</category><category>Optimizely (Episerver)</category><title>Episerver Forms: Adding Datasource for hidden field with Profile Store data</title><description>Some times, it can be handy to track additional data about the visitor along with a form submission. If you have Profile Store, stuff like DeviceId, sessionId and maybe even the ProfileId can definitely come in handy later when you are later processing the form submissions. Here is a code sample on how to do that.</description><pubDate>Wed, 06 Nov 2019 14:12:17 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2019/10/ascend-2019-code-mania/</guid><link>https://www.codeart.dk/blog/2019/10/ascend-2019-code-mania/</link><category>Tips and Tricks</category><category>Tech Talk</category><category>Web Content Management</category><category>Optimizely (Episerver)</category><title>Ascend 2019: Code Mania</title><description>Yesterday, I had the honor and pleasure of giving the traditional Code Mania demo at Episerver Ascend 2019 in Miami together with Fredrik Haglund. After popular demand, here is a blog post about some of the components we showed.</description><pubDate>Tue, 29 Oct 2019 22:14:47 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2019/8/getting-more-insight-into-profile-store/</guid><link>https://www.codeart.dk/blog/2019/8/getting-more-insight-into-profile-store/</link><category>Tips and Tricks</category><category>Web Content Management</category><category>Behavior Analytics</category><category>Optimizely (Episerver)</category><title>Getting more Insight (pun intended) into Episerver Profile Store</title><description>Profile Store, Insight, Tracker, Advance - Episerver offers a myriad of different (but connected) REST services for managing and tracking your visitors and prospects. It can be slightly confusing at first - and some of the documentation might be a tad misleading - but once you get the hang of it, they are really powerful tools. I've recently had a chance to explore them in depth. Here is what I've learned so far.</description><pubDate>Thu, 29 Aug 2019 21:08:24 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2019/8/episerver-forms-and-pardot-form-handlers/</guid><link>https://www.codeart.dk/blog/2019/8/episerver-forms-and-pardot-form-handlers/</link><category>Tips and Tricks</category><category>Integrations</category><category>Web Content Management</category><category>Optimizely (Episerver)</category><title>Episerver Forms and Pardot Form Handlers</title><description>Episerver comes with a wide range of connectors that allows you to connect Marketing Automation systems to Episerver through multiple integration points. However in some cases you might want to hook directly into the Marketing Automation systems form handler. In the case of SalesForce Pardot it's very easy to do!</description><pubDate>Tue, 13 Aug 2019 19:22:16 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2019/7/the-tricky-redirect/</guid><link>https://www.codeart.dk/blog/2019/7/the-tricky-redirect/</link><category>Tips and Tricks</category><category>Optimizely (Episerver)</category><title>The tricky redirect</title><description>Sometimes, when you are troubleshooting you forget the obvious in search of more complex reasons. Recently I had a case of that where an Episerver site kept redirecting the moment it was launched.</description><pubDate>Mon, 08 Jul 2019 06:27:00 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2019/7/site-map-generation-with-custom-filter/</guid><link>https://www.codeart.dk/blog/2019/7/site-map-generation-with-custom-filter/</link><category>Tips and Tricks</category><category>Optimizely (Episerver)</category><title>Site Map Generation with Custom Filter</title><description>There's a handful of great add-ons I use in almost every Episerver project - and several of them are from Geta. Here is a useful hint if you, like me, use the Geta SiteMap generator.</description><pubDate>Wed, 03 Jul 2019 19:35:55 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2019/7/getting-started-with-contentful-ui-extensions---part-3/</guid><link>https://www.codeart.dk/blog/2019/7/getting-started-with-contentful-ui-extensions---part-3/</link><category>Addon Development</category><category>Contentful</category><category>Tech Talk</category><category>Web Content Management</category><title>Getting started with Contentful UI Extensions - Part 3</title><description>Sidebar extensions is a great way to add tools, widgets and integrations to editors, without relying on a specific field. In this post I'll explore them a little, and also test out how much crazy stuff we can actually do with the javascript SDK.</description><pubDate>Tue, 02 Jul 2019 08:29:07 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2019/6/getting-started-with-contentful-ui-extensions---part-2/</guid><link>https://www.codeart.dk/blog/2019/6/getting-started-with-contentful-ui-extensions---part-2/</link><category>Contentful</category><category>Addon Development</category><category>Tech Talk</category><category>Web Content Management</category><title>Getting started with Contentful UI Extensions - part 2</title><description>In this post, I'll show how to make a field editor that will let you have any kind of syntax highlighted code in a long text field, as well as taking a look at command line interface (CLI) and Github distribution.</description><pubDate>Wed, 19 Jun 2019 11:27:35 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2019/6/digizuite-dam-for-episerver---try-it-out/</guid><link>https://www.codeart.dk/blog/2019/6/digizuite-dam-for-episerver---try-it-out/</link><category>Integrations</category><category>Optimizely (Episerver)</category><category>Digizuite</category><category>Addon Development</category><title>Digizuite DAM for Episerver - try it out!</title><description>The Digizuite DAM for Episerver integration is now available in the Episerver nuget feed! We've worked long and hard on this, so feel free to have a look and try it out!</description><pubDate>Mon, 17 Jun 2019 11:34:36 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2019/6/getting-started-with-contentful-ui-extensions/</guid><link>https://www.codeart.dk/blog/2019/6/getting-started-with-contentful-ui-extensions/</link><category>Contentful</category><category>Web Content Management</category><category>Tech Talk</category><category>Integrations</category><category>Addon Development</category><title>Getting started with Contentful UI Extensions - Part 1</title><description>Contentful has a handful of extension points, where you in a fairly straightforward and simple manner can extend the editorial experience with minimal development effort. In this post-series I'll show some examples of this.</description><pubDate>Wed, 12 Jun 2019 20:06:42 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2019/5/publicwww---searching-for-interesting-cms-use-patterns/</guid><link>https://www.codeart.dk/blog/2019/5/publicwww---searching-for-interesting-cms-use-patterns/</link><category>Information Retrieval</category><category>Optimizely (Episerver)</category><category>Web Content Management</category><title>Publicwww - searching for interesting Episerver CMS use patterns</title><description>I recently discovered publicwww.com a cool service that lets you search for any text in the html/css/js of all it's 550 million (2019-05-09) indexed web pages, including the cookies sent out and the http header. In this post I put my Episerver goggles on and had some fun with this data.</description><pubDate>Thu, 09 May 2019 20:51:38 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2019/4/the-curious-case-of-content-modelling/</guid><link>https://www.codeart.dk/blog/2019/4/the-curious-case-of-content-modelling/</link><category>Web Content Management</category><category>Contentful</category><title>The Curious Case of Content Modelling</title><description>Having the right content model (the structure of your content types) is very important in order to end up with good, usable (and reusable) content. I believe that is something that most content management aficionados can agree on. But what is a good content model? And who should be modelling your content? In this blog post I will try to discuss a few opinions on this topic.</description><pubDate>Thu, 04 Apr 2019 08:36:54 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2019/4/contentprovider-resilience-strategies/</guid><link>https://www.codeart.dk/blog/2019/4/contentprovider-resilience-strategies/</link><category>Integrations</category><category>Digizuite</category><category>Optimizely (Episerver)</category><category>Web Content Management</category><category>Addon Development</category><title>Episerver Content Provider Resilience Strategies</title><description>Content Providers for Episerver is a powerful tool with huge potential for integrations. But how should you handle fault resilience when dealing with a real time connection to an external system? As part of the integration to Digizuite DAM I have helped build, I have given this a great deal of thought.</description><pubDate>Tue, 02 Apr 2019 14:50:58 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2019/3/routing-in-episerver-modules/</guid><link>https://www.codeart.dk/blog/2019/3/routing-in-episerver-modules/</link><category>Addon Development</category><category>Tips and Tricks</category><category>Web Content Management</category><category>Optimizely (Episerver)</category><title>Routing in Episerver Addon Modules</title><description>When your build your own addons, modules and extensions for Episerver CMS, you often want to include controllers - and naturally you want to call these controller - but which url should you use? I always forget this, so here is a little reminder.</description><pubDate>Tue, 19 Mar 2019 21:52:36 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2019/3/distributed-content-delivering-an-episerver-web-experience-with-contentful-content/</guid><link>https://www.codeart.dk/blog/2019/3/distributed-content-delivering-an-episerver-web-experience-with-contentful-content/</link><category>Vision Demos &amp; Prototypes</category><category>Integrations</category><category>Optimizely (Episerver)</category><category>Contentful</category><category>Web Content Management</category><title>Distributed Content: Delivering an Episerver Web Experience with Contentful Content</title><description>The move in the market towards headless could also be seen as a tendency towards a deeper decoupling between content and experience delivery. Inspired by a few discussions, I've tried my hands on an uncommon combination: Contentful providing content delivered through an Episerver web experience layer.</description><pubDate>Tue, 05 Mar 2019 22:37:43 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2019/2/annotate-the-web/</guid><link>https://www.codeart.dk/blog/2019/2/annotate-the-web/</link><category>Web Content Management</category><category>Vision Demos &amp; Prototypes</category><category>.NET Development</category><title>Annotate The Web - Collaborate with comments about websites</title><description>As a little experiment I just launched a basic annotation service, that let's you put comments on screenshots of a web page in order to collaborate during creation.</description><pubDate>Tue, 26 Feb 2019 21:42:34 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2019/2/episerver-advance-recommendations-on-codeart/</guid><link>https://www.codeart.dk/blog/2019/2/episerver-advance-recommendations-on-codeart/</link><category>Optimizely (Episerver)</category><category>Artificial Intelligence</category><category>Web Content Management</category><title>Episerver Advance Recommendations on CodeArt</title><description>Some times you have so much great content on your website that you just wish you had a librarian to let your visitors know what to read next. And with Episerver Advance (Content Recommendations) you can at least have something that comes pretty close. I have been lucky enough to try it out on my site.</description><pubDate>Mon, 04 Feb 2019 15:39:58 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2019/2/sneak-peek---digizuite-dam-for-episerver/</guid><link>https://www.codeart.dk/blog/2019/2/sneak-peek---digizuite-dam-for-episerver/</link><category>Digizuite</category><category>Web Content Management</category><category>Integrations</category><category>Optimizely (Episerver)</category><category>Addon Development</category><title>Sneak Peek - Digizuite DAM for Episerver</title><description>In this blog post I'm sharing a little sneak peek of the editor experience working with an enterprise DAM like Digizuite integrated into Episerver. Early February 2019, at the Episerver Partner Close-up in Stockholm, you can visit Digizuite stand to get an in-depth demo.</description><pubDate>Sat, 02 Feb 2019 11:46:15 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2019/1/on-page-edit-for-images/</guid><link>https://www.codeart.dk/blog/2019/1/on-page-edit-for-images/</link><category>Tips and Tricks</category><category>Web Content Management</category><category>Optimizely (Episerver)</category><title>On Page Edit for Images</title><description>The default image edit mode in Episerver CMS is a little bit boring - it's nothing but an image tag with the actual image. Why not offer a richer on page edit experience for image media as you typically get for pages and blocks?</description><pubDate>Fri, 11 Jan 2019 09:32:52 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2019/1/content-provider-or-content-replication/</guid><link>https://www.codeart.dk/blog/2019/1/content-provider-or-content-replication/</link><category>Optimizely (Episerver)</category><category>Addon Development</category><category>Integrations</category><category>Web Content Management</category><title>Content Provider or Content Replication</title><description>When integrating external content into Episerver, a classic dilemma is whether you should replicate it in, or setup a content provider to pull it in real-time. As part of the Digizuite Integration I have once again given some thought to the dilemma - and here are some pro's and cons.</description><pubDate>Fri, 04 Jan 2019 12:18:31 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/12/content-report-generator/</guid><link>https://www.codeart.dk/blog/2018/12/content-report-generator/</link><category>Tips and Tricks</category><category>Web Content Management</category><category>Addon Development</category><category>Optimizely (Episerver)</category><title>Content Report Generator</title><description>I helped a client with a cool little report generator that can give them an easy overview of all their content - and related metadata, that can be opened in excel and easily sorted, filtered and aggregated. Here it is.</description><pubDate>Wed, 19 Dec 2018 21:09:10 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/12/content-approval-show-content-info-box-with-reviewers/</guid><link>https://www.codeart.dk/blog/2018/12/content-approval-show-content-info-box-with-reviewers/</link><category>Tips and Tricks</category><category>Web Content Management</category><category>Optimizely (Episerver)</category><title>Content Approval: Show Content Info box with Reviewers</title><description>Content approval in Episerver CMS has been around for a while now, but coding examples using it are still fairly hard to find. Here is a simple one that might come in handy.</description><pubDate>Tue, 18 Dec 2018 20:15:57 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/12/digizuite-keeping-developers-in-mind-when-building-the-addon/</guid><link>https://www.codeart.dk/blog/2018/12/digizuite-keeping-developers-in-mind-when-building-the-addon/</link><category>Digizuite</category><category>Optimizely (Episerver)</category><category>Addon Development</category><category>Integrations</category><title>Digizuite: Keeping developers in mind when building the addon</title><description>I have worked on many different addon's for Episerver over the years - and used many more. One thing that often strikes me is that either an Addon is for editors or it is for developers, but rarely both. With the new Digizuite integration we are trying to give both groups the tools they need.</description><pubDate>Thu, 13 Dec 2018 16:06:04 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/11/digizuite-dam-for-episerver/</guid><link>https://www.codeart.dk/blog/2018/11/digizuite-dam-for-episerver/</link><category>Digizuite</category><category>Web Content Management</category><category>Optimizely (Episerver)</category><category>Integrations</category><category>Addon Development</category><title>Digizuite DAM for Episerver</title><description>Digizuite is a pretty serious DAM player in the enterprise market - and I have been lucky enough to be part of their DAM adventure in Episerver land. In this blog (and most likely several future posts) I will share some of the thoughts and approaches we have taken to make a good integration.</description><pubDate>Tue, 27 Nov 2018 15:30:09 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/11/hackyourfuture---awesome-concept/</guid><link>https://www.codeart.dk/blog/2018/11/hackyourfuture---awesome-concept/</link><category>Life as a Coder</category><title>Hack-Your-Future Copenhagen - Awesome Concept!</title><description>In the center of Copenhagen a team of volunteer IT professionals are teaching groups of passionate, dedicated and talented refugees, asylum seekers and immigrants coding skills, to help them land jobs in an IT industry starving for skilled workers. It's working - and it's an awesome concept!</description><pubDate>Wed, 07 Nov 2018 16:16:56 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/11/heading-to-helsinki-dev-meetup/</guid><link>https://www.codeart.dk/blog/2018/11/heading-to-helsinki-dev-meetup/</link><category>Optimizely (Episerver)</category><category>Tech Talk</category><title>Heading to Helsinki Dev Meetup</title><description>Thursday, November 8th I'm really excited to once again have been invited to join the Episerver Developer Meetup in Helsinki!</description><pubDate>Tue, 06 Nov 2018 20:56:44 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/10/design-pattern-tag-pages-instead-of-categories/</guid><link>https://www.codeart.dk/blog/2018/10/design-pattern-tag-pages-instead-of-categories/</link><category>C#</category><category>Optimizely (Episerver)</category><category>Web Content Management</category><category>Tips and Tricks</category><title>Design Pattern: Tag Pages instead of Categories</title><description>Episerver categories is one way to deal with taxonomy on a web site. But often I find that I prefer a simpler, more transparent approach of having Tag Pages replace them. Here's how.</description><pubDate>Mon, 29 Oct 2018 07:00:21 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/10/fb2pdf---how-abandonware-gets-distributed/</guid><link>https://www.codeart.dk/blog/2018/10/fb2pdf---how-abandonware-gets-distributed/</link><category>.NET Development</category><title>FB2PDF - How Abandonware Gets Distributed</title><description>A long time ago I did a small weekend project to fix a problem my wife was having with her e-reader. I shared it on my blog and then forgot all about it. Until now, that is.</description><pubDate>Sat, 27 Oct 2018 09:53:22 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/10/cms-audit-update---visitor-groups-included/</guid><link>https://www.codeart.dk/blog/2018/10/cms-audit-update---visitor-groups-included/</link><category>Tips and Tricks</category><category>Addon Development</category><category>Optimizely (Episerver)</category><category>Web Content Management</category><title>CMS Audit Update - Visitor Groups included</title><description>Earlier this year Nicola Ayan released a nice little plugin that I instantly liked, the CMS Audit tool. It's a great way to get an easy overview over what is being used where in your CMS. In a talk about my favorite addons I showed it at Episerver Ascend Copenhagen and straight away got a question from the audience: Can we use this tool to see where visitor groups are being used? Well, now you can.</description><pubDate>Wed, 24 Oct 2018 18:58:45 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/10/webcast-addons-in-real-life--codeart/</guid><link>https://www.codeart.dk/blog/2018/10/webcast-addons-in-real-life--codeart/</link><category>Web Content Management</category><category>Optimizely (Episerver)</category><category>Tips and Tricks</category><category>Tech Talk</category><title>Webcast: Addons In Real Life @ CodeArt</title><description>Last week I did a couple of talks at Episerver User Group meetings in Denmark about how I've tweaked my Episerver installation at codeart.dk in order to work as a great blogging platform. I also showcase a few of the addons I'm currently working on. Now I recorded the talk, so if you have a 23 minutes to spare, then grab a coffee and make some popcorn and have a look.</description><pubDate>Wed, 17 Oct 2018 14:57:51 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/10/custom-views-for-an-interface/</guid><link>https://www.codeart.dk/blog/2018/10/custom-views-for-an-interface/</link><category>Tips and Tricks</category><category>Addon Development</category><category>Optimizely (Episerver)</category><title>Custom Views for an Interface</title><description>Ever played around with adding custom views in Episerver CMS? It's a really powerful way to extend the UI. But why does it work when you register your view for a model class, but not for an interface implemented by that model? I had a look and found out.</description><pubDate>Fri, 12 Oct 2018 14:30:20 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/10/admin-mode-plugin-to-manage-content-type-suggestions/</guid><link>https://www.codeart.dk/blog/2018/10/admin-mode-plugin-to-manage-content-type-suggestions/</link><category>Tips and Tricks</category><category>Optimizely (Episerver)</category><category>Web Content Management</category><category>Addon Development</category><category>.NET Development</category><title>Admin Mode Plugin to Manage Content Type Suggestions</title><description>If you have a site with a lot of different content types, it can be a good idea to help Episervers Automatic Content Type suggestion feature along. Here is a basic Admin mode tool - in good old webforms (yes, I washed my hands after I made it) that will let administrators / and super-editors configure exactly which content types to suggest when.</description><pubDate>Fri, 12 Oct 2018 05:00:20 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/10/auto-tagging-using-search/</guid><link>https://www.codeart.dk/blog/2018/10/auto-tagging-using-search/</link><category>Web Content Management</category><category>Vision Demos &amp; Prototypes</category><category>Tips and Tricks</category><category>Information Retrieval</category><category> Elastic Search</category><category>Artificial Intelligence</category><category>.NET Development</category><title>Auto Tagging Using Search</title><description>You don't always have to go the full AI route to get AI like results. In this blog post I'll describe an approach I've used several times (and for multiple purposes) with pretty decent results. Instead of classification algorithms, deep learning or neural networks I'll just simply query my favorite search engine.</description><pubDate>Sun, 07 Oct 2018 09:47:24 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/10/which-dojo-topics-are-published-in-the-episerver-cms-ui/</guid><link>https://www.codeart.dk/blog/2018/10/which-dojo-topics-are-published-in-the-episerver-cms-ui/</link><category>Addon Development</category><category>Tips and Tricks</category><category>Optimizely (Episerver)</category><title>Which Dojo Topics are published in the Episerver CMS UI?</title><description>If you, like me are venturing into the mythical and magical world of dojo-in-episerver-ui, where elfs and wizards rule, you might also find this list useful.</description><pubDate>Fri, 05 Oct 2018 07:33:17 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/10/storage-performance-aftermath---elasticsearch-joins-the-fight/</guid><link>https://www.codeart.dk/blog/2018/10/storage-performance-aftermath---elasticsearch-joins-the-fight/</link><category>Azure</category><category>C#</category><category> Elastic Search</category><category>.NET Development</category><title>Storage Performance Aftermath - ElasticSearch Joins the Fight</title><description>In 3 previous blog posts I compared various azure storage technologies with regards to performance and scalability in typical web usage scenarios. I was actually done with the series, but with all that interesting data, I decided to throw my current favorite search/storage/no-sql technology into the mix to get an idea about how it all compares. So - ElasticSearch enters the competition!</description><pubDate>Tue, 02 Oct 2018 15:45:07 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/9/azure-storage-performance-showdown-post-3/</guid><link>https://www.codeart.dk/blog/2018/9/azure-storage-performance-showdown-post-3/</link><category>Tips and Tricks</category><category>Azure</category><category>.NET Development</category><title>Azure Storage Performance Showdown (Post 3)</title><description>This is the 3rd post in my Azure Storage Performance comparison. So far we've examined the typical scenario of storing/retrieving data that most dynamic websites of today deal with. In this post, we'll take a closer look at Update and Delete - and finally review the financial aspects.</description><pubDate>Wed, 26 Sep 2018 18:32:05 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/9/azure-storage-performance-showdown-post-2/</guid><link>https://www.codeart.dk/blog/2018/9/azure-storage-performance-showdown-post-2/</link><category>.NET Development</category><category>Azure</category><category>Tips and Tricks</category><title>Azure Storage Performance Showdown (Post 2)</title><description>In this second post of my performance series looking at Azure storage we're going to take a good look at Read speeds for the various storage types.</description><pubDate>Mon, 24 Sep 2018 05:00:33 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/9/content-providers-and-flat-content/</guid><link>https://www.codeart.dk/blog/2018/9/content-providers-and-flat-content/</link><category>Tips and Tricks</category><category>Integrations</category><category>Optimizely (Episerver)</category><category>Web Content Management</category><title>Content Providers and Flat Content</title><description>A classic challenge in many CMS - and also in Episerver - has always been what do you do with large amounts of non-hierarchical/flat content?  There has been many workarounds along the way and I was just on my way to make yet another when I discovered a well hidden secret deep in the belly of Episervers UI: The Asset widget (that holds blocks and media items) does in fact have infinite scrolling - which in turn can support incredibly large flat structures!</description><pubDate>Sat, 22 Sep 2018 21:49:37 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/9/azure-storage-performance-showdown/</guid><link>https://www.codeart.dk/blog/2018/9/azure-storage-performance-showdown/</link><category>Tips and Tricks</category><category>.NET Development</category><category>Azure</category><title>Azure Storage Performance Showdown (Post 1)</title><description>Almost every project has some data you want to persist, then read, search through, update and eventually delete. With Azure there are loads of great possibilities - for example Blob Storage, Table Storage, CosmosDb, SQL Azure. I've decided to do some simple and fairly naive tests to compare these for some typical usage scenarios and see how they perform.</description><pubDate>Fri, 21 Sep 2018 06:02:24 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/9/how-are-images-rendered/</guid><link>https://www.codeart.dk/blog/2018/9/how-are-images-rendered/</link><category>Web Content Management</category><category>Tips and Tricks</category><category>Optimizely (Episerver)</category><title>Understanding Episerver CMS - How are images rendered</title><description>When using reusable content such as images, the actual HTML rendering of them can happen multiple places. But when is what used? And how can you customize it?</description><pubDate>Wed, 19 Sep 2018 19:33:26 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/9/vs2017-debugger-timeout/</guid><link>https://www.codeart.dk/blog/2018/9/vs2017-debugger-timeout/</link><category>.NET Development</category><category>Tips and Tricks</category><category>Optimizely (Episerver)</category><title>VS2017 Debugger Timeout</title><description>A really annoying problem has been bothering me for a while with VS2017. When debugging most web apps, I often encounter time-outs. For some reason it happens nearly every time I do it with Episerver projects. Here is the solution.</description><pubDate>Mon, 10 Sep 2018 05:45:00 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/9/gist-content-provider/</guid><link>https://www.codeart.dk/blog/2018/9/gist-content-provider/</link><category>Integrations</category><category>Addon Development</category><category>.NET Development</category><category>Web Content Management</category><category>Optimizely (Episerver)</category><title>Gist Content Provider</title><description>Always preferring coding over 'real work' I figured that it would be pretty neat if I could just drag and drop my gists on GitHub directly into my blog posts here in Episerver in order to embed them. Naturally, a content provider seemed like the right choice...</description><pubDate>Mon, 10 Sep 2018 05:00:20 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/9/automatic-blog-hierarchy/</guid><link>https://www.codeart.dk/blog/2018/9/automatic-blog-hierarchy/</link><category>Optimizely (Episerver)</category><title>Automatic Blog Hierarchy</title><description>Here's another little trick I use on this blog. Whenever a new blog post is created, it will automagically build a year/month hierarchy of list pages and place the blog post accordingly.</description><pubDate>Thu, 06 Sep 2018 05:00:21 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/9/error-no-parameterless-constructor-defined-for-this-object/</guid><link>https://www.codeart.dk/blog/2018/9/error-no-parameterless-constructor-defined-for-this-object/</link><category>Tips and Tricks</category><category>.NET Development</category><category>C#</category><category>Optimizely (Episerver)</category><title>Error: No parameterless constructor defined for this object</title><description>Ever started a site from scratch rather than the reference site and run into this classic error? Here's a hint for you.</description><pubDate>Wed, 05 Sep 2018 05:00:21 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/9/good-ol-dynamic-properties/</guid><link>https://www.codeart.dk/blog/2018/9/good-ol-dynamic-properties/</link><category>C#</category><category>Optimizely (Episerver)</category><title>Good ol' Dynamic Properties</title><description>There was a time, when men were made of steel, ships made of wood, Episerver was spelled with a weird capitalization and the CMS had something called Dynamic Properties that was usually misused. They've been gone for a while, but I miss them, so here's yet another attempt at solving the property inheritance challenge.</description><pubDate>Mon, 03 Sep 2018 15:28:00 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/9/episerver-static-web-site-generator/</guid><link>https://www.codeart.dk/blog/2018/9/episerver-static-web-site-generator/</link><category>Azure</category><category>Optimizely (Episerver)</category><title>Episerver Static Web Site Generator</title><description>Azure Storage has a new cool feature in preview - Static Website. But what exactly does it do - and how can I connect my Episerver installation to it? I decided to find out.</description><pubDate>Sun, 02 Sep 2018 20:00:00 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/8/starting-out-on-my-own/</guid><link>https://www.codeart.dk/blog/2018/8/starting-out-on-my-own/</link><title>Starting out on my own</title><description>September 1 2018, I'm starting a new chapter in my life - as a freelancer in my own company</description><pubDate>Tue, 14 Aug 2018 12:06:14 Z</pubDate></item><item><guid isPermaLink="true">https://www.codeart.dk/blog/2018/6/back-to-blogging/</guid><link>https://www.codeart.dk/blog/2018/6/back-to-blogging/</link><title>Back to Blogging</title><description>Welcome to my new blog and my new company, CodeArt</description><pubDate>Sun, 03 Jun 2018 18:54:36 Z</pubDate></item></channel></rss>