<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">Blog posts by Chuhukon</title><link href="https://world.optimizely.com/blogs/chuhukon/" /><updated>2025-07-04T08:30:26.0000000Z</updated><id>https://world.optimizely.com/blogs/chuhukon/</id><generator uri="https://world.optimizely.com/blogs/chuhukon/" version="2.0">Optimizely World</generator><entry><title>How Optimizely SaaS CMS Isn’t Just Another Commodity</title><link href="http://codevelo.us/?p=512" /><id>http://codevelo.us/?p=512</id><published>2025-07-04T07:38:12.0000000Z</published><updated>2025-07-04T08:30:26.0000000Z</updated><author><name>jeroen@marvelous.nl</name></author><category term="Blog post" /><summary type="html">CMS platforms these days are becoming commoditised. The modelling of most systems lends itself to automation. Giving marketers more flexibility with less need for a developer. This does give developers more room to dive into the real challenges.</summary></entry><entry><title>Creating autologin functionality for local development</title><link href="http://codevelo.us/?p=426" /><id>http://codevelo.us/?p=426</id><published>2024-01-05T11:16:44.0000000Z</published><updated>2024-01-05T11:30:29.0000000Z</updated><author><name>jeroen@marvelous.nl</name></author><category term="Blog post" /><summary type="html">When working on Optimizely websites for different clients it is sometimes cumbersome to keep track of all the credentials to use to login to the CMS. Especially when using different databases to test several scenarios, being up-to-date with the latest production data or if the website is using Azure B2C in production.</summary></entry><entry><title>Simplifying Content Management using local AI with LLAMA and Optimizely 12</title><link href="http://codevelo.us/?p=402" /><id>http://codevelo.us/?p=402</id><published>2023-11-03T07:50:02.0000000Z</published><updated>2023-11-03T08:30:30.0000000Z</updated><author><name>jeroen@marvelous.nl</name></author><category term="Blog post" /><summary type="html"> One of the time-consuming tasks for content editors is filling in of metadata for web pages. But what if we told you there’s a solution that can automate this process?

