Sign in

OpenSavvy

@opensavvy.dev
14 followers 10 following 57 posts

Open source projects with a deep focus on quality, automation and security. opensavvy.dev Maintained by @ivcanet.bsky.social and Maxime Girardet

PostsRepliesMedia
OpenSavvy @opensavvy.dev · 22/08/2026
KtMongo 0.32.1 brings a new documentation page to easily find operators! ktmongo.opensavvy.dev/features/ind... #kotlin #mongodb
ktmongo.opensavvy.dev
Navigating the KtMongo documentation - OpenSavvy KtMongo
The next MongoDB driver for Kotlin
110
OpenSavvy @opensavvy.dev · 13/08/2026
Prepared 2.6.0 now integrates with both the Kotest and TestBalloon IntelliJ plugins! prepared.opensavvy.dev?utm=bluesky
010
OpenSavvy @opensavvy.dev · 11/08/2026
Vite for Kotlin 0.9.1 is out! • A fix for NPM users by Robert Jaros • Vite 8.1 by default #kotlin #vitejs #javascript vite-kotlin.opensavvy.dev
vite-kotlin.opensavvy.dev
Vite for Kotlin
Use ViteJS in your Gradle and Kotlin projects
050
OpenSavvy @opensavvy.dev · 06/08/2026
Spine 0.12.1 is out! HTTP QUERY support, two fixes by @vergauwensimon.bsky.social and improved documentation 1.0 is near, send us feedback! spine.opensavvy.dev
spine.opensavvy.dev
OpenSavvy Spine
Share your Ktor endpoints between client and server
021
OpenSavvy @opensavvy.dev · 04/08/2026
Prepared, Pedestal, Vite for Kotlin and Dokka MkDocs are now on @tangled.org! tangled.org/opensavvy.dev
tangled.org
000
OpenSavvy @opensavvy.dev · 04/08/2026
Spine is now mirrored on @tangled.org! tangled.org/opensavvy.de...
tangled.org
010
OpenSavvy @opensavvy.dev · 28/06/2026
KtMongo 0.31.0 is out! Array filters, $pop, $pull, $bit, $near, $nearSphere, $geoWithin, $geoIntersects, $mod Multiplatform insertOne 👀 Improved documentation for KMongo users ktmongo.opensavvy.dev/news/2026/06...
ktmongo.opensavvy.dev
0.31.0 • Array update operators, GeoJSON operators, KMongo migration documentation and Multiplatform insertOne - OpenSavvy KtMongo
The next MongoDB driver for Kotlin
012
Reposted by OpenSavvy
Simon Vergauwen @vergauwensimon.bsky.social · 10/06/2026
I really like Spine from @opensavvy.dev and @ivcanet.bsky.social. It offers a really cool and ingenious way of defining typed endpoints in #Kotlin for #Ktor that you can share between the server & client! 🔥 It just moved into beta with the 0.11.0 release. Check it out. spine.opensavvy.dev
spine.opensavvy.dev
OpenSavvy Spine
Share your Ktor endpoints between client and server
062
OpenSavvy @opensavvy.dev · 10/06/2026
Spine 0.11.0 is out, and Spine reaches Beta! Spine is a DSL to type-safely declare your Ktor endpoints in common code, shared between client and server. No magic, no reflection, no code generation—and now production-ready! spine.opensavvy.dev/news/2026/06...
spine.opensavvy.dev
0.11.0 • Spine reaches beta! - OpenSavvy Spine
Share your Ktor endpoints between client and server
000
OpenSavvy @opensavvy.dev · 04/05/2026
#Vite for #Kotlin 0.9.0 with Vite 8 support! vite-kotlin.opensavvy.dev
vite-kotlin.opensavvy.dev
Vite for Kotlin
Use ViteJS in your Gradle and Kotlin projects
020
OpenSavvy @opensavvy.dev · 04/05/2026
Prepared 2.5.2 is out! • Improved assertion output for exceptions and Arrow typed errors • TestBalloon 0.8.4 support • Kotest 6.1.11 support prepared.opensavvy.dev/news/2026/05...
prepared.opensavvy.dev
2.5.2 • Improved failure assertions output, removed false negative warning, dependency upgrades - OpenSavvy Prepared
Magicless testing framework for Kotlin Multiplatform, featuring time management, parameterization and isolated fixtures.
020
OpenSavvy @opensavvy.dev · 20/04/2026
Dokka for MkDocs 0.6.3 is out! • Overloads are easier to read • The table of content is more concise dokka-mkdocs.opensavvy.dev Before / after ↓
100
OpenSavvy @opensavvy.dev · 20/04/2026
Kotlin Resources 0.6.2 is out! Kotlin Resources allows embedding static files in libraries for all platforms, even JS and Native, with MavenCentral support. This version improves the documentation website. kotlin-resources.opensavvy.dev
kotlin-resources.opensavvy.dev
Transitive resources for Kotlin
Embed static resources in your Kotlin JS or multiplatform libraries.
000
OpenSavvy @opensavvy.dev · 15/04/2026
KtMongo 0.29.1 is out! Mostly documentation changes. Big changes are coming, but they're not fully ready yet. ktmongo.opensavvy.dev
ktmongo.opensavvy.dev
OpenSavvy KtMongo
The next MongoDB driver for Kotlin
020
OpenSavvy @opensavvy.dev · 13/04/2026
The KtMongo test suite is leading to bug fixes in the official Kotlin driver 👀 github.com/mongodb/mong...
github.com
Fix Kotlin bson decoding of optionals by rozza · Pull Request #1941 · mongodb/mongo-java-driver
Previously, DataClassCodec pre-populated all constructor parameters with null before reading the document, which prevented callBy from using Kotlin default parameter values. Now optional parameters...
020
OpenSavvy @opensavvy.dev · 13/04/2026
.gitlab-ci.main.kts 0.7.6 is out with support for allowFailure {}! gitlab-ci-kts.opensavvy.dev/api/gitlab-c...
gitlab-ci-kts.opensavvy.dev
AllowFailure - .gitlab-ci.main.kts
Generate your GitLab CI pipeline with Kotlin.
010
Reposted by OpenSavvy
Ivan “CLOVIS” Canet @ivcanet.bsky.social · 08/04/2026
I'm a finalist at Golden Kodee Awards, the Kotlin Foundation community-recognition award! Next step is KotlinConf 2026, Munich 👀
191
OpenSavvy @opensavvy.dev · 31/03/2026
Dokka for MkDocs 0.6.2 is out, with support for Dokka 2.2.0! dokka-mkdocs.opensavvy.dev
dokka-mkdocs.opensavvy.dev
Dokka in Material for MkDocs
Embed your Kotlin documentation comments into a Material for MkDocs site
010
OpenSavvy @opensavvy.dev · 27/03/2026
Now *this* is the developer experience we envision
131
OpenSavvy @opensavvy.dev · 18/03/2026
Have you? Support us by voting for @ivcanet.bsky.social in the 'Online presence' category!
010
OpenSavvy @opensavvy.dev · 18/03/2026
Dokka for MkDocs 0.6.0 is out, with big changes! We now have a proper aggregator module, which fixes all the big issues. The project thus graduates to beta! dokka-mkdocs.opensavvy.dev/news/2026/03...
dokka-mkdocs.opensavvy.dev
0.6.0 • Beta graduation, improved paths & improved UX - Dokka in Material for MkDocs
Embed your Kotlin documentation comments into a Material for MkDocs site
111
OpenSavvy @opensavvy.dev · 11/03/2026
Prepared 2.5.0 is out with helpers for Arrow Resources! prepared.opensavvy.dev/features/com...
prepared.opensavvy.dev
Arrow Resources - OpenSavvy Prepared
Magicless testing framework for Kotlin Multiplatform, featuring time management, parameterization and isolated fixtures.
010
OpenSavvy @opensavvy.dev · 07/03/2026
Prepared 2.4.1 brings stable time control with Kotlin 2.3.0! prepared.opensavvy.dev/features/tim...
prepared.opensavvy.dev
Date and time - OpenSavvy Prepared
Magicless testing framework for Kotlin Multiplatform, featuring time management, parameterization and isolated fixtures.
000
OpenSavvy @opensavvy.dev · 06/03/2026
KtMongo's ObjectId and other BSON types can be serialized identically using: • The official library bson-kotlin • The official library bson-kotlinx • Our Multiplatform library bson-multiplatform ktmongo.opensavvy.dev/api/-kotlin%...
ktmongo.opensavvy.dev
ObjectId - OpenSavvy KtMongo
The next MongoDB driver for Kotlin
100
OpenSavvy @opensavvy.dev · 01/03/2026
Dokka for Material MkDocs 0.5.4 is out! • Kotlin 2.3.0 • Gradle 9.2.1 • Dokka 2.1.0 • Native breadcrumb support dokka-mkdocs.opensavvy.dev
Screenshot of https://dokka-mkdocs.opensavvy.dev/api/-library%20module/opensavvy.dokka.material.mkdocs.example/foo2.html
042
OpenSavvy @opensavvy.dev · 21/02/2026
Spine 0.9.2 brings fixes for explicit null query parameters Thanks again @skye.codes! spine.opensavvy.dev/parameters.h...
spine.opensavvy.dev
Query parameters - OpenSavvy Spine
Share your Ktor endpoints between client and server
021
OpenSavvy @opensavvy.dev · 19/02/2026
@vite.dev for @kotlinlang.org 0.8.2 now supports Kotlin 2.3.0! We've also made a few improvements to the UX of the website. vite-kotlin.opensavvy.dev/news/2026/02...
vite-kotlin.opensavvy.dev
0.8.2 • Kotlin 2.3.0 and documentation website improvements - Vite for Kotlin
Use ViteJS in your Gradle and Kotlin projects
051
OpenSavvy @opensavvy.dev · 14/02/2026
Prepared 2.4.0 is out: • Conditionally ignore tests • Better exception handling of fixtures • Bug fixes prepared.opensavvy.dev/news/2026/02...
prepared.opensavvy.dev
2.4.0 • Conditionally ignore tests and better stack traces for fixtures - OpenSavvy Prepared
Magicless testing framework for Kotlin Multiplatform, featuring time management, parameterization and isolated fixtures.
000
OpenSavvy @opensavvy.dev · 10/02/2026
OpenSavvy ❤️ Arrow
031
Reposted by OpenSavvy
Simon Vergauwen @vergauwensimon.bsky.social · 10/02/2026
Spine is really cool! If you’re looking for a great way of doing typesafe routing in Ktor check it out! Now also with Arrow-kt support 😍
151
OpenSavvy @opensavvy.dev · 09/02/2026
Spine 0.9.1 comes with bug fixes for #Arrow compatibility for typed #Ktor endpoints: Thanks @skye.codes for the contribution!
		routeWithRaise(User.get) {
			val id = idOf(User)

			val user = dataLock.withLock("get $id") { data.find { it.id == id } }

			ensureNotNull(user) { NotFound(id) }

			respond(user)
		}
