Skip to content

Anthony17serrato/Phovo

Repository files navigation

phovo_banner

Self hosted Photo/Video backup

This is a Kotlin Multiplatform project targeting Android, iOS, Desktop and WASM(WEB) clients. Phovo is intended to be a self hosted cloud storage client that enables seamless access to photos and videos on all compatible target devices. While initially support for 4 clients is planned, if there is strong market demand for this product Wear OS, Android XR, and Android TV may eventually be targeted.

iOS, Android, Browser and Desktop Applications

All applications are developed within a single codebase using Kotlin Multiplatform technology. The UI is implemented using Compose Multiplatform UI framework.

Screenshots

Android iOS
android_optimized

Desktop

🗓️ Phovo Release Schedule

Phovo is currently undergoing active development. Core logic, architecture, and UI foundations are still being refined. The following is the planned release timeline:


🚩 June 31, 2026 — Alpha Release

Availability: Internal
Focus:

  • Early testing of core features
  • Rapid iteration
  • Expect bugs, instability, and breaking changes without backward compatibility
  • Continued development of initial feature set

🚩 September 31, 2026 — Beta Release

Availability: Public
Focus:

  • Initial feature development complete
  • No further breaking changes
  • Begin stabilization efforts
  • Resolve remaining functional issues

🏁 November 31, 2026 — Stable Release

Availability: Android, iOS & Desktop
Focus:

  • Production-ready release
  • All critical and high-priority bugs resolved
  • Full cross-platform support

Project Structure

How to build and run

The project can be assembled in an environment which has been configured for Kotlin Multiplatform development, please follow the official guide: https://kotlinlang.org/docs/multiplatform/quickstart.html#set-up-the-environment

Source Sets

The Phovo project makes use of custom source sets to maximize code re-usability when certain features are supported only by a subset of platforms. To learn more about custom source sets visit: https://kotlinlang.org/docs/multiplatform/multiplatform-advanced-project-structure.html#declaring-custom-source-sets

Modular Design Strategy

The Phovo project follows the modular design guidelines published by Google for mobile development:

https://developer.android.com/topic/modularization/patterns

As mentioned in the guidelines modularization can be done by feature or by layer. Due to the flexibility of the gradle build system, projects can also adopt a flexible modular design where modularization is done by both feature and layer. A flexible modular design is required for the Phovo project as there are currently 4 target platforms(Android, IOS, Web, Desktop).

  • For cases where a feature is small and all platforms may adopt the same UI, the module in the feature directory will contain UI, Domain, and Data layers
  • For cases where a feature is large and/or specific targets require different UI layer implementations, modularization will be done by both feature and layer.

Troubleshooting WASM issues

When adding new dependencies WASM may require a yarn lock upgrade

./gradlew kotlinUpgradeYarnLock

About

A self-hosted photo/video backup solution

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages