#Sitecore Hackathon 2026 : 24 Hours of Adventures

I think I lost track of how many hackathons I have participated in. Each one is different win or lose. This year’s was no exception. Although I was doing this solo I had AI helping me when needed for the first time. It was great to get the additional help. No AI is not replacing developers. However as developers though we need to embrace it as an another tool.

The following were this year’s categories.

1. Best Marketplace App for Sitecore AI – Build something publishable. Not just a demo.

2. Applied AI Within the Sitecore Execution Pipeline – Demonstrate how AI can be embedded within Sitecore execution flows to improve quality, governance, personalization, or performance.

3. Best Tool Supporting Sitecore Development (Not Built on Sitecore)

I chose 1. Because for quite a while I had an idea of a great marketplace app. It would be similar to something I did in the content hub, but with the flexibility of a marketplace app I could do more. To premise this I think it is important for SEO considerations for websites, but more importantly is accessibility. I recently did training for accessibility. It was very eye opening and I learned a lot of things I did not consider before. So my goal was to make something useful for strategists, marketers and content editors. Here is kind of how it went. Comic strip created by AI.

Hour by Hour

Here is a good breakdown of the hours spent. I think I am finally caught up with sleep although daylight savings time did not help.

1-4 Make sure access rights is working in the repository and get the marketplace starter kit. Merge the code needed into my repository.

5-8 Got things working, but not sure if it is good enough. I think the SEO suggestions should also include accessibility checking and suggestions.

9-10 Worked with AI to help me structure my code better. While doing this it knew what I was doing somehow and offered me suggestions to add the app to help with what I wanted to accomplish.

11-14 Looking good and got things working. I really like how it turned out.

15-24 Off and on getting documentation right and making sure I didn’t miss anything. Made a few last minute changes to the documentation and code.

What I Discovered

  • No matter the plan and the idea you have there is always something you will encounter that might derail them. I have used OpenAI before in React components, but not in a marketplace app. I had to learn how to incorporate it so it would work within the marketplace. It also had to be much cleaner. No POC, it needed to work.
  • Ok got things working, but let’s face it you need something that stands out. I wrote down all the stuff I wanted to add. Being solo has its drawbacks because you don’t have a human to bounce ideas off of. So I decided to use AI to bounce some questions off of. It was like having a virtual partner. I wasn’t so lonely anymore. 🙂
  • Structuring your code is important. I am coming from an MVC background so there is some differences in my opinion on how you should structure the code. Similar to going from one car to another. They are both cars, but two different cars.
  • AI can help you document and format your code. This is definitely something that helps make sure things are clean and documented. Always double check comments are correct though.
  • The single most important thing is know your audience. Not every app is for you. I had to think how someone who would be using this would want to use this. It needed to be helpful and really add some value.

The Big Reveal

So here is the big reveal. Screenshot and video below. I chose to do a panel app that appears in the page editor. Using AI SEO suggestions were generated along with accessibility issues.

So it was a great relief getting something handed in on time. I don’t know what the results will be, but I feel like lessons learned is the most important win you can have. I got know something I plan to use more in the future. AI is here. A great tool when you need help.

Rethinking #Sitecore Content Hub: Dissecting an External React Component

In my previous blog I talked about how to get started with external components. One of my goals when utilizing them was to be able to take data from an asset and use that in a component. The possibilities you can do are endless. I am going to dive into an example of a working component that will receive a value from CH and display it.

Let’s start with the following. In this example we will see files with the .tsx extension.They are typescript files that contain JSX syntax.

Starting with the clientExample.tsx you will see the following code. See comments in the code for a breakdown of what the syntax does.

//Helper Libraries
import { entityLoadConfigurationFromOptions } from "@/lib/data/dataHelpers";
import type { IModuleProps } from "@/lib/types";
import { useEffect, useMemo, useState } from "react";

//Sets the property and value that will be received. In this case you can send any property value as long as it is a string.
export type ClientExampleConfig = {
  propertyName: string;
};

export default ({ createClient, config, options }: IModuleProps<ClientExampleConfig>) => {
  const [propertyValue, setPropertyValue] = useState<string>();

//The createClient is provided by the Content Hub to communicate with the component.
  const client = useMemo(createClient, [createClient]);

//This code will only load the configured property. Important not to load everything for better performance.
  const loadConfiguration = useMemo(() => entityLoadConfigurationFromOptions({ properties: [config.propertyName] }), [config.propertyName]);

//Fetches the entity. When the entity changes the model loads. Gets the property value and stores it in state.
  useEffect(() => {
    (async () => {
      if (!client || !loadConfiguration || !options.entityId) setPropertyValue(undefined);
      else {
        const entity = await client.entities.getAsync(options.entityId, loadConfiguration);
        setPropertyValue(entity?.getPropertyValue(config.propertyName) as string);
      }
    })();
  }, [client, options.entityId]);

//This displays the property value. This part should look somewhat familiar as it uses HTML.
  return (
    <dl>
      <dt>{config.propertyName}</dt>
      <dd>{propertyValue ? propertyValue : <em>Not set</em>}</dd>
    </dl>
  );
};

