// blog.ts

The tech blog.

Tutorials, rants, code, Sitefinity, JavaScript. A running log of what I am building, debugging, and shipping.

// sitefinity-elevatedmoderegion.md

Sitefinity ElevatedModeRegion: skipping permission checks the right way

ElevatedModeRegion skips Sitefinity permission checks for one manager. The namespace, one region per manager, and when search needs RunWithElevatedPrivilege.

TutorialSitefinity
// cloudflare-turnstile-on-netlify-instead-of-netlify-forms-recaptcha.md

Cloudflare Turnstile on Netlify: replacing the Netlify Forms reCAPTCHA

Netlify Forms only supports reCAPTCHA v2. How to put invisible Cloudflare Turnstile on a Netlify site with a Netlify Function, siteverify and Resend.

TutorialVueJs
// fixing-the-sitefinity-page-editor-drag-and-drop-experience.md

Why the Sitefinity page editor jumps when you drag a widget

The Sitefinity MVC page editor shifts the page on every drag, strobes drop zones and drags a page-wide bar. The CSS and RadDock patches that fix it.

TutorialFixesSitefinityRants
// sitefinity-search-not-finding-text-inside-pdf-powerpoint-excel.md

Sitefinity search can't find the words inside your PDFs, PowerPoints or spreadsheets

Sitefinity ships text extractors for only five file types, so PowerPoint, Excel and .docm contents are never indexed. Here are four that fix it.

TutorialFixesSitefinity
// vue-3-vite-8-tailwind-css-v4-on-sitefinity-cms-complete-setup-guide-with-code-splitting.md

Vue 3 + Vite 8 + Tailwind CSS v4 on Sitefinity CMS: Complete Setup Guide with Code Splitting

Add Vue 3, Vite 8, Tailwind CSS v4 and shadcn-vue to Sitefinity CMS, with Rolldown code splitting, design-mode widget mounting and search indexing.

TutorialVueJs
// sitefinity-mcp-server-ai-tools-for-your-cms.md

I Built an MCP Server for Sitefinity

A community-built MCP server that gives Claude, Cursor, and other AI tools direct access to your Sitefinity CMS logs, modules, routes, and content types.

TutorialSitefinity
// sitefinity-discover-formresponse-metafields-for-custom-export.md

Sitefinity Discover FormResponse MetaFields for custom export

How to discover Sitefinity MVC form field names at runtime using MetadataManager and TypeResolutionService for programmatic form response exports.

TutorialSitefinity
// direct-sql-access-to-sitefinity-dynamic-content-for-easy-poco-mapping.md

Direct SQL Access to Sitefinity Dynamic Content for Easy POCO Mapping

A generic T-SQL stored procedure that queries any Sitefinity dynamic content type, works out its real publish state, and returns categories and tags as JSON.

Sitefinity
// kendoui-pricing-is-disjointed-from-reality-and-other-things.md

KendoUI pricing is disjointed from reality, and other things

A long-time Telerik MVP on the new KendoUI licensing from Progress, and why the shift to expensive bundles is pushing loyal developers away.

Rants
// automatically-correcting-semantic-headings-for-cms-content.md

Automatically Correcting Semantic Headings for CMS Content

A small JavaScript package that fixes broken WYSIWYG heading hierarchies (H1 straight to H4) for accessibility and SEO, without changing visual styles.

// easier-faster-sitefinity-contentlocations-api.md

Easier, Sitefinity ContentLocations API

Discover Sitefinity's hidden ContentLocations API shortcuts introduced in v13. Learn how simple GET requests can show where content is used across your site.

TutorialSitefinity
// showing-instructions-sitefinity-autogenerated-designers.md

Instructions for Sitefinity Autogenerated Designers

Learn developer-friendly techniques to add instructions in Sitefinity CMS autogenerated widget designers.

TutorialSitefinity
// nativescript-ios-simulator-laravel-api-error-the-certificate-for-this-server-is-invalid.md

Nativescript iOS Simulator Laravel API Error: The certificate for this server is invalid

Fix NativeScript iOS simulator certificate error when connecting to Laravel API. Complete solution for local development SSL certificate issues.

TutorialFixes
// install-unsupported-visual-studio-2022-extension-into-vs2022-arm.md

This extension is not installable on any currently installed products Visual Studio 2022 ARM

Fix Visual Studio 2022 ARM extension compatibility issues with this simple workaround.

TutorialFixes
// running-sitefinity-on-apple-silicon-with-parallels.md

Running Sitefinity on Apple Silicon with Parallels

Running Sitefinity CMS on Apple Silicon MacBooks with Parallels: the Windows VM, Visual Studio ARM, IIS and SQL Server setup.

Tutorial
// defining-which-controller-action-or-json-route-to-post-to-when-theres-more-than-one-on-the-page.md

Defining which Controller Action or Json route to POST to when there's more than one on the page

Learn how to target specific Sitefinity controller instances when multiple widgets exist on the same page.

TutorialSitefinityFixes
// timezone-conversion-from-sitefinity-odata-event-api-service.md

Timezone conversion from Sitefinity OData Event API Service

I wrested with the Sitefinity timezone conversion through the OData API so you don't have to.

TutorialSitefinity
// how-to-get-the-saved-controller-properties-for-a-widget-on-a-page.md

How to get the saved Controller properties for a widget on a page

Learn how to retrieve saved MVC controller properties for Sitefinity widgets. Essential for accessing widget data through web services and custom functionality.

TutorialSitefinity
// unable-to-directly-link-to-a-backend-advanced-configuration-section.md

Unable to directly link to a backend Advanced Configuration Section

Sitefinity allows linking to the root element in the backend Advanced Configuration, but have you had it not work?

TutorialSitefinity
// how-to-join-a-party-with-xbox-xcloud-and-not-get-the-ms-xbl-multiplayer-link-error.md

How to join a party with XBox xCloud and not get the ms-xbl-multiplayer link error

Accepting an xCloud party invite throws a Microsoft Store popup for the ms-xbl-multiplayer link. Launch from xbox.com/play and send the invite from the browser.

TutorialOther
// auditing-page-permissions.md

Auditing page permissions

Quickly pull in who has custom access to Sitefinity page permissions through this handy SQL Stored Procedure!

TutorialSitefinity
// laravel-is-better-than-sitefinity-for-small-projects.md

Laravel is better than Sitefinity for small projects

Laravel vs Sitefinity for small projects: the advantages of Laravel's file-based approach and its licensing.

ReviewsSitefinity
// adding-a-class-to-the-body-tag-when-a-widget-is-on-the-page.md

Adding a class to HTML when a custom widget is on the page

Avoid UI flicker in Sitefinity with a server-side technique that adds a class to your HTML element when a custom widget is on the page.

TutorialSitefinity
// custom-function-validation-in-kendoui-spreadsheet.md

Custom Function Validation in KendoUI Spreadsheet

Learn how to create custom function validation in KendoUI Spreadsheet with R1C1 notation.

TutorialKendoUI
// adding-telerik-reporting-v15-to-sitefinity-in-2021.md

Adding Telerik Reporting v15+ to Sitefinity in 2021

Add Telerik Reporting v15+ back into modern Sitefinity with the correct route setup and a Vue.js component for viewing reports.

TutorialSitefinityVueJsKendoUI
// use-vuejs-with-sitefinity.md

Use VueJs with Sitefinity

Tips on how to use VueJs with Sitefinity and not have every widget all webpacked and loaded on every page.

TutorialVueJsSitefinity
// vuejs-upload-input-though-a-regular-form-postback.md

VueJs Upload Input though a regular form postback

Learn how to integrate VueJs validation and state management with traditional form postbacks for file uploads without complex async upload handling.

TutorialVueJs
// downloading-a-file-through-a-login-page.md

Downloading a file through a login page

Fix the blank page issue when users try to download protected files in Sitefinity after login.

TutorialSitefinity
// sitefinity-anonymous-form-submissions.md

Sitefinity anonymous form submissions

How to configure Sitefinity to allow authenticated users to anonymously submit forms using EventHub and SQL queries.

TutorialSitefinity
// adding-metaproperties-like-opengraph-to-sitefinity-actionresult-routes.md

Adding MetaProperties like OpenGraph to ActionResult routes

Boost your Sitefinity site's SEO: A clear tutorial on adding essential meta and OpenGraph properties to pages generated by custom ActionResult routes.

TutorialSitefinity