Showing posts with label sitecore. Show all posts
Showing posts with label sitecore. Show all posts

Monday, October 26, 2026

Sitecore Content Hub Practice Studio: The Next Chapter

Last month, I released SitecoreAI Practice Studio, a free study companion for developers preparing for the SitecoreAI CMS Developer certification.

Toward the end of that post, I mentioned that I might add other exams in the future.

Apparently, "the future" meant the following month 😅

Introducing Sitecore Content Hub Practice Studio: a free practice app with 255 source-linked core questions across six Content Hub developer competencies, guided study, a timed practice exam, topic-focused sessions, and progress tracking.


Next up: Content Hub

Content Hub gives you quite a bit of ground to cover. Asset management is part of it, but so are administration, automation, developer tools, integrations, and getting assets into the platform in the first place.

For this release, I wanted to bring the same study experience to that material: work through a question, understand the answer, and have the relevant documentation right there when you need to go deeper.

If you've used SitecoreAI Practice Studio, you should feel at home. The structure is familiar, with a dedicated Content Hub question bank and competency breakdown.

255 questions, six competencies

The core question bank covers:

  • Asset management: 60 questions
  • Administrator basics: 40 questions
  • Automation & developer tools: 45 questions
  • Internal integrations: 40 questions
  • External integrations: 40 questions
  • Asset migration: 30 questions

Each question is independently written from official Sitecore documentation and includes an explanation and links to its source material.

The app also takes the competency weights into account when building a session across topics. When you come back for another round, it prioritizes questions you haven't seen, then brings back less-used questions. Answer choices are shuffled as well.

That gives you more of the bank to work through before the same questions start looking a little too familiar.

Study a little, or take the full run

There are three ways to practice, depending on how you want to spend your study time.

Guided study is untimed and gives you feedback after each answer. You can read the explanation, open the documentation, and move on when you're ready.

Practice exam gives you 55 questions, 110 minutes, and an 80% practice target, with answers held until the end. You can flag questions, move around using the question map, and change your answers before submitting.

Topic focus lets you spend a session on one competency. If you're comfortable with asset management but keep getting caught on integrations, you can go straight to the area that needs attention.

For Guided study and Topic focus, you can choose a session length of 10, 15, 30, or 55 questions, subject to the number available in that topic. A quick study break doesn't need to turn into a full exam.

Uploading: 26402 of 26402 bytes uploaded.


The explanation is part of the practice

Getting a question wrong is useful if you can figure out what you misunderstood.

In Guided study, the feedback includes the correct answer, an explanation, and the Sitecore documentation behind it. If something doesn't click, you can follow the source and read it in context.

That's the part I want people to spend time with. Remembering an answer might get you through the next attempt, but understanding the concept is what makes the practice worthwhile.


Let the results guide the next session

After a session, you can review your overall score, performance by competency, and individual answers. You can filter the review to questions that need attention or ones you flagged along the way.

Missed a few? There's a button to practice those missed questions again, so you can follow up while the material is still fresh.


The Progress view keeps track of unique core questions practiced, accuracy, questions to revisit based on your latest answers, topic-level coverage, and recent sessions.

Your progress stays in your browser, and an unfinished session can be resumed after a reload. No account required. Just keep in mind that this is local browser storage, so your history won't automatically follow you to another device or browser.



A library for the “wait, how does that work?” moments

You don't always need another quiz.

The Study library lets you search the question bank, filter by competency, and expand a question to see its choices, correct answer, explanation, and documentation links.

Use it to revisit a concept, browse an unfamiliar topic, or find the source behind something you just practiced. The answers are visible here, so save the library browsing for after your practice session if you want a fresh challenge. 😅


A little Content Hub AI on the side

There's also a separate set of eight optional AI awareness questions covering AI-assisted metadata enrichment, alt text, content generation, and connecting your own AI service.

These are unscored and separate from the core developer practice. They provide some broader platform context without affecting your core score, and I haven't treated them as verified certification objectives.

Give it a try

Sitecore Content Hub Practice Studio is completely free to use.

If you're preparing for the Content Hub Developer certification, or want a structured way to find gaps in your Content Hub knowledge, give it a try.