252
OpenSavvy @opensavvy.dev · 03/02/2026
With KtMongo 0.26.0, easily compare two complex BSON documents or arrays Particularly useful in tests to understand what changed! ktmongo.opensavvy.dev
✗ a: 
     ✓ 0: 1
     ✓ 1: 2
     ✗ 2: (field not present)
          "Bob"

check(a == b) { (a diff b) ?: "no diff" }
      | |  |
      | |  {"a": [1, 2, "Bob"]}
      | false
      {"a": [1, 2]}
021
OpenSavvy @opensavvy.dev · 03/02/2026
With KtMongo 0.26.0, use complex JSONPath expressions to find data in your BSON documents! ktmongo.opensavvy.dev

test("Multiple indices") {
	check(multiDoc().select<String>("$.a[0, 3][0:1:2]").toList() == listOf("a", "d"))
}
020
OpenSavvy @opensavvy.dev · 28/01/2026
Our domain name is now verified again!
120
OpenSavvy @opensavvy.dev · 28/01/2026
We're now on @tangled.org! tangled.org/opensavvy.bs...
tangled.org
opensavvy.bsky.social/ktmongo
The next MongoDB driver for Kotlin
120
OpenSavvy @opensavvy.dev · 07/01/2026
Pedestal 3.2.0 adds: • 32-bit optimized EnumSet • Multiplatform weak references • Multiplatform weak value maps pedestal.opensavvy.dev/api-docs/
pedestal.opensavvy.dev
All modules
000
OpenSavvy @opensavvy.dev · 30/12/2025
Starting in KtMongo 0.25.0, the KtMongo '/' notation recognizes KMongo's @BsonId and KotlinX.Serialization's @SerialName when using the KMongo compatibility module. Users can add support for their own annotations by overriding PropertyNameStrategy. Learn more → ktmongo.opensavvy.dev/api/-mongo-d...
@Serializable
data class Test1(
	@field:BsonId
	val a: NameStrategyProfile,
)
020
OpenSavvy @opensavvy.dev · 27/12/2025
We now provide a custom #Docker image specifically for compiling #GitLab CI pipelines in #Kotlin gitlab-ci-kts.opensavvy.dev/tutorials/in...
040
OpenSavvy @opensavvy.dev · 26/12/2025
In KtMongo 0.25.0, the new experimental BsonPath class allows extracting #MongoDB documents using #JSONPath queries! Currently only a subset of the JSONPath syntax is supported, more will be added in coming versions. Send us your feedback! ktmongo.opensavvy.dev/api/-kotlin%...

