Supported Environments

JSKit is designed to work equally well in browser based or node.js environments. In addition, code can easily be shared between the two because JSKit exposes the same API across environments.

Browsers
Node.js
Share code between environments

Deployment

JSKit apps are automatically bundled and packaged to be compatibile with popular deployment methods.

Docker images for easy development
Docker images for production deoployment
Build NPM Packages

Web Applications

Building a web application with JSKit feels like building a native application. Hard-to-use web standards are made easy via application-paradigm APIs.

Application-centric Design
Background Tasks
Offline Ability
Instant Load
Model-View-Controller Patterns

Web Client Deployment

JSKit takes the hassle out of creating and deploying web applications by simply doing the right thing automatically out of the box.

Minified Javascript
Automatic Cache Busting
Zero Config Service Workers
Source Maps for better debugging

Server Applications

Handle HTTP requests on a server with a modern application-focused HTTP server with built in features like WebSocets.

Application-centric design
Responder pattern for easy request handling
Seamless input validation
WebSocket Server
Background Tasks

Core Features

The foundation of JSKit is a framework that provides common functionailty that really should be available out of the box in Javascript.

Robust Class Model
Multiple named constructors for clarity
Failable object construction
Uncode Awareness
Word boundary awareness
Attributed Strings for customiable rich text
Powerful string formatting
String to Data encoding & decoding
Base64 and Percent-Escape encoding & decoding
Font Awareness
Text Layout & Typesetting
HTTP Requests
HTTP WebSocket Client

Date & Calendar

Built in support and awarenes of calendars and timezones makes it easy to add Time & Date feature to your app.

Date Formatting
Time Zone Support
Calendar Support
Calendar Calculations

UI Tooklit

JSKit includes a rich collection of UI elements and features to make apps that feel like a native desktop expierience.

Custom drawing support
Fully custom animations
Enhanced event model for richer user interaction
First-class drag and drop
Text input with any level of rich text
View-to-data two way bindings
Completely customizable styling
Movable, sizable, stackable, windows
Window toolbars
Multi-window scene management
Intelligent cursor management
Auto sizing menus with overflow support
Push Buttons
Popup/Dropdown Buttons
Checkboxes
Radio Buttons
Token Text Fields
Customizable Sroll Views
Tab Views
High Performance List Views
High Performance Nested Outline Views
Application Pasteboard
Undo Management
Customizable Activity & Progress indicators
Split Views

Security & Authentication

Keep your users' data secure with best practice encryption, decryption, and verification.

Common encryption & decryption API
Hashing, Signing, and Verification
JSON Web Token validation
Authenticate users with OAuth
WebSocket Server
Private Client-Side Keychain

Images & PDF

Create PDFs as easily as you can create a UI view. Even use the same exact code!

Read PNG and JPEG image data
Read PDF Documents
PDF Text Extraction
Draw to PDF documents
Share drawing code between UI and PDFs

Testing

Find bugs before deployment with a robust test framework that makes it easy to execute tests in any environment.

Unit Test Framework
UI Tests from command line