A quick reminder: this is an independent community study aid, with independently authored practice questions. It isn't affiliated with Sitecore, and the questions aren't taken from the official exam. Check Sitecore's official certification information for current requirements.

If you spot an incorrect answer, an explanation that needs work, a broken documentation link, or a topic that deserves more coverage, please let me know. That feedback helps make the next person's study session better.

Closing Thoughts

One of the things I've enjoyed about building these apps is giving the community something practical to use while learning. Hopefully this next addition helps a few more developers feel prepared, and makes working through the documentation a little less daunting.

Happy studying, and happy Sitecoring! ✌️

Sunday, September 27, 2026

SitecoreAI Practice Studio: A Better Way to Prepare


It's been two years since I released the Sitecore XM Cloud Developer Certification Practice Exams as a free study companion for the XM Cloud developer certification.

Practice exams have always been one of my preferred ways to study, and at the time I was surprised to find most of the available options sitting behind a $30-$150 price tag. So I built my own, sourced the questions from Sitecore's documentation, and made it free for anyone preparing for the exam.

Fast forward to today and quite a bit has changed.  XM Cloud has evolved into SitecoreAI, there's a new SitecoreAI CMS Developer certification, and naturally I started thinking about what the next version of the practice exam should look like.

Could I have simply updated the questions and called it a day? Sure.

But I did not do that. 😅

Instead, I ended up rebuilding the experience: a complete UI overhaul, 316 source-linked core questions across all nine developer competencies, multiple ways to practice, progress tracking, missed-question review, a searchable study library, and eight optional Marketplace and AI awareness questions.

Introducing: SitecoreAI Practice Studio 🎓


A lot more than an updated question bank

The original XM Cloud practice exam app was intentionally straightforward. You start an exam, get a random set of questions, and see how you do.

It worked well for what I originally wanted it to do, but rebuilding it for SitecoreAI gave me an opportunity to take the idea further.

The biggest change is still the question bank itself.  Every competency has more than 30 questions (Page Builder is the smallest, at 31), for a total of 316 core questions. When you start a session, the app prefers questions you haven't seen before, followed by questions you've seen the least or haven't seen recently. Answer choices are shuffled as well.

That gives repeated sessions a lot more variety before questions start cycling back in.

And instead of having one way to use the question bank, there are now three.

Three ways to practice

Guided study gives you immediate feedback after each question, along with the explanation and related Sitecore documentation.


Practice exam is the full run: 60 questions, 120 minutes, with answers held until the end.


Topic focus lets you drill into a single competency. If Content modeling is giving you trouble, spend some time there. Same for Renderings and layout, Architecture and workflow, or any of the other competencies. You can also choose the length of your session (10, 15, 30, or 60 questions).


Answers should actually help you study

In Guided study, you'll immediately see whether you were correct along with an explanation of the answer and a link back to the Sitecore documentation used as the source.

SitecoreAI Practice Studio isn't meant to just be a question dump. The questions are written from Sitecore's documentation, with explanations to provide context around why an answer is right or wrong.

If you miss one, the explanation should help you understand why instead of simply remembering which answer was green.


A more complete practice exam

Practice exam mode gives you 60 questions, 120 minutes, and an 80% practice target. There's a question map showing answered, unanswered, and flagged questions, and you can change any answer until you submit the exam.

There's also a next-unanswered shortcut and a few keyboard controls: 1 through 4 select an answer, F flags the current question, and the arrow keys move between questions.


Figure out what you actually need to study

After finishing a session, you'll see your overall score, performance by competency, and the questions you missed.





You can then take those missed questions and immediately start another focused practice session with them.

Keep track of what you've covered

The Progress view tracks how many unique core questions you've practiced, your accuracy, questions you've marked to revisit, topic-level progress, and recent sessions.



All of this stays in your browser. There's no account or server-side profile required, and sessions survive a reload.

Sometimes you just want to look something up

That's where the Study library comes in.

You can search across the question bank, filter by competency, and expand any question to see the answer, explanation, and source documentation.