In this blog post, we’ll explore how LLama, a language model, can help content editors by automatically generating metadata fields in Optimizely CMS 12.</summary></entry><entry><title>Our first steps into local AI</title><link href="http://codevelo.us/?p=392" /><id>http://codevelo.us/?p=392</id><published>2023-10-04T08:37:32.0000000Z</published><updated>2023-10-04T09:20:34.0000000Z</updated><author><name>jeroen@marvelous.nl</name></author><category term="Blog post" /><summary type="html">After a consumer of tools like ChatGPT and CoPilot, we as developers like to dive deeper into it. How does it work? Where to start? Can I create my own? etc. In this blog we dive deeper into our first steps to run LLM's on our local machine</summary></entry><entry><title>Chaplin – The movie pattern practice</title><link href="http://codevelo.us/?p=349" /><id>http://codevelo.us/?p=349</id><published>2022-10-20T13:02:58.0000000Z</published><updated>2023-02-17T11:30:46.0000000Z</updated><author><name>jeroen@marvelous.nl</name></author><category term="Blog post" /><summary type="html">It has been a while since we posted our last blogpost. But not without a reason. Today I am happy to share our thoughts on where we have worked on the last year. Start discovering doing product development in our organisation we felt the need of a more scaleable idea of doing software development. The result is Chaplin (The Movie Pattern Practice).</summary></entry><entry><title>External Catalog – Chapter 4 – Putting it all together</title><link href="http://codevelo.us/?p=297" /><id>http://codevelo.us/?p=297</id><published>2020-09-18T07:00:00.0000000Z</published><updated>2020-09-18T07:35:14.0000000Z</updated><author><name>jeroen@marvelous.nl</name></author><category term="Blog post" /><summary type="html">Finally we are going to put everything together. And share our verdict.</summary></entry><entry><title>External Catalog – Chapter 3 – Relations, Pricing and Inventory</title><link href="http://codevelo.us/?p=294" /><id>http://codevelo.us/?p=294</id><published>2020-09-17T07:00:00.0000000Z</published><updated>2020-09-17T07:34:28.0000000Z</updated><author><name>jeroen@marvelous.nl</name></author><category term="Blog post" /><summary type="html">In this post we dive deeper into the `RelationRepository`, `CatalogContentStructureProvider`, `IInventoryService` and `IPriceService`. 4 items you need to be aware of before putting everything together.</summary></entry><entry><title>External Catalog – Chapter 2: References, Relations and Identities</title><link href="http://codevelo.us/?p=269" /><id>http://codevelo.us/?p=269</id><published>2020-09-16T07:00:00.0000000Z</published><updated>2020-09-16T07:35:12.0000000Z</updated><author><name>jeroen@marvelous.nl</name></author><category term="Blog post" /><summary type="html">As explained in the introduction of this series implementing a custom Catalog is not only overriding / replacing the `CatalogContentProvider`. In this chapter we are dive deeper into the the realted classes which do need some attention.</summary></entry><entry><title>External Catalog – Chapter 1: The Catalog Content Provider</title><link href="http://codevelo.us/?p=266" /><id>http://codevelo.us/?p=266</id><published>2020-09-15T07:00:00.0000000Z</published><updated>2020-09-15T07:01:02.0000000Z</updated><author><name>jeroen@marvelous.nl</name></author><category term="Blog post" /><summary type="html">When you have written a content provider before you are aware that you have to have to point it to a location where to 'start' from. For a `CatalogContentProvider` we have to add some code to support this way of working as well. In this chapter we dive deeper into whats needed for this.</summary></entry><entry><title>External Catalog – Introduction</title><link href="http://codevelo.us/?p=262" /><id>http://codevelo.us/?p=262</id><published>2020-09-14T14:00:00.0000000Z</published><updated>2020-09-14T14:30:46.0000000Z</updated><author><name>jeroen@marvelous.nl</name></author><category term="Blog post" /><summary type="html">Episerver Commerce is a very flexible product that can be customized to suit every e-commerce business needs. Almost every aspect can be customized though the way IOC is implemented in the product. But because everything can be customized to suit your needs does not mean that it's good at everything, the UI of Episerver Commerce, and mainly the Catalogue part of it is not a walk in the park to work with for everyone.</summary></entry><entry><title>Episerver Find – More control over indexing your Commerce catalogs</title><link href="http://codevelo.us/?p=300" /><id>http://codevelo.us/?p=300</id><published>2020-09-02T09:15:08.0000000Z</published><updated>2020-09-02T09:30:59.0000000Z</updated><author><name>jeroen@marvelous.nl</name></author><category term="Blog post" /><summary type="html">Controlling Episerver Find by determining which catalogs and how many items to be indexed.</summary></entry><entry><title>Complex data using Episerver forms</title><link href="http://codevelo.us/?p=235" /><id>http://codevelo.us/?p=235</id><published>2020-05-04T18:15:45.0000000Z</published><updated>2020-05-04T18:31:37.0000000Z</updated><author><name>jeroen@marvelous.nl</name></author><category term="Blog post" /><summary type="html">About how to send context related data or other complex data to an external endpoint using Episerver Forms with valid JSON.</summary></entry><entry><title>The "container" practice</title><link href="http://codevelo.us/?p=204" /><id>http://codevelo.us/?p=204</id><published>2020-01-03T12:30:00.0000000Z</published><updated>2020-01-03T13:02:15.0000000Z</updated><author><name>jeroen@marvelous.nl</name></author><category term="Blog post" /><summary type="html">Containers seems to be a nice solutions, but it doesn't always feel right to use this practice. I am going to share the considerations of using a container and share other features which maybe fits a "container use-case" better.</summary></entry><entry><title>The "container" practice</title><link href="http://codevelo.us/?p=204" /><id>http://codevelo.us/?p=204</id><published>2020-01-03T11:30:00.0000000Z</published><updated>2020-04-03T07:01:19.0000000Z</updated><author><name>jeroen@marvelous.nl</name></author><category term="Blog post" /><summary type="html">Containers seems to be a nice solutions, but it doesn't always feel right to use this practice. I am going to share the considerations of using a container and share other features which maybe fits a "container use-case" better.</summary></entry><entry><title>Cleanup blob storage</title><link href="http://codevelo.us/?p=211" /><id>http://codevelo.us/?p=211</id><published>2019-12-11T12:28:36.0000000Z</published><updated>2019-12-11T13:02:32.0000000Z</updated><author><name>jeroen@marvelous.nl</name></author><category term="Blog post" /><summary type="html">Sometimes I see blobstorages growing at customers side. It can be the result of a job, or because the storage is used by a couple of developers or because Develop and Test are using the same storage. For all these cases I have created this small script. Which does easily create a clean new container for you.</summary></entry><entry><title>Unmapped? ContentProviders</title><link href="http://codevelo.us/?p=185" /><id>http://codevelo.us/?p=185</id><published>2019-10-21T20:34:38.0000000Z</published><updated>2019-10-21T21:02:26.0000000Z</updated><author><name>jeroen@marvelous.nl</name></author><category term="Blog post" /><summary type="html">The CMS is not the only place where content is served from. A modern website does present content from different sources like; Video platforms, DAM systems, PIM systems or even other "content networks". We do consult on a couple of integrations where we have the need to deliver from these kind of sources. Content Providers to the rescue. In this post I am going to share some challenges we have experienced down the road, especially in relation on the IdentityMappingService.</summary></entry><entry><title>Language strategies</title><link href="http://codevelo.us/?p=165" /><id>http://codevelo.us/?p=165</id><published>2019-08-23T10:00:00.0000000Z</published><updated>2019-08-23T11:02:15.0000000Z</updated><author><name>jeroen@marvelous.nl</name></author><category term="Blog post" /><summary type="html">You will be surprised how many strategies are possible and what kind of decisions you can be made for handling languages. In this blog post I like to share some default strategies and thoughts about how to setup a multi-lingual / multi-country website.</summary></entry><entry><title>Implementing Azure B2C authentication for multiple TLD websites</title><link href="http://codevelo.us/?p=157" /><id>http://codevelo.us/?p=157</id><published>2019-06-05T13:23:31.0000000Z</published><updated>2019-06-05T14:02:12.0000000Z</updated><author><name>jeroen@marvelous.nl</name></author><category term="Blog post" /><summary type="html"></summary></entry><entry><title>Serving the context</title><link href="http://codevelo.us/?p=150" /><id>http://codevelo.us/?p=150</id><published>2019-05-27T13:29:40.0000000Z</published><updated>2019-05-27T14:02:11.0000000Z</updated><author><name>jeroen@marvelous.nl</name></author><category term="Blog post" /><summary type="html">The beauty of a system like Episerver is that you can rely on default patterns and practices. In this post I like to show you how you can deal with context related stuff by using a pattern we use in every other application architecture as well.</summary></entry><entry><title>QA – Block rendering practices</title><link href="http://codevelous.wordpress.com/?p=99" /><id>http://codevelous.wordpress.com/?p=99</id><published>2019-04-15T11:00:42.0000000Z</published><updated>2019-04-15T12:02:11.0000000Z</updated><author><name>jeroen@marvelous.nl</name></author><category term="Blog post" /><summary type="html">A collegeau CMS developer asked me a maybe general but very important question the other day. Q; "When creating blocks, do you tend to put "structure" markup in block views?" My answer is it depends!</summary></entry></feed>