An open-source alternative to Pixel Journal
Built with Jetpack Compose and Material Design 3
June is designed to be more than just text—it's a multimedia capsule of your life.
- Multimedia Capsules: Go beyond words by attaching photos, videos, and precise locations to any entry.
- Soundtrack Support: Paste a link from any major streaming platform (Spotify, Apple Music, etc.), and June automatically fetches the cover art and song details.
- Mood Tracking: Tag entries with emojis to log your emotional journey and personal growth over time.
- Unified Timeline: Navigate your past via a smooth month-strip. See your media, songs, and locations all in one place within a seamless flow.
- Visual Habits: Keep your momentum going with calendar streaks and writing indicators that visualize your consistency.
- Smart Search: Instantly locate memories by searching through content, dates, tags, or attached media.
- Biometric Vault: Protect your private thoughts with Fingerprint or Face Unlock.
- Expressive Theming: Enjoy a personalized look with Dynamic Wallpaper Colors (Material You) or curated custom themes.
- Total Ownership: 100% offline architecture with full Backup & Restore capabilities—your data never leaves your device.
June is built with modern Android development practices, leveraging Jetpack Compose and Kotlin.
- Language: Kotlin (100%)
- UI Toolkit: Jetpack Compose (Material 3)
- Architecture: MVVM (Model-View-ViewModel) with Clean Architecture principles.
- Dependency Injection: Koin
- Navigation: Jetpack Navigation Compose
- Asynchronous: Coroutines & Flows
- Local Database: Room (SQLite abstraction)
- Preferences: Jetpack DataStore
- Networking: Retrofit & OkHttp
- Image Loading: Coil
- Video/Audio: Media3 (ExoPlayer)
- Maps: MapLibre & MapTiler (Vector-based rendering)
- Theming: MaterialKolor (Dynamic Material You colors)
To set up June on your local machine, follow these steps:
- Android Studio: Latest stable version recommended.
- JDK 17: The project is configured to use Java 17 toolchain.
git clone https://github.com/DenserMeerkat/June.git
cd JuneJune uses MapTiler for map rendering.
- Get a free API key from MapTiler Cloud.
- Copy the
local.properties.examplefile tolocal.properties:cp local.properties.example local.properties
- Open
local.propertiesand replace the placeholder with your key:MAPTILER_API_KEY=your_actual_key_here
- Open the project in Android Studio and let Gradle sync.
- Select the debug build variant (default).
- Click Run.
Note: You do not need
keystore.propertiesto build the debug version. That file is only required for signing release/beta builds.