Yes, the answers are visible here (that's the point 😅). If you want to test yourself, use one of the practice modes. If you're studying something and just want to browse through the material, use the library.


A little extra SitecoreAI

Finally, there are eight optional Marketplace and AI awareness questions covering some of the broader SitecoreAI platform.

I've kept those separate from the core CMS developer competencies. They're optional, unscored, and don't affect your core practice score or competency distribution.

I expect to expand this further and potentially add other exams in the future 😎

Demo Video




Give it a try

Just like the original XM Cloud version, SitecoreAI Practice Studio is completely free to use.

If you're preparing for the SitecoreAI CMS Developer certification, give it a try. And if you find something wrong, disagree with an answer, hit a broken source link, or think a competency needs better coverage, please let me know.


Closing Thoughts

I truly hope this contribution is useful for the Sitecore developer community.

Special thanks to my friend Jay Patel for helping QA and providing pre-release feedback! 🙏

Happy studying, and happy Sitecoring! ✌️

Friday, August 21, 2026

Sitecore Icon Search 2026: New UI, Favorites, Recent Icons + Browser Extension Updates

When I originally released Sitecore Icon Search back in 2018, the application was built around a searchable table containing thousands of Sitecore icons.

At the time, it solved the problem I was trying to fix: finding the right Sitecore icon without manually clicking through category after category in Sitecore's built-in icon selector.

Over the years, I've continued updating the app with new Sitecore icons, improved search data, JSS enum support, browser extensions, dark mode, and plenty of fixes along the way.

Last year, I gave the app a smaller visual refresh that cleaned up the styling, spacing, search bar, header, and finally added dark mode. It made the existing interface feel a lot better, but underneath it was still fundamentally the same table-based application I had originally built years earlier.

This time around, I wanted to go quite a bit further and rethink the core interface itself.

After eight years, I figured it was probably time. 😄


A Long Overdue UI Refresh

Sitecore Icon Search UI Refresh
Before
After

The most obvious change is that the table has finally been replaced.

Instead of displaying ten rows at a time and paging through search results, Sitecore Icon Search now displays icons in a responsive grid. All matching icons are available on the same page, so you can simply search and scroll through the results.

Search filtering still executes immediately as you type, but I've also made a few improvements to how searches are handled. For one, multiple search terms can now be combined to further narrow the results. For example, searching for user add will return icons matching both terms rather than treating the entire query as a single phrase.

I've also added a keyboard shortcut that I've found myself using quite a bit while testing the new UI: pressing / from anywhere on the page will automatically focus the search box.

Beyond the / shortcut, keyboard navigation is now fully in place. After searching for a keyword, you can use the arrow keys to move through the results and hit Enter to copy the selected icon's path.

In fact, Sitecore Icon Search is now hitting a 100% accessibility score:

Category filtering is also available directly alongside search, making it easier to narrow results to a specific Sitecore icon folder when needed.


Recent Icons, Favorites, and Icon Sizes

While rebuilding the grid, I ended up adding a few features that I didn't originally plan on but quickly found useful while testing the app.

The first is a new Recent filter. Every icon you copy is now added to a recent-history list stored locally in your browser.

Since the history is stored in local storage, it persists between sessions. If you copied an icon yesterday and can't remember exactly which one it was today, you don't necessarily have to search for it again.

There's also a new Favorites feature. Each icon card now has a small star in the upper-left corner that can be used to mark an icon as a favorite. Selecting the Favorites filter then brings all of those icons together in one place.

I can see this being particularly useful when planning out a set of templates. You can spend some time finding the icons you want to use, favorite them as you go, and then have that smaller collection readily available when it's time to actually apply the icons to your templates.

Both Recent and Favorites are stored locally in the browser, so there isn't any account, login, or server-side storage involved.

Finally, the new grid includes an icon-size slider for switching between 16x16, 24x24, and 32x32 previews.

This doesn't change the icon path being copied; it's purely a visual preference. The 16x16 setting lets you fit quite a few more results on the screen, while 32x32 is useful when you want a better look at some of the wonderfully pixelated artwork we've all been staring at inside Sitecore for years. 😄


Improved JSS Icon Support

Back in 2020, I added support for Sitecore JSS icon enums after a couple of colleagues pointed out how painful it was to find the corresponding SitecoreIcon enum value for an icon.

That functionality was originally implemented as an additional table column along with a JSS Icons Only filter.

With the new interface, JSS-supported icons now display a small JSS badge directly on the icon tile.

Clicking the icon itself copies the traditional Sitecore icon path, while clicking the JSS badge copies the corresponding enum value such as:

SitecoreIcon.Anchor

The JSS only filter is still available as well if you want to limit the grid exclusively to icons supported by the enum.


Copying Icons Without the Interruption

Copy confirmations are now displayed as small toast notifications at the top of the screen instead of a full overlay.

The randomly generated confirmation messages are still there. Some things don't need fixin'. 😄


Sitecore 10.5 Icons

Along with rebuilding the interface, I also updated the underlying icon dataset with the icons included with Sitecore 10.5. Admittedly, it's quite possible these newly added icons were introduced after 2022 (when I last went through the icon data extraction process), and I hadn't refreshed the datasource between XP releases, but they're in now!

After extracting and comparing the Sitecore 10.5 icon directories against the existing Sitecore Icon Search dataset, the application now contains 9,134 icons, up from 8,755.

The additions include:

  • 339 icons from the new NetworkV2 icon category
  • 40 additional icons added throughout existing categories, including document_json, checkbox_group, numbers_field, password_confirm, additional Marketing Automation icons, and several new persona avatars
  • No removed icons, so existing icon paths remain available

I've also added searchable attributes and synonyms for the new icons so they can be discovered through general keyword searches rather than requiring you to know the exact filename.


Browser Extension Updates

The browser extensions received the same UI overhaul as the web application.

I initially brought the updated experience into the Chrome extension, including the new grid layout, improved search, category filtering, dark mode, JSS badges, and the other interface improvements covered above.

I also updated both the Microsoft Edge Add-on and Firefox Add-on to match, so all three browser extensions are now aligned on the same refreshed UI and functionality.

The Sitecore integration itself hasn't changed.

When working in the Sitecore Content Editor, selecting an icon from the extension can still automatically update the item's Icon field and save the item. If you prefer to paste the copied icon path manually, that workflow still works.

One thing I'm particularly happy to finally bring into the extensions is JSS enum support. When an icon has a corresponding JSS enum, the JSS badge can be used to copy the enum directly without needing to jump over to the web application.

The latest Chrome version (v4.0.0) is available through the Chrome Web Store. Existing Chrome installations should receive the update automatically.

The updated versions are also available through the Microsoft Edge Add-ons and Firefox Add-ons stores for anyone using those browsers.

(FYI: Firefox's Addon submission review process always takes the longest.  At the time of this post, I'd already waited 10 days and it was still in Awaiting Review.  That said, the Firefox link may not yet be live yet, depending on when you read this - but I assure you, it's coming!)


A Quick Look at Usage

Before investing more time in another round of updates, I was curious about how much Sitecore Icon Search was still being used in 2026.

The answer is: it's still a small, very specific developer utility, but people are definitely still using it.

Over roughly the last 12 months, the Chrome Web Store reports 541 installs, an increase of 87.2% compared with the previous period.

During the same period, there were 118 uninstalls, which was down 18.06%.

Interestingly, the extension's Chrome Web Store listing received about 1.29K page views during that period, essentially flat at 1.76% lower than the previous period. I'm not going to pretend those numbers are enough to draw any grand conclusions, but seeing installs increase while listing traffic stayed relatively consistent was encouraging.

Traffic to sitecoreicons.com itself is a little more mixed.

So far in 2026, Google Analytics reports 961 active users, 884 new users, and about 2.6K views. Active users are down ~15%, and new users are down ~16% compared with the previous period.

More recently, though, the current quarter has been trending in the other direction with 212 active users, up ~18%, and 169 new users, up 29% over the previous period.

One metric I found particularly fitting was an average engagement time of about 38 seconds per active user.

Normally, a short engagement time might not sound all that great, but for Sitecore Icon Search, that's pretty much the goal lol. Search for an icon, copy it, and get back to whatever you were doing. You shouldn't have to spend 10 minutes on the site. 😄

The user base also continues to reach well beyond the US, with developers visiting from India, the Netherlands, the United Kingdom, Australia, China, Germany, and plenty of other locations.

To be clear, none of these numbers are the result of this UI refresh. They're the numbers leading into this release. It'll be interesting to come back to them later and see whether the new interface has any measurable impact.


Cleaning Up the Front-End

The UI wasn't the only part of Sitecore Icon Search showing its age.

The original application relied on jQuery, Bootstrap 3, and DataTables. Those dependencies made sense when I originally built the application in 2018, but after removing the table-based interface, there wasn't much reason to keep carrying them forward.

All three have now been removed.

Sitecore Icon Search is still built using plain HTML, CSS, and JavaScript with no external JavaScript framework dependencies. Aside from simplifying the codebase, this also reduced the amount of code and assets required to load the application (thx Claude).

Dark mode has also been updated with improved colors and contrasts.

On your first visit, the application now respects your operating system's preferred color scheme instead of defaulting everyone to light mode. You can still switch between light and dark mode manually afterward.

Finally, I've added a changelog to the About page to track future releases and application changes.


Eight Years Later...

Eight years after launching, I'm happy that developers are still using it. The usage numbers certainly aren't massive, but for a utility built to solve a very specific Sitecore developer problem, seeing it continue to get regular traffic and hundreds of extension installs years later is pretty cool.

I'm also happy to finally give the application the interface I've wanted for a while.

As always, if you run into an issue or have an idea that could make Sitecore Icon Search more useful, feel free to reach out.

Check out the updated Sitecore Icon Search

Happy Searching! 🔎

Wednesday, May 27, 2026

Team Sitecorepunk 2077 Wins the 2026 Sitecore Hackathon!

It happened again!!

I'm proud to say that 'Team Sitecorepunk 2077' (...it's still just me) has officially won the 2026 Sitecore Hackathon!  🏆



That's now two years in a row!  It's really an unreal feeling. 

A day or two after the event, I sifted through the SitecoreHackathon GitHub to pull some stats:  34 teams registered, 20 teams submitted something before the deadline.  

A solid Sitecore community turnout 👏👏👏  

I vibed together a submission showcase to digest all of this year's entries. 
Check it out here: Sitecore Hackathon 2026 Submission Showcase.


👟 Preparation

In my hackathon prep post, I basically said 'you can practice for this'.  Taking my own advice, I spent time leading up to the event building a couple of basic Marketplace applications locally using AI-assisted tools like Claude Code, OpenAI Codex, Microsoft Copilot, Cursor, VS Code, and Perplexity. 

After a few days into this deep dive, I wound up with a pretty solid LLM-friendly knowledge base containing relevant public Sitecore Marketplace SDK/Blok documentation, examples, and code samples to give my agents the context they need to successfully build and iterate on a Marketplace app.  With these technical barriers eliminated, I could focus on building features for whatever app I'd end up building during the event.  

Day of, I'd say I felt...pretty well prepared actually.  It wasn't my first rodeo, so I knew what to expect.   My workspace was ready, and I felt confident that I had the tools to execute whatever the categories/idea requirements. 

I took the afternoon off from work and forced a short nap, enough time to reset, and have dinner with the family.  

I had my calendar blocked.  Everyone at home knew that I'd be upstairs, locked away in my office for the next 24 hours (with the occasional break in between). 



I even had my Hackerspace Hero shirt on!


It was time.  

Wednesday, April 8, 2026

SitecoreAI Content Editor: Replacing Experience Editor and Preview with Working Pages Links

While working through a SitecoreAI implementation recently, I ran into a small usability issue in the good ol' Sitecore Content Editor.

The Experience Editor and Preview buttons are still sitting there in the Publish ribbon, looking as inviting as ever.

There's just one problem:

They don't work. 😄

In the SitecoreAI environment I was working with, clicking either button resulted in the following error:

Connection to your rendering host failed with an Unauthorized error.
Ensure the JSS Editing Secret is configured.

This makes sense considering the editing experience has moved on to Sitecore Pages, but it leaves Content Editor users with two very visible buttons that don't get them where they need to go.

Rather than telling users to ignore them, I decided to repurpose them.

The goal was pretty straightforward:

  • Replace Experience Editor with a SitecoreAI Page Builder button
  • Replace the existing Preview behavior with a working SitecoreAI page preview
  • Open the correct page for the currently selected Content Editor item
  • Carry the current language and version into the request
  • Support multiple sites and environments
  • Do it without building or deploying any custom .NET code

Sounds like a job for Sitecore PowerShell Extensions.


The Existing Ribbon Buttons

The Content Editor ribbon definitions live in the Core database.

The two items we're interested in are:

/sitecore/content/Applications/Content Editor/Ribbons/Chunks/Publish/Page Editor

/sitecore/content/Applications/Content Editor/Ribbons/Chunks/Publish/Preview

Rather than creating entirely new ribbon controls, I opted to reuse these existing items and replace their behavior.

Each button's Click field can execute an SPE script using item:executescript.

For the Page Builder button:

item:executescript(
  id=$ItemID,
  script={YOUR-PAGE-BUILDER-SCRIPT-ID},
  scriptDb=master
)

And for Preview:

item:executescript(
  id=$ItemID,
  script={YOUR-PREVIEW-SCRIPT-ID},
  scriptDb=master
)

Now we just need to give those buttons something useful to execute.


Creating the SPE Scripts

I created a small module underneath the Sitecore PowerShell Script Library to keep everything together.

/sitecore/system/Modules/PowerShell/Script Library/
    SitecoreAI/
        Sitecore Pages/
            Content Editor/
                Ribbon/
                    Publish/
                        Publish/
                            Page Builder
                            Preview

Both entries are standard PowerShell Script items.

For my implementation, I used the following icons:

Page Builder
/~/icon/apps/32x32/Paint.png

Preview
/~/icon/office/32x32/eye.png

Naturally, if choosing the perfect Sitecore icon becomes too difficult, I may know of a website that can help. 😄


Opening the Current Item in Sitecore Pages

The Page Builder script starts with the current Content Editor context item and builds the corresponding Sitecore Pages editor URL.

There are a few pieces of information we need along the way:

  • Current item ID
  • Current language
  • Current version
  • Site name
  • SitecoreAI tenant
  • Organization ID

In my case, the Sitecore solution contains multiple sites, so I determine the appropriate Sitecore site name based on where the selected item exists in the content tree.

Here's a sanitized version of the script:

The result is exactly what I was looking for.

Select a page in Content Editor, click SitecoreAI Page Builder, and the corresponding item opens directly in Sitecore Pages in a new browser tab.

No more hunting for the page again after switching applications.


Fixing Preview

Preview follows the same general idea, although constructing the URL requires a little more information.

In addition to the item, language, version, and Sitecore site, the script determines the route for the current item relative to the site's Home item and generates the appropriate rendering-host request.

Here's the sanitized version:

For the obvious reasons, I've replaced all tenant IDs, hosts, organization IDs, and secrets from my implementation with placeholders in the examples above.

The environment-specific SitecoreAI values can be retrieved from your Sitecore Cloud Portal / Deploy application.



Replacing the Ribbon Buttons

With both SPE scripts created, the last step is updating the original Core database ribbon items.

You can certainly update the fields manually, but since I needed to make the same change consistently between environments...PowerShell again.

The following script updates the Click, Header, and Tooltip fields on both existing ribbon items:

After updating the Core items, I rebuilt the Content Editor ribbon using the SPE utility available under:

Sitecore → PowerShell Toolbox → Development Tools → Rebuild ribbon integration points

Refresh the Content Editor and we're back in business!

Experience Editor is now SitecoreAI Page Builder, and the Preview button now launches a working preview for the selected item.


A Small Content Editor Quality-of-Life Fix

None of this changes how Sitecore Pages itself works, and it's certainly not some massive customization.

It simply makes the existing Content Editor workflow make a little more sense for users working in SitecoreAI.

If a button says Experience Editor and clicking it takes you to an error page, users are eventually going to ask why.

If we already know where they actually need to go, we might as well send them there.

And once again, SPE makes it possible to solve the problem without a custom deployment.

I hope this helps anyone else working through a similar SitecoreAI Content Editor setup!

Happy Sitecoring! ✌️