Kiss Web Development Framework


Build secure, robust, and fast web-based business applications that are faster and easier to learn, develop, support, and enhance.

About


The Kiss framework differs from the many other development tools in the following ways:

  1. Kiss supports an entire application; meaning both the front-end and the back-end.
  2. Kiss is oriented towards business applications rather than public informational sites or consumer portals.
  3. Kiss emphasizes the KISS (Keep It Simple...) approach. To that end, learning and using Kiss is far simpler than other environments.
Kiss comes as an entire running and deployable web application that can be modified (while running) to meet your application requirements. Kiss includes the back-end and front-end already configured, communicating, and running. Development occurs on a running system without re-builds or re-deploys. Development time is drastically reduced due to the micro-service architecture and advanced development facilities. When ready, deployment occurs by dropping a single file in place.

Please note that although Kiss has various UI components and has some small overlap with other UI frameworks, Kiss is not focused as a UI framework and isn't attempting to compete against UI frameworks such as React, Angular, and the like. In fact, Kiss may be used, and has been used, in conjunction with those frameworks. Kiss provides a broader solution to the issues revolving around the development of business web applications.

Features


  1. Kiss is open source, can be freely used commercially, and can be downloaded at https://github.com/kiss-web/Kiss
  2. The front-end and back-end communicate over stateless REST services.
  3. The back-end is architected with micro-services. This means back-end services can be added, changed, or deleted on a running system!
  4. Browser cache control - maximize the value of browser cache while being able to change code. The user never has to clear their cache!
  5. HTML components - create your own HTML tags that encapsulate any amount of code into a simple HTML tag that can be re-used anywhere.
  6. Kiss comes with a rich set of business oriented custom components with a consistent interface.
  7. Back-end code can be written in Groovy, Java, or Lisp. Other languages will follow.
  8. Adding a web service amounts to dropping a single, simple file in place. No wiring or configuration. Web services are just a few lines of code.
  9. Front-end code is written in HTML, CSS, and JavaScript. No complex build process.
  10. User authentication is built-in.
  11. Powerful SQL access library supporting PostgreSQL, Microsoft SQL Server, Oracle, MySQL, and SQLite.
  12. Applications can be served with Linux, BSD, or Microsoft servers.

Samples


Sample Back-end Web Service

For example, the following file is located in the services directory.

class MyWebService {
    void myWebMethod(JSONObject injson, JSONObject outjson) {
        int num1 = injson.getInt("num1");
        int num2 = injson.getInt("num2");
        outjson.put("result", num1 + num2);
    }
}

Sample Front-end Use Of Web Service

The following front-end example utilizes the web service defined above.

let data = {
    num1: 22,
    num2: 11
};
let res = await Server.call("services/MyWebService", "myWebMethod", data);
if (res._Success) {
    let result = res.result;
    //...
}
Full authentication and error handling occurs automatically. (The user must have logged in first.)

HTML Component Usage

Developers may use any of the supplied tags or may define your own. Custom tags may encapsulate any amount of HTML, CSS, and JavaScript code and may be re-used in any number of places.

To use a component add to HTML:   <my-component></my-component>

And add to JavaScript: utils.useComponent('MyComponent');

Kiss also supports tag-less components that can encapsulate arbitrary functionality including pop-up windows.

Database API

Kiss comes with a powerful library for accessing SQL databases. This API provides the following benefits:

Single Page Application

Kiss applications are single page applications in the sense that there is a single <body> tag and all other pages essentially get placed into that tag on a single page. However, Kiss is not a single page application in the sense that the entire application gets loaded with a single GET request. This doesn't make sense for a large business application in which many hundreds of pages may exist. Kiss lazy-loads pages as they are used, and except for browser cache, eliminates them once another page is loaded.

Connect


Source code is at https://github.com/kiss-web/Kiss

Public discussion and support is available at https://groups.google.com/forum/#!forum/kissweb

Issue tracking is at https://github.com/kiss-web/Kiss/issues

Commercial support is available. Contact us via email at kissweb.org@gmail.com