The Fediverse is built on the promise of decentralized communication. However, when users from different instances federate, they often encounter a barrier that code alone can not fix: language. Some platforms are designed to integrate with external translation providers, but this has downsides for instance admins (cost and/or maintenance overhead). In this article we'll discuss how managing translation on clients may help distribute costs and let users configure their favorite service.

Beyond contentDescription, this article explores some techniques to improve accessibility in Compose Multiplatform apps. Using Raccoon as a case study, it covers design ideas for better screen reader integration, ensuring content parity and preserving semantics integrity. It highlights that a11y is a collaborative effort: together we can make the Fediverse more inclusive and usable for everyone.

Gradle is the de facto standard build tool for KMP projects and for a reason: it is extremely powerful and highly flexible. However, if not configured correctly, it may result in suboptimal build performance or its configuration may become hard to maintain over time. In this article we'll discuss what are the main issues I experienced and what solutions I adopted to mitigate them in Raccoon; namely its module structure and the convention plugins it uses.

Did you notice that in the latest beta versions, besides APKs to install on Android a .deb package has popped up to be installed on Debian-based Linux distros? This is not by chance: thanks to Kotlin Multiplatform's power, Raccoon has been ported to JVM and can now run as a desktop app. In this post I'll shortly describe how this came to be, from ideation to implementation; which were the main challenges I found in the migration process and what potential implications it has on the project and its users.