{"id":13428779,"url":"https://github.com/rjaros/kvision","last_synced_at":"2026-01-06T15:14:39.692Z","repository":{"id":29282647,"uuid":"120835750","full_name":"rjaros/kvision","owner":"rjaros","description":"Object oriented web framework for Kotlin/JS","archived":false,"fork":false,"pushed_at":"2025-04-20T04:44:45.000Z","size":269270,"stargazers_count":1282,"open_issues_count":16,"forks_count":67,"subscribers_count":25,"default_branch":"master","last_synced_at":"2025-05-09T00:01:54.520Z","etag":null,"topics":["framework","frontend","fullstack","javalin","jooby","kotlin","kotlin-js","ktor","micronaut","object-oriented","onsenui","reactive","spring-boot","ui","vertx","web"],"latest_commit_sha":null,"homepage":"https://kvision.io","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rjaros.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"rjaros","custom":["https://paypal.me/RobertJaros"]}},"created_at":"2018-02-09T00:32:45.000Z","updated_at":"2025-05-08T16:32:33.000Z","dependencies_parsed_at":"2023-11-23T17:23:15.619Z","dependency_job_id":"41b61f72-34d2-4dd0-90ac-34175d91597e","html_url":"https://github.com/rjaros/kvision","commit_stats":{"total_commits":2206,"total_committers":24,"mean_commits":91.91666666666667,"dds":0.09292837715321844,"last_synced_commit":"c05e69475da32bbf362e4b6ba3296f2629642e3c"},"previous_names":[],"tags_count":197,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rjaros%2Fkvision","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rjaros%2Fkvision/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rjaros%2Fkvision/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rjaros%2Fkvision/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rjaros","download_url":"https://codeload.github.com/rjaros/kvision/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254052692,"owners_count":22006716,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["framework","frontend","fullstack","javalin","jooby","kotlin","kotlin-js","ktor","micronaut","object-oriented","onsenui","reactive","spring-boot","ui","vertx","web"],"created_at":"2024-07-31T01:01:04.948Z","updated_at":"2026-01-06T15:14:39.651Z","avatar_url":"https://github.com/rjaros.png","language":"Kotlin","readme":"![KVision Logo](graphics/kvision-logo.png?raw=true \"KVision\")\n# KVision\n\nObject oriented web framework for Kotlin/JS.\n\n[https://kvision.io](https://kvision.io)\n\n![CI](https://github.com/rjaros/kvision/workflows/CI/badge.svg)\n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.kvision/kvision/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.kvision/kvision)\n[![API](https://img.shields.io/badge/API-dokka-green)](https://rjaros.github.io/kvision/index.html)\n[![IR](https://img.shields.io/badge/Kotlin%2FJS-IR%20supported-yellow)](https://kotl.in/jsirsupported)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Slack](https://img.shields.io/badge/slack-channel-green?logo=slack)](https://kotlinlang.slack.com/?redir=%2Fmessages%2FCL4C1SLKC)\n[![Discord](https://img.shields.io/discord/880183907641851964?label=Discord\u0026logo=discord\u0026logoColor=white)](https://discord.gg/SdsN3arN2w)\n\nKVision allows you to build modern web applications with the [Kotlin](https://kotlinlang.org) language,\nwithout any use of HTML, CSS or JavaScript. It gives you a rich hierarchy of ready to use GUI components,\nwhich can be used as builder blocks for the application UI.\n\nKVision fully supports both reactive and imperative programming models. It gives you everything you may need for the state management of your apps.\n\nKVision integrates with [Kilua RPC](https://github.com/rjaros/kilua-rpc) library for [Ktor](https://ktor.io/), [Jooby](https://jooby.io), [Spring Boot](https://spring.io/projects/spring-boot),\n[Javalin](https://javalin.io), [Vert.x](https://vertx.io) and [Micronaut](https://micronaut.io) frameworks on the server side, which\nallows to build fullstack applications with shared code for data model and business logic.\n\nKVision is being actively developed. Please create an issue for any bugs or feature requests.\n\n## Sample code\n\n```kotlin\nclass App : Application() {\n\n    val state = ObservableValue(\"Hello world\")\n\n    override fun start() {\n        root(\"root\") {\n            vPanel {\n                h1(state) {\n                    +it\n                }\n                button(\"Add an exclamation mark\").onClick {\n                    state.value += \"!\"\n                }\n            }\n        }\n    }\n}\n```\n\n## Features\n\n- 100% type safe and fully compiled dev environment.\n- Type safe DSL builders.\n- Based on [Bootstrap](https://getbootstrap.com/) styles, typography and components.\n- Utilizes [Snabbdom](https://github.com/snabbdom/snabbdom) fast virtual DOM implementation.\n- Integrates with a lot of libraries and components:\n    - [Font awesome](https://fontawesome.com/)\n    - [Tom Select](https://tom-select.js.org/)\n    - [Trix editor](https://trix-editor.org/)\n    - [Tempus Dominus datetime picker](https://github.com/Eonasdan/tempus-dominus)\n    - [Bootstrap File Input](http://plugins.krajee.com/file-input)\n    - [Handlebars](http://handlebarsjs.com/)\n    - [Chart.js](https://www.chartjs.org/)\n    - [Tabulator](http://tabulator.info/)\n    - [ReduxKotlin](https://reduxkotlin.org/)\n    - [Ballast](https://copper-leaf.github.io/ballast/)\n    - [Navigo](https://github.com/krasimir/navigo)\n    - [Pace](https://github.hubspot.com/pace/docs/welcome/)\n    - [Leaflet](https://leafletjs.com/)\n    - [Toastify JS](https://apvarun.github.io/toastify-js/)\n    - [Print.js](https://printjs.crabbly.com/)\n    - [Imask.js](https://imask.js.org/)\n    - [Material Web](https://material-web.dev/)\n\n- Includes sophisticated layout containers, including CSS flexbox, CSS grid and Bootstrap responsive 12 columns grid.\n- Includes convenient forms implementation, with support for many different input components and easy to use validation.\n- Support for observer pattern, data binding, event Flows and StateFlow for observables.\n- Supports [React](https://reactjs.org/) components with KVision DSL and built-in state management.\n- Internationalization support based on [gettext](https://www.gnu.org/software/gettext/) translations and [gettext.js](https://github.com/guillaumepotier/gettext.js) library.\n- Easy to use Drag \u0026 Drop support.\n- Support for jQuery animations and effects.\n- Type-safe REST connectivity.\n- Dark mode support.\n- KVision applications are built with [Gradle](https://gradle.org/) with support for Webpack's [Hot Module Replacement (HMR)](https://webpack.js.org/concepts/hot-module-replacement/) and\n[Kotlin JavaScript DCE (dead code elimination)](https://kotlinlang.org/docs/reference/javascript-dce.html).\n- [Karma](https://karma-runner.github.io/) testing framework support.\n- IDE support (IntelliJ IDEA). The [KVision Project Wizard](https://github.com/JakubNeukirch/kvision-project-wizard) is being developed as a separate project (thanks to [@JakubNeukirch](https://github.com/JakubNeukirch)).\n\n## Examples and documentation\n\nReady to explore, rich set of [KVision examples](https://github.com/rjaros/kvision-examples) is available in the separate project.\n\nSee also the complete frontend implementation of [RealWorld example application](https://github.com/rjaros/kvision-realworld-example-app) and a [fullstack version](https://github.com/rjaros/kvision-realworld-example-app-fullstack) built with Spring Webflux and R2DBC.\n\nThe comprehensive [KVision guide](https://kvision.gitbook.io/kvision-guide/) is published on GitBook.\n\nThe API documentation, generated with new Dokka, is available at [https://rjaros.github.io/kvision/index.html](https://rjaros.github.io/kvision/index.html).\n\nYou can also look at [KVision blog posts at dev.to](https://dev.to/t/kvision/latest) and you can talk with KVision\nusers and developers on Kotlin Slack [#kvision](https://kotlinlang.slack.com/messages/kvision/) channel and on the [Discord server](https://discord.gg/SdsN3arN2w).\n\n## Quickstart\n\n#### Development\n\n1. Download [KVision examples](https://github.com/rjaros/kvision-examples) from GitHub:\n\n        git clone https://github.com/rjaros/kvision-examples.git\n\n2. Enter one of the examples directory:\n\n        cd kvision-examples/showcase                        (on Linux)\n        cd kvision-examples\\showcase                        (on Windows)\n\n3. Run Gradle incremental build with:\n\n        ./gradlew -t run                                    (on Linux)\n        gradlew.bat -t run                                  (on Windows)\n\n4. Open [http://localhost:3000/](http://localhost:3000/) in your browser.\n\n5. Play with the code and see your changes immediately in the browser.\n\n#### Production\n\nTo build complete application optimized for production run:\n\n        ./gradlew zip                       (on Linux)\n        gradlew.bat zip                     (on Windows)\n\nApplication package will be saved as build/libs/showcase-1.0.0-SNAPSHOT.zip.\n\n## Leave us a star\n\nIf you like this project, please give it a star on GitHub. Thank you!\n","funding_links":["https://github.com/sponsors/rjaros","https://paypal.me/RobertJaros"],"categories":["Libraries","开发框架","Kotlin"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frjaros%2Fkvision","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frjaros%2Fkvision","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frjaros%2Fkvision/lists"}