Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion docs/kr.tree
Original file line number Diff line number Diff line change
Expand Up @@ -225,8 +225,10 @@
<toc-element topic="dev-server-continuous-compilation.md"/>
<toc-element accepts-web-file-names="debugging-kotlin-in-browser.html" topic="js-debugging.md"/>
<toc-element accepts-web-file-names="running-tests.html" topic="js-running-tests.md"/>
<toc-element topic="js-frameworks.md"/>
<!-- The following page is used in the Mari link service. If you wish to change it here, change the link there too -->
<toc-element toc-title="IR compiler" topic="js-ir-compiler.md"/>
<toc-element toc-title="IR compiler" topic="js-ir-compiler.md">
</toc-element>
<toc-element topic="js-ir-migration.md"/>
<toc-element toc-title="Kotlin for the JS platform">
<toc-element topic="browser-api-dom.md"/>
Expand Down
79 changes: 79 additions & 0 deletions docs/topics/js-frameworks.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
[//]: # (title: Kotlin/JS frameworks)

Take advantage of the available Kotlin/JavaScript frameworks that simplify web development.
These frameworks provide ready-to-use components, routing, state management, and other tools for building modern web applications.

Below are a few examples of popular web
frameworks for Kotlin/JS written by different authors.

### Kobweb

[Kobweb](https://kobweb.varabyte.com/) is a Kotlin framework for creating websites and web applications. It uses [Compose HTML](https://github.com/JetBrains/compose-multiplatform?tab=readme-ov-file#compose-html) and
supports live-reloading for fast development. Inspired by [Next.js](https://nextjs.org/), Kobweb promotes a standard structure for adding widgets, layouts,
and pages.

Out of the box, Kobweb provides page routing, light/dark mode, CSS styling, Markdown support, backend APIs, and more features.
It also includes a UI library called [Silk](https://silk-ui.netlify.app/), which is a set of versatile widgets for modern UIs.

Kobweb also supports site export by generating page snapshots
for SEO and automatic search indexing. Additionally, it enables the creation of DOM-based UIs that efficiently update in response to state changes.

For documentation and examples, see the [Kobweb docs](https://kobweb.varabyte.com/docs/getting-started/what-is-kobweb) site.

For updates and discussions about the framework, join the [#kobweb](https://kotlinlang.slack.com/archives/C04RTD72RQ8) and
[#compose-web](https://kotlinlang.slack.com/archives/C01F2HV7868) channels in the [Kotlin Slack](https://surveys.jetbrains.com/s3/kotlin-slack-sign-up).

### Kilua

[Kilua](https://kilua.dev/) is a composable web framework for Kotlin/Wasm and Kotlin/JS. It is built on the [Compose Runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) and
shares similarities with the [compose-html](https://github.com/JetBrains/compose-multiplatform#compose-html)
library.

Kilua provides a modular API to create declarative UI components and manage their state.
Unlike compose-html, Kilua supports both Kotlin/Wasm and Kotlin/JS targets. It also includes a set of
ready-to-use components for common web application use cases.

Kilua is a successor to the [KVision](https://kvision.io) framework. Kilua is designed to be
familiar to both Compose users (`@Composable` functions, state management, coroutines/flow integration) and
KVision users (component-based API that allows some imperative interaction with the UI components).

For documentation and examples, see the [Kilua repository](https://github.com/rjaros/kilua?tab=readme-ov-file#building-and-running-the-examples) on GitHub.

For updates and discussions about the framework, join the [#kilua](https://kotlinlang.slack.com/archives/C06UAH52PA7) channel in the Kotlin Slack.

### KVision

[KVision](https://kvision.io) is an object-oriented web framework for building Kotlin/JS applications with ready-to-use UI components.
These components can be building blocks for your application's user interface.

With this framework, you can use both reactive and imperative programming
models to build your frontend, use connectors for Ktor, Spring Boot, and other frameworks to integrate it with your server-side
applications, and share code using [Kotlin Multiplatform](https://www.jetbrains.com/help/kotlin-multiplatform-dev/get-started.html).

For documentation, tutorials, and examples, see the [KVision docs](https://kvision.io/#docs) site.

For updates and discussions about the framework, join the [#kvision](https://kotlinlang.slack.com/messages/kvision) and
[#javascript](https://kotlinlang.slack.com/archives/C0B8L3U69) channels in the [Kotlin Slack](https://surveys.jetbrains.com/s3/kotlin-slack-sign-up).

### fritz2

[fritz2](https://www.fritz2.dev) is a standalone framework for building reactive web user interfaces. It provides its own type-safe DSL for building
and rendering HTML elements, and uses Kotlin's coroutines and flows to express components and their data bindings.

fritz2 offers state management, validation, routing, and more features out of the box. Additionally, it integrates with Kotlin Multiplatform projects.

For documentation, tutorials, and examples, see the [fritz2 docs](https://www.fritz2.dev/docs/) site.

For updates and discussions about the framework, join the [#fritz2](https://kotlinlang.slack.com/messages/fritz2) and
[#javascript](https://kotlinlang.slack.com/archives/C0B8L3U69) channels in the [Kotlin Slack](https://surveys.jetbrains.com/s3/kotlin-slack-sign-up).

### Doodle

[Doodle](https://nacular.github.io/doodle/) is a vector-based UI framework for Kotlin/JS. Doodle applications use the browser's graphics capabilities to draw
user interfaces instead of relying on DOM, CSS, or JavaScript. By using this approach, Doodle gives you control
over the rendering of arbitrary UI elements, vector shapes, gradients, and custom visualizations.

For documentation, tutorials, and examples, see the [Doodle docs](https://nacular.github.io/doodle/docs/introduction/) site.

For updates and discussions about the framework, join the [#doodle](https://kotlinlang.slack.com/messages/doodle) and
[#javascript](https://kotlinlang.slack.com/archives/C0B8L3U69) channels in the [Kotlin Slack](https://surveys.jetbrains.com/s3/kotlin-slack-sign-up).
Loading