Skip to content

feat: backend overview revamp#5377

Open
danil-pavlov wants to merge 6 commits intomasterfrom
server-overview-upd
Open

feat: backend overview revamp#5377
danil-pavlov wants to merge 6 commits intomasterfrom
server-overview-upd

Conversation

@danil-pavlov
Copy link
Contributor

No description provided.

@danil-pavlov danil-pavlov requested a review from a team as a code owner February 16, 2026 13:50
@koshachy koshachy self-assigned this Feb 18, 2026
Copy link
Collaborator

@sarahhaggarty sarahhaggarty left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! Only a few minor suggestions. Mostly around the compiler plugin section.

While the converter is not fool-proof, it does a pretty decent job of converting most boilerplate code from Java to Kotlin.
However, some manual tweaking is sometimes required.

## Explore compiler plugins {initial-collapse-state="collapsed" collapsible="true"}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since the section is so small, does this need to be under a collapsible?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not a necessary step in this tutorial, and we don't want to overcomplicate the onboarding

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, the collapsible block looks a bit confusing. If the info is important but we don't want to overcomplicate the onboarding — could we find another place for it?

annotations. This is particularly useful for frameworks like Spring that require classes to be non-final.

For Spring, you can use a special [`kotlin-spring`](all-open-plugin.md#spring-support) plugin,
which is a wrapper on top of `all-open`. It helps to specify Spring annotations automatically.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we make it more active and say that "It specifies"?

This allows Java Persistence API (JPA) to instantiate classes that otherwise wouldn't have a default constructor.

You can also use a special [`kotlin-jpa`](no-arg-plugin.md#jpa-support) plugin, which is a wrapper on top of `no-arg`.
It helps to specify no-arg annotations automatically.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similarly, can we say "specifies"?

danil-pavlov and others added 4 commits March 5, 2026 13:24
@danil-pavlov danil-pavlov force-pushed the server-overview-upd branch from 2ab0a66 to 3506370 Compare March 5, 2026 12:25
Copy link
Collaborator

@koshachy koshachy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice job!
I left some comments PTAL.
Cheers!

Configure your Java project to work with Kotlin and make use of the automated Java-to-Kotlin converter
included in IntelliJ IDEA:

<a href="mixing-java-kotlin-intellij.md"><img src="backend-get-started-button.svg" width="350" alt="Introduce Kotlin to your Java project" style="block"/></a>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For some reason buttons are not centered 🤔
I'm pretty sure that we are able to put them right in the center, aren't we? 🤔

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, the arrows look differently (if we compare them with the ones we have in the Kotlin tour).


<web-summary>Build server applications with Kotlin using Spring, Ktor, and other backend frameworks</web-summary>

Kotlin is a great fit for developing server-side applications. It allows you to write concise and expressive code while
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WDYT about this change:

It allows you to write

swap to

You can write concise and expressive ...


## Get started

Kotlin supports gradual migration of large codebases from Java to Kotlin. You can start
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As I understand from the doc. we'd lke to prioritize the MIgration option over starting the project from scratch.
Don't we want to add a note at least here about "Start a new application with Spring/Ktor"?

## Explore frameworks

Kotlin is fully compatible with all Java-based frameworks, so you can use your familiar technology stack while
benefiting from Kotlin syntax. In addition to great IDE support in general, Kotlin offers framework-specific tooling,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
benefiting from Kotlin syntax. In addition to great IDE support in general, Kotlin offers framework-specific tooling,
benefiting from Kotlin syntax. In addition to great IDE support, Kotlin offers framework-specific tooling,


Kotlin is fully compatible with all Java-based frameworks, so you can use your familiar technology stack while
benefiting from Kotlin syntax. In addition to great IDE support in general, Kotlin offers framework-specific tooling,
for example, for Spring and Ktor plugins, in IntelliJ IDEA Ultimate.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
for example, for Spring and Ktor plugins, in IntelliJ IDEA Ultimate.
such as support for Spring and Ktor in IntelliJ IDEA Ultimate.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

isn't it a bit natural?


<a href="https://ktor.io/docs/server-create-a-new-project.html"><img src="ktor-get-started-button.svg" alt="Create a new Ktor project" style="block"/></a>

Here are some other examples of the backend frameworks for Kotlin:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The transition is quite unclear.
I understand that we want to focus on Ktor / Spring mostly but rn the table is a part of Ktor section (which doesn't make mush sense).

Looks like Other frameworks still necessary here.


## Deploy your applications

Kotlin applications can be deployed into any host that supports Java Web applications, including Amazon Web Services,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we provide links to AWS/GCP docs for example? Do they have corresponding tutorials, overviews?

| [http4k](https://http4k.org/) | The functional toolkit with a tiny footprint for Kotlin HTTP applications, written in pure Kotlin. The library is based on the "Your Server as a Function" paper from Twitter and represents modeling both HTTP servers and clients as simple Kotlin functions that can be composed together. |
| [Javalin](https://javalin.io) | A very lightweight web framework for Kotlin and Java which supports WebSockets, HTTP2, and async requests. |

## Deploy your applications
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This section is very fragmented.
Every new para doesn't linked with the previous one.
Maybe we need to rearrange the content to craete a list or smth else?


* Learn how to [test your Java Maven project with Kotlin and JUnit](jvm-test-using-junit.md).
* Explore how to [build asynchronous server applications with Ktor](https://ktor.io/docs/server-create-a-new-project.html).
* Watch a webinar [Micronaut for microservices with Kotlin](https://micronaut.io/2020/12/03/webinar-micronaut-for-microservices-with-kotlin/)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we check how popular were links to Micronaut/http4k.
Is it necessary to leave them here or maybe it's better focus only on 2 major frameworks?

While the converter is not fool-proof, it does a pretty decent job of converting most boilerplate code from Java to Kotlin.
However, some manual tweaking is sometimes required.

## Explore compiler plugins {initial-collapse-state="collapsed" collapsible="true"}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, the collapsible block looks a bit confusing. If the info is important but we don't want to overcomplicate the onboarding — could we find another place for it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants