Inspiration

We wanted to solve the rigidity of traditional folders. A file often belongs to multiple categories (like "University" and "Taxes"), but standard file systems force you to choose just one path.

What it does Clarifile

Organizes files using a tag-based system instead of folders. It runs natively on Android, iOS and Desktop. It features an automation system that extracts GPS metadata from images and queries OpenStreetMap to automatically tag files with their location (City, Country).

How we built it

We used Kotlin Multiplatform (KMP) to share business logic between Android and Desktop. The stack includes Compose Multiplatform for the UI, Room for the local database, and Ktor for networking with the OpenStreetMap API.

Challenges we ran into

Bridging the gap between Android's restricted ContentProvider system and the standard file system on Desktop was difficult. Configuring Gradle for a multiplatform environment with shared native dependencies was also time-consuming.

Accomplishments that we're proud of

We successfully implemented a single codebase that performs native database transactions on both Linux and Android. The auto-tagging feature works seamlessly in the background to organize files without user input.

What we learned

We learned how to architect an application for multiple targets simultaneously and how to manage the complexities of package management in the Java/Kotlin ecosystem.

What's next for Clarifile

Implementing file syncing across devices and auto-generating tags, potentially using local AI.

Built With

  • compose
  • kotlin
  • multiplatform
Share this project:

Updates