Introducing SN Widget Kit: Local Development for Service Portal Widgets
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2 hours ago
SN Widget Kit is no longer just a pull/push utility — it has evolved into a complete local development environment for ServiceNow Service Portal widgets.
The idea is simple: bring the modern developer experience we already have in frontend projects into the ServiceNow ecosystem — especially for developers who enjoy working with VS Code.
Today, the project already provides:
⚡ Local Live Preview
Render AngularJS + Bootstrap widgets locally on localhost without relying on the instance browser.
🔥 Smart Hot Reload
CSS updates instantly without flickering, Angular templates recompile automatically, and scripts reload in real time.
🌐 Hot Reload in the real portal
A bookmarklet injects a WebSocket client directly into the Service Portal to reflect live changes instantly.
🧪 Local server.j execution
A Node vm-based sandbox with highly accurate ServiceNow stubs:
• gs with 80+ methods
• GlideRecord with dot-walking
• GlideAggregate
• On-demand Script Includes
• gs.getMessage / i18n
📦 Offline Mode
Develop without an active instance connection using previously captured fixtures.json and snapshot.json files.
🎯 High-fidelity execution
Optional mode to inject ng-templates, providers, and dependency CSS — or execute server.j through Scripted REST.
📊 Performance Profiler
Render timing, GlideRecord metrics per table/operation, slow query detection, and automatic alerts.
🛠 Conflict Resolution Assistant
3-way merge support (local/remote/base) with section-level accept actions, visual comparison, and audit logging.
🧠 Instance-generated IntelliSense
Real typings for gs, GlideRecord, $sp, spUtil, and Script Includes synchronized directly from the instance.
🔒 Smart Working Context
Independent Scope and Update Set selectors, per-scope memory, and safeguards to prevent accidental pushes to the wrong environment.
There are still limitations — especially around some ServiceNow-specific APIs in the local server environment — but the goal is to keep evolving until the experience gets as close as possible to the real platform behavior.
The goal was never to replace the instance.
The goal is to eliminate the slow cycle of edit → save → reload → test.
And transform widget development into something much faster, more modern, and far more enjoyable.
Check it out, give it a try, and feel free to share feedback, ideas, or suggestions.
The project is already stable and ready for real-world use — future updates will mainly focus on adding new features and improving the overall developer experience.
#servicenow #serviceportal