Things I built for my own projects and then gave away. Four of them only make sense if you work in Sitefinity. The other two drop into any Vue or React app, and diff-text runs in plain PHP as well.
Your AI agent can read the code. It cannot see what Sitefinity actually did with it. This server gives Claude Code, Cursor, VS Code or any MCP client 31 tools for the parts that live in the database and the logs: which widgets sit on a page and what they are configured with, every page that uses a template, why the search index went stale, what the scheduler is stuck on, and what IIS saw when the app pool died.
For the next 90 seconds http.sys rejected 142 requests with 503 AppOffline, so they never reached Sitefinity's own log. Error.log has an OutOfMemoryException at 23:03, eighteen minutes into a search index rebuild.
sitefinity_read_log_filesitefinity_search_logssitefinity_list_log_filessitefinity_investigate_incidentsitefinity_list_page_routessitefinity_list_api_routessitefinity_get_page_detailssitefinity_get_widget_propertiessitefinity_get_page_widget_treesitefinity_where_usedsitefinity_check_statussitefinity_get_site_infositefinity_list_modulessitefinity_get_scheduled_task_statussitefinity_list_search_indexessitefinity_list_dynamic_typessitefinity_get_type_fieldssitefinity_list_contentsitefinity_list_templatessitefinity_list_taxonomiessitefinity_list_config_sectionssitefinity_get_config_sectionsitefinity_search_settingssitefinity_get_permissionssitefinity_list_formssitefinity_get_form_fieldssitefinity_list_form_responsessitefinity_list_environmentssitefinity_set_default_environmentsitefinity_clear_cachewritesitefinity_recycle_appwrite Then register the plugin in Global.asax, paste the key into Advanced Settings, and point your MCP client at a sitefinity-mcp.json listing your environments. The README has every step.
The tools let an agent look at a site. The skills teach it how Sitefinity works: widget designers, page surgery, the database schema, binding redirect errors. They follow the Agent Skills standard and install into Claude Code, Codex, Cursor and GitHub Copilot.
Makes every Sitefinity build about 5 seconds faster. Feather's built-in widget scan loads every DLL in bin into a CLR just to read two attributes. This native executable reads the same metadata directly, with byte-identical output.
// ~125x faster, byte-identical output
That is the whole install. The package ships an MSBuild targets file that points Sitefinity's build step at the executable. No PowerShell, no .NET runtime on build agents, nothing to add to your .csproj.
Production-ready, drag-and-drop widgets for the Sitefinity page editor. RandomSiteControls is the de-facto open source extension pack for the platform.
Drag-and-drop widgets into a native Bootstrap or Kendo tabstrip. The only tabstrip component for Sitefinity that allows hosting any content.
Enter content in a full-screen instance of VSCode in the browser, with intellisense and syntax highlighting. No content parsing, this thing is fast.
Enter content as markdown with a live preview. Cleaner than wysiwyg editors that bloat markup.
Drop on the top of a page to pull in the title automatically, or edit to change. Template is global so you can restyle site-wide without editing 1000 content blocks.
Drag-and-drop Google Maps widget, with just about every option configurable in the designer.
Find which pages contain which widgets, including layouts. Search across the entire site.
Helpers like .GetTags(), .GetImage(), .Live(), .Master() and many more, to keep your Sitefinity code short and readable.
// content extensions
var tags = content.GetTags();
var image = content.GetImage();
var live = content.Live();// query extensions
var master = query.Master();
var published = query.Published();
var visible = query.Visible();The fastest way to create custom Sitefinity services. Skip MVC JsonResults and Webforms svc calls. ServiceStack is fully licensed by Sitefinity.
Plain C# template: a basic structure for creating ServiceStack API endpoints in Sitefinity, with dependency injection and service registration ready to go.
CodeRush template: quickly generate ServiceStack endpoints with proper error handling and documentation.
Download CodeRushA shadcn calendar with month, week, day, year and agenda views, event editing, user filters and working hours. It ships as two packages with the same props, the same events and the same right-click menus, so the table below is the entire difference between them.
Both descend from Leonardo Ramos's big-calendar for Next.js.
// the demo runs big-calendar-vue3. big-calendar-react renders the same UI.
| Concern | big-calendar-vue3 | big-calendar-react |
|---|---|---|
| Requires | Vue 3.5+ | React 19 |
| Store | Pinia | Zustand |
| Primitives | shadcn-vue, Reka UI | shadcn/ui, Base UI |
| Forms | VeeValidate + zod | react-hook-form + zod |
| Active view | v-model:view="view" | view, onViewChange |
| Event saved | @event-updated | onEventUpdated |
| Menu command | @command | onCommand |
# peers you may not have yet: date-fns and the form stack
$ npm install big-calendar-vue3 date-fns@4 vee-validate @vee-validate/zod zod@3
<script setup lang="ts">
import { BigCalendar, useCalendarStore } from 'big-calendar-vue3'
import 'big-calendar-vue3/style.css'
const view = ref<TCalendarView>('month')
useCalendarStore().initialize(users, events)
</script>
<BigCalendar
v-model:view="view"
@event-created="save"
@event-updated="save"
/>
Edits update the local store first, then fire an event with the changed item, so persisting is one handler that calls your API.
Not yet: drag-and-drop to move events.
Shows what changed between two versions of a piece of writing. Compare by character, word, sentence or line, or diff rich HTML and get valid markup back. Long documents get unified and side-by-side views with line numbers, plus a badge with a similarity score.
Built for policies, articles and CMS content. For code review, use a code diff viewer.
// switch runtimes above. Same page, rendered by the Vue package.
$ npm install vue-diff-text
<script setup>
import { DiffWords } from 'vue-diff-text'
import 'vue-diff-text/dist/style.css'
</script>
<DiffWords :old-text="before" :new-text="after" />
One SPEC.md defines the tokenizers, the Myers diff variant and the exact markup for every view. A TypeScript reference implementation turns it into JSON fixtures, and all three test suites render every fixture and compare the output byte for byte. CI fails if the fixtures drift.
The payoff: one stylesheet themes all three, and a page that diffs on the server in PHP looks identical to one that diffs in the browser.