Modern websites consist of at least two tightly coupled components, one runs in the browser, the other on the server. These are often written in different programming languages and must communicate with each other over an HTTP(S) connection.
Kweb's goal is to eliminate this server/browser separation so that your webapp's architecture is determined by the problem you're solving, rather than the limitations of today's tools.
Kweb is a self-contained Kotlin library that can be added easily to new or existing projects. When Kweb receives a HTTP request it responds with the initial HTML page, and some JavaScript that connects back to the web server via a WebSocket. The page then waits and listens for instructions from the server, while notifying the server of relevant browser events.
Features:
* Allows the problem to determine your architecture, not the server/browser divide * End-to-end Kotlin * Keep the web page in sync with your back-end data in realtime, Kweb does all the plumbing for you * Server-side HTML rendering with rehydration * Efficient instruction preloading to avoid unnecessary server communication * Very lightweight, Kweb is less than 5,000 lines of code