val document = context().write(bob)

val age: String = bobDoc() at BsonPath.parse("$.pets[1].age")
031
OpenSavvy @opensavvy.dev · 13/12/2025
Vite for Kotlin 0.7.0 is out! You can now use #vite 8 in your #kotlin projects, with experimental WasmJS support and important bug fixes! vite-kotlin.opensavvy.dev/news/2025/12...
vite-kotlin.opensavvy.dev
0.7.0 • Vite 8 beta support, experimental WasmJS support, bug fixes - Vite for Kotlin
Use ViteJS in your Gradle and Kotlin projects
031
OpenSavvy @opensavvy.dev · 03/12/2025
Tired of writing your #GitLab CI in YAML? With gitlab-ci.main.kts 0.7.2, you can write your GitLab CI in #Kotlin! gitlab-ci-kts.opensavvy.dev
gitlab-ci-kts.opensavvy.dev
.gitlab-ci.main.kts
Generate your GitLab CI pipeline with Kotlin.
121
OpenSavvy @opensavvy.dev · 22/11/2025
Have you tried creating a Kotlin Multiplatform library module and discovered its src/xxxMain/resources files are not available in the downstream application modules? Introducing the Kotlin Resource plugins 0.6.0 with Gradle 9 support and a brand new docs site! kotlin-resources.opensavvy.dev
kotlin-resources.opensavvy.dev
Transitive resources for Kotlin
Embed static resources in your Kotlin JS or multiplatform libraries.
010
OpenSavvy @opensavvy.dev · 11/11/2025
What if you could easily analyze intermediate values in your tests? Learn how with Prepared and Power Assert → prepared.opensavvy.dev/api/-suite/o...
Code:

test("My test") {
    log(12 + 5) { "Important intermediary result" }
}

Output:

» Logged ‘17’
  Important intermediary result
  log(12 + 5)
         |
         17
021
OpenSavvy @opensavvy.dev · 11/11/2025
Prepared 2.2.0 is out! Prepared is your favorite Kotlin test DSL: running on top of any framework, declare complex tests cases easily. • Improved inner-test logging • Kotest 6 support • TestBalloon 0.7.1 support Read the full changelog → prepared.opensavvy.dev/news/2025/11...
prepared.opensavvy.dev
News - OpenSavvy Prepared
Magicless testing framework for Kotlin Multiplatform, featuring time management, parameterization and isolated fixtures.
000
OpenSavvy @opensavvy.dev · 22/10/2025
KtMongo 0.24.0 is out, with our new mascot, Mokodee! This version contains new syntax sugar for $unset, and improvements to the documentation. ktmongo.opensavvy.dev/news/2025/10...
242
OpenSavvy @opensavvy.dev · 02/10/2025
Hey everyone! This is the new account for OpenSavvy news. Learn more about us at opensavvy.dev
020