Tying this together with the index.tsx you will see the following code. See comments in the code for a breakdown of what the syntax does.

//Uses a helper library to create
import createModule from "@/lib/createModule"; 
//Imports the React component and adds the configuration type it expects.
import ClientExample, { ClientExampleConfig } from "./clientExample"; 

//These lines bring it all together to create the module.
export default createModule<ClientExampleConfig>(
props => <ClientExample {...props} />
 );

As I would suggest to everyone Storybook is a powerful tool that I highly recommend to test components. Let’s take a look at clientExample.stories.tsx.

//Defines component story and variations.
import type { Meta, StoryObj } from "@storybook/react";
//Defines the configuration.
import ClientExample, { ClientExampleConfig } from "./clientExample";
//Helpers that simulate Content Hub behavior.
import { CreateMockEntity, CreateMockModuleProps, CreateMockQueryResponse, MockApiHandler, MockBaseUrl, MockEntityId, MockRoutes } from "@/lib/mockData";

//MSW = Mock Service Worker
//Intercepts HTTP calls in the browser and replace it with a mocked responses.
import { http, HttpResponse } from "msw";

//These can be set to whatever values you want to test.
const mockedPropertyName = "title";
const mockedPropertyValue = "Hello World!";

//Registers the story and supplies the default props.
const meta = {
  title: "Modules/Client Example",
  component: ClientExample,
  args: {
    ...CreateMockModuleProps<ClientExampleConfig>({ propertyName: mockedPropertyName }),
    options: {
      entityId: MockEntityId,
    },
  },
  tags: ["autodocs"],
} satisfies Meta<typeof ClientExample>;

export default meta;
type Story = StoryObj<typeof meta>;

//Defines the story
export const Default: Story = {
  parameters: {
    msw: {
      handlers: [
        MockApiHandler,
        http.post(MockRoutes.entities_by_query.href, () => {
          const entity = CreateMockEntity({ [mockedPropertyName]: mockedPropertyValue });
          return HttpResponse.json(CreateMockQueryResponse([entity]));
        }),
      ],
    },
  },
  args: {},
};

As stated in my previous blog the title and any asset property can be passed into a React component as you see below.

For this however we will run a quick test in Storybook from the command line in the project (npm run storybook;). You can see the results below:

Wrapping Up

I always like to give people the basics when it comes to getting started. I hope this answers some of your questions on the structure of a React component and how it is used with Sitecore’s Content Hub. Let me know if you have any questions. You can also refer back to my previous blog. Now boldly go and create some new external React components!

Sitecore Content Hub React External Components

#Sitecore Symposium 2025 – Highlights of what I am Excited About #sitecoresym

Always excited about this time of year, because the symposium brings a lot of new announcements and energy. As someone who has attended several symposiums, here is my list of what I am excited about.

  • To kick things off I plan on attending the general announcements.
    • Next is Now – Eric Stine the CEO of will be discussing the current state of the market. Hearing from the CEO always starts on a positive note.
    • CMO Michelle Boockoff-Bajdek will set the week of what to look ahead to.
  • AI – This of course it is hot topic and there will be many presentations to attend for it. My advice is find the one you are interested in, but also try something out of your comfort zone. Here are some of the ones I am looking at.
    • Sitecore’s AI roadmap: How agentic frameworks will transform digital experience – Mo Cherif
    • Unleashing AI innovation: the latest features in Sitecore Stream for Platform DXP – Marcus Heath and Ivan Brygar
    • How Sitecore’s AI features can supercharge the five stages of the content lifecycle –
      Robert McGovern
    • Zero-click killed the SEO star: Optimizing content for an AI-first audience with GEO – Brandon Bruno
  • Networking – Always good to see the people that you interact throughout the year in person. It is also an opportunity to make some new connections. I am excited to get to attend the parks with the MVP and Sitecore community.
  • Looking at the agenda, I like to attend non-technical presentations that I feel are beneficial to RBA and our clients. Here are some of the presentations I plan on attending.
    • Designing inclusive experiences for everyone: Build a better journey map on Sitecore -Kelsey Lindell and Megan Mueller Jensen
    • Creating the copilots your marketing will actually thank you for – Vasiliy Fomichev and Martin Miles.
  • New knowledge for developers. – As a developer we never stop learning. I am excited to attend presentations that will help me grow as a developer. Using the knowledge I gain I can show to my colleagues and bring new ideas to my clients. Here are just some of the technical presentations I am looking forward to.
    • Ready, set, launch: Running ASP.NET Core XM Cloud sites in production – Rob Earlam
    • Cutting Sitecore development time by up to 80% with AI – Rajitha Khandavalli and Kevin Suarez
    • Rethinking data modeling in the new content platform – Andrew Liu and Liz Nelson
    • Migrating an XM/XP module to XM Cloud Marketplace – Erica Stockwell-Alpert
    • You’ve been asking, and we’ve been listening: .NET is coming to platform XM/XP – Vignesh Vishwanath and Maxim Sidorenko
  • Sitecore Run – Okay I needed to put this one out there as I hope to run with others. I love running and Sitecore maybe equally so I love it when the worlds collide.
  • The meeting of the Robs. So we have a ton of Robs in the Sitecore world. I hope we can take a photo together. So if you are a Rob and are reading this let’s plan a date time.

