I am developing a social media platform myself right now and I went for Ktor for a large part of the backend.
Spring Boot: Too much magic
From my previous experience, in Spring boot there is too much magic happening and you need to be an expert in order to get things right and know what annotation you need.
Ktor: Modularity at its finest
I decided to go for Ktor and I don’t regret it so far. I love the modularity that comes with Ktor and it looks that it will also scale great in a Kubernetes cluster. Building the entire backend modular allows later to load only selected modules in each Ktor instance. I still have to test that out though.
Just because Ktor doesn’t come with a huge collection of dependencies doesn’t mean there are no libraries available
Even if you plan to use things like Kafka, database connectors etc. they all have their own libraries, just not always as Kotlin libraries. So Ktor wouldn’t be limiting you, its just that you use independent solutions. And these libraries are built with simplicity in focus, so learning them wouldn’t be much of a burden.
Spring Boot is powerful
No matter what the peoples’ preferences are, Spring Boot is many years longer in development and a lot of resources exist online. So if you have people with many years of experience with Spring Boot, you may kickstart projects quicker.
But my personal opinion is that in the long run its better to write everything yourself because you are in full control of everything. This comes with the risk that if something is bad from the beginning, it will only get worse if not fixed at the right moment.