JavaScript

SPFx: Check if User is an Admin or an Owner is SharePoint

In this post: Introduction · Understanding SharePoint User Roles · Checking If a User Is an Admin in an SPFx WebPart · Checking in an Application Customizer · Alternative: Checking Site Owners Group Membership · The simpler check you probably want first · Pros and Cons of Different Approaches · Related reading Introduction When working […]

SPFx: Check if User is an Admin or an Owner is SharePoint Read More »

XSLT: Transforming XML with Style

XSLT (Extensible Stylesheet Language Transformations) transforms XML into another format — HTML, plain text, or different XML — using declarative templates and XPath. Worth leading with directly, since it changes the practical calculus around it: native, client-side XSLT support is being removed from every major browser engine, starting with Chrome in November 2026. This post

XSLT: Transforming XML with Style Read More »

Handlebars.js: The Templating Engine You Didn’t Know You Needed

Handlebars.js separates HTML structure from the JavaScript that fills it with data — instead of building markup with string concatenation, you write a template with {{placeholders}} and compile it against a data object. Here’s what it actually looks like, where it fits, and where a real framework is the better call instead. In this post:

Handlebars.js: The Templating Engine You Didn’t Know You Needed Read More »

Get SharePoint Site Users: Implementations and Use Cases

Knowing who actually has access to a SharePoint site — not who you think has access — is the starting point for any real audit, cleanup, or automation built around user roles. This covers the ways to pull that list programmatically: REST via plain JavaScript or jQuery, PnPjs for SPFx solutions, and PowerShell for admin-scale

Get SharePoint Site Users: Implementations and Use Cases Read More »

Understanding SharePoint List Types: A Guide for Developers

SharePoint lists work like a lightweight database — each list is a table, columns are metadata fields — but built for collaborative, permission-aware environments rather than raw relational data. Here’s the built-in list types, the template IDs for creating them programmatically, and how to work with them in code. In this post: Built-in list types

Understanding SharePoint List Types: A Guide for Developers Read More »

ChatGPT vs. GitHub Copilot: Comprehensive Comparison

ChatGPT and GitHub Copilot get compared a lot, but they’re not really competing for the same job. ChatGPT is a general conversational assistant; Copilot is built into a code editor and scoped around software development. Worth noting up front: both products change their pricing and feature set often enough that anything below is a snapshot,

ChatGPT vs. GitHub Copilot: Comprehensive Comparison Read More »

How to Escape Apostrophes in SharePoint REST Queries

An apostrophe in a data value — a name like O’Reilly, a title like Harry’s Adventures — breaks a SharePoint REST `$filter` query, because OData uses single quotes as the string delimiter and has no way to tell a literal apostrophe apart from the end of the string. The fix is one specific, verified rule:

How to Escape Apostrophes in SharePoint REST Queries Read More »

Rendering SharePoint List Extensions for Specific List Templates

Command Sets and Application Customizers scope to specific list templates the same way, through `RegistrationType`/`RegistrationId` in `elements.xml`. Field Customizers don’t — they’re registered against a specific column, not a list template, a genuinely different mechanism worth knowing before assuming one pattern covers all three extension types this post touches on. In this post: Scoping a

Rendering SharePoint List Extensions for Specific List Templates Read More »

PnPJs .getAll() Function to get all list items Explained

Worth leading with directly, since it changes what this post can actually recommend: `.getAll()` was removed entirely in PnPjs v4, the current major version as of 2026. The replacement isn’t a renamed method — it’s a genuinely different pattern, the same async-iterator (`for await…of`) approach covered from the JavaScript-fundamentals side in Does “for…of” loop wait

PnPJs .getAll() Function to get all list items Explained Read More »

Unlocking the Potential of PnP SPFx: Functionalities, Limitations, Use Cases, and Best Practices

PnP (Patterns and Practices) is the umbrella for several separate tools that speed up SharePoint Framework development — PnPjs for calling SharePoint from code, PnP PowerShell for admin/automation tasks, and a library of reusable React controls for SPFx web parts. This post covers what each actually does, where the real limitations are, and two places

Unlocking the Potential of PnP SPFx: Functionalities, Limitations, Use Cases, and Best Practices Read More »