Feeling like a Kid in a Candy Store with #Sitecore Stream for 10.4 DXP

One of the things announce during Symposium that Sitecore Stream would be available for all platforms. I got to first use it in the Content Hub, but I was finally able to try it on DXP. I found it is available on the demo portal so I quickly deployed a new site. So here is the features I found and some fun tests I was able to do.

Single Line Text

All fields will work similar so I will start with a Single Line Text. In an AI enabled component you will see Sitecore Stream symbol. Clicking on it will bring up an AI enabled search.

The following will appear. I am going to ask “Can you make a title about something supernatural?”. Then click the Generate button. This is what we get.

If I select a Brand and generate again this is what I get.

Now I am going to use the Variants to generate option and choose number 3 to use.

Now we have a title to work with to make things really pop.

Rich Text Editor

The RTE field works exactly the same way as Single Line Text field, but will give a longer text version.

Let’s test this a little more though. I am going to have it create a bulleted list with and image of something supernatural. Now I am really impressed.

How about if we ask for something in a different language? Sitecore Stream can do that too.

Experience Editor

Works in Experience Editor too in case you were wondering.

Configuration

I didn’t have authorization because this is a demo site, but in the Desktop there is a Stream section added that you can configure Sitecore Stream.

Future enhancements?

This is a great start and hope things continue to be added. One thing I liked to see is an image generator for customers not in the Content Hub.

#Sitecore Back to Basics : Unlock Time Savings Using Raw Values.

Shortcuts = time savers. Sometimes the easy way is just as efficient as the hard way. Raw values are not just something that is checked in the content editor menu ribbon by accident. Utilizing them can save valuable time and also help you fix things that are not so easy to fix. I will take you through some examples when I have used them.

Turning on Raw Values

First though let’s turn them on. You can find them on the top ribbon under View. Just check Raw values. Keep in mind if you don’t want to see them, just uncheck them to go back to normal. There is always a case when someone forgets to uncheck them or accidentally checks them.

Rich Text

This is one is pretty straightforward. I have come across issues with an RTE field having HTML that just does not want to display right. Even when you select Edit HTML it still doesn’t work. With raw values turned on you can see what exactly is in that field and edit it. Especially handy for the expert front-end developers.

Not Raw:
Raw:

Multilists

Multilists visually look like a simple selection. Sometimes though you want the same values in a similar item and don’t feel like clicking the same selections. Or you are searching for a template that is inherited and you don’t feel like clicking through the tree. Raw values to the rescue.

Typical Multilist – Not Raw:
Raw:

As you can see above the values that are selected show as a GUID separated with a Pipe | symbol. If you want to have the same values in another item, just copy the values. Then, paste them into the same field in the other item. Or copy the GUID you want. Add a | and the GUID to the item field you are copying to. This also comes in handy for template inheritance. It is often easier to use the template GUID being inherited to search and find it.

Presentation Layer

This is one of my favorite ways to use raw values. This has saved time many times. Using raw values in presentation layers can fix some of the following issues by copying, pasting, removing values.

  • Different layout between language versions.
  • Accidentally removed rendering.
  • Remove rendering that has been deleted based on GUID.
Not Raw:
Raw:

PowerShell

Now you have an idea of how values are stored in Sitecore. When writing PowerShell scripts basically updating something can be simple as setting the GUID list.

$_.Editing.BeginEdit()
$_.Fields["SpeakerList"].Value = "{0D17BE5B-EC2A-4296-8D3F-930EB60DFE7C}|{1930BBEB-7805-471A-A3BE-4858AC7CF696}|{6DB09CEF-64A8-52A3-A980-38408109C4D7}|{47151711-26CA-434E-8132-D3E0B7D26683}|{6650FB34-7EA1-4245-A919-5CC0F002A6D7}";
$_.Editing.EndEdit()

Your Turn

So how do you use Raw Values? I know there is more uses for them.

Streamlining #Sitecore Content Hub Searches with AI Visual Searching

A while back I got to preview the concept of the visual search feature in content hub. Since then I have been anticipating its release. It is officially here and I wanted to put it to the test.

To access this feature, navigate to the Assets.

Click on the AI button and you should see the following. You will see a few things show up. You can use the first icon to search by image. The second icon lets you search by color. You can also type in keywords.

Click on the first icon to search by an image. You will see the following file upload screen. You then can select a local image to search by. In this case I will select a runner in a city.

After uploading the image, a search for images will show related images.

Next using the search by color option you will see the following. Choose a color.

Once the color is chosen you will see images related to that color.

Once you have results you can even break things down further by adding search text.

What if this is a common search that a content author does? Well you can save this search and use it again if needed. Simply click on the Save button.

The next screen will appear. You can then name your search and share with other content authors.

When you go back to assets you will then have the search under the saved searches.

What if you just wanted to search by keywords? Well you can do that to. Simply type in your search keys and click on the arrow. The keyword(s) will be used to visually search images.

If you need to include existing assets for visual search you can do so in the AI settings.

So using this is something I can see streamlining the searching process and making it much faster in retrieving assets. In my opinion this is one of the best search features I have seen. It stands out not only in the content hub, but everywhere else.

Excited to Announce I was Awarded #Sitecore Technology MVP 2025

“The miracle is this: The more we share the more we have.”— Leonard Nimoy. I got the news last week and couldn’t wait to share it. I am very grateful for this honor. This was the eight time I was able to achieve it. Congratulations to all the repeating MVPs and new ones!

This past year it took me a little time to find my groove. When I did, I was able to run with some new ideas. I continued with the basics of Sitecore. Which I plan to do some blog posts for more basics this year. I think that has been very beneficial not only for sharing with others, but for myself. Later in the year I found my passion again for the Sitecore Content Hub. I was able to present some of the new things I learned and I have been continuing that this year. To see my timeline of last year click here.

My goals this year are simple.

  • More blogs about the Content Hub.
  • More back to basics blogs.
  • Get YouTube videos posted.
  • Present at every opportunity I can.
  • Share my knowledge with my client and co-workers I gain from being an MVP.

So you made it this far. If you want some advice on working towards an MVP, this is what I can tell you.

  • Share your knowledge on how you solved something. Someone else may need to know the solution too.
  • Take advantage of every opportunity to learn something. Watch all the videos and read all the documentation you can. You may come up with new ideas.
  • Find something you are passionate about and run with it.
  • To share write blogs, present, create vlogs etc…
  • Help solve and post issues on Slack and Sitecore Stack Exchange.
  • Join the SItecore MVP Mentor Program. Details coming soon I think.

Sitecore Symposium Summary and Final Thoughts #SitecoreSYM

Still unwinding from one of the best weeks I have spent in Nashville. It was the only week I ever spent there. I am sure the Sitecore Symposium made it better than any other week.In this blog I will break down some of the highlights and give you my final thoughts. The them for the Symposium was The Power to Build. That is something that rings true.

Food Tour

One of the best things I did in Nashville was the food tour. It was well organized by Chet. Learned some good history and had some great food.

MVP Summit

I can’t share much yet, but as always a great time. Learned a lot and got a lot of questions answered. I got to meet my mentee in person so that was really exciting. He is doing great things and I have no doubt he will be a future MVP.

Sitecore Stream

AI is the current and the future hottest technology. With Sitecore Stream AI will be part of the DNA in all of Sitecore products. We have probably heard a lot already about Sitecore Stream. Here are some of the things I believe it will offer. To find out more go here.

  • AI Enhanced Workflows
  • Consistent content and branding.
  • Faster website page creation.
  • Content remains the property of the customer.

XP

It not be the new shiny ring, but it sure has not lost its luster.

  • Updates are released through various versions of Sitecore prior to XP, minimizing the potential for breaking changes.
  • XP will also gain from Sitecore Stream and Copilot (AI features).
  • XP will continue to get support.
  • Copilot AI will be integrated into the Content Editor. It will help in generating textual content, like titles and descriptions. It will also correct grammar and spelling errors.
  • There will be a choice to use Sitecore Search instead of SOLR.
  • MVC to Headless Migration Tooling will be provided.

Content Hub

  • More AI features added.
  • Sharing of assets between DAM and CMP.
  • Can use your own AI.
  • AI Integration: The focus is on injecting AI into business processes, particularly in content creation and marketing functions. Discussions revolved around challenges with using off-the-shelf AI tools and the need for business-specific logic.
  • Content Strategy: The aim is to enhance the quality of photography from various partners. It also aims to increase the quantity while addressing issues like licensing costs. Another focus is on ensuring brand alignment.
  • Feedback Mechanism: A system for feedback on generated images was proposed. Users evaluate assets. They give feedback to improve the AI model’s accuracy and effectiveness.

Sitecore Search

  • Modernize search experiences, ensuring consistency across diverse business units while focusing on user requirements and data governance.
  • Highlighted the need for flexible search solutions that can adapt to various content types and user needs.
  • They have merged Discover (Commerce based Search) and their non-commerce-based search into a single product now.
  • Has OOTB development kit which supports React.

XM Cloud

  • XM Cloud is now HIPPA compliant. That is huge news.
  • Many more frontend stacks supported and starter kits.
  • Retirement of Experience Editor and shift to Page Editor.
  • XM Sites – Dashboard which helps manage a multi-site tenant.

Unified Tracking

Capable of keeping track across SaaS product like Connect, Personalize and CDP. Tracking and privacy will be much smoother.

Marketplace

Marketplace is coming back.
Will have starter installations that will help get things up and running the way customers want.
Open to Sitecore and Trusted Partners.

Katie Ledecky

What an amazing athlete. Great hearing what she had to say. I never knew the medals have a piece of the Eiffel tower.

Brendan Hunt

You heard me many times quote Ted Lasso. It was an honor to see Coach Beard in the flesh. Remember to “Be Curious Not Judgmental”.

Teammates

Working from home it was great to see people that I haven’t seen a while in person. Most of all my teammates.

Swag

Got some really great stuff from the store. My chocolate lab Murray is modeling his new Sitecore collar.

Final Thoughts

I feel like Sitecore that I fell in love with over ten years ago is back. They are posed to really overtake the market. There is so much to learn. I plan to stay with the products that I know best. I will expand my knowledge for sure and hopefully start looking into products I haven’t used much before.

Sitecore Symposium Day 4 – Sitecore Stream, Breakout Sessions and Katie Ledecky. #SitecoreSYM

Let me first say how excited I am about all the new stuff coming soon. Today was a great day.

Sitecore stream is really going to revolutionize the way things are done. Stretching AI across all Sitecore products is going to be amazing. Find out more here.

Breakout Sessions were Fantastic as always. Here are some of the highlights of the ones I attended.

Continuous improvement with Content Hub

Great session were I learned how a real world Content Hub implementation was done. Doing things right in the DAM from the start is essential. This approach will help you down the road. Especially with other parts of the Content Hub.

Content Hub Roadmap

I missed pat of this, but was able to capture a slide.

Developer Experience in XM Cloud

This one was exciting to hear. Lots of great features coming to XM Cloud development. Liz Nelson did a great job explaining it. The new offerings will help developers tremendously.

Last, but not least a fireside chat with Katy Ledecky. I found out that part of the medal is made with the Eiffel Tower.

Almost forgot I ran too.

Sitecore Symposium Day 2 – Running and MVP Summit #SitecoreSYM

What better way to start the day then with run?. Wednesday I am organizing a run/walk, so I needed to test out some routes.

There are some restrictions on what I can share from the MVP Summit. However, I’m gonna share what I can.

The first thing I will share is that I’m excited about what next year has in store for Sitecore and the community.

I am a big fan of the Content Hub. Based on what I have heard, it’s gonna be a bigger powerhouse next year.

As XM cloud grows so do all of the ways to implement it. It keeps getting stronger every year. Some clients are not ready to get there yet. Sitecore is at least preparing for that when they do get there. I really like the idea of a hybrid model. Some clients can move their sites over to XM cloud. They keep their other ones in XM/XP until they’re ready.

it was interesting to learn how psych’s competitors have been attacking them in the market. Sitecore is not one to attack others. Their product will speak for itself. They will take the initiative to show that more, from what I understand.

Sitecore’s e-learning will offer new courses. These courses aim to help non-technical people grow their Sitecore knowledge.

Well, after all that serious business, it was time of the party at Dave & Buster’s.