English | 中文
Lomo is a local-first, Markdown-based memo application for Android, built with Jetpack Compose and Material 3.
It manages your notes as plain .md files on your device—no digital walled gardens, just local files you can sync however you want (Syncthing, Nextcloud, etc.).
Lomo draws inspiration from excellent predecessors like Memos, Flomo, Moe-Memos, and the Thino plugin for Obsidian. The name itself is a nod to "Local Memo" (or simply Flomo without the F—Foreign/Cloud).
Why build another one? Most existing solutions require a server or network connection. I wanted the "Memos experience"—lightweight, timestamped thoughts—but strictly offline and based on local Markdown files (proven to be the most universal and portable format).
For a long time, I relied on the Thino plugin in Obsidian. While Thino covers the basics, Obsidian's mobile client can feel heavy, and I found the plugin's mobile UI/UX lacking in snappiness and polish.
Compatibility: Lomo is fully compatible with Thino's daily note format. You can effectively treat it as a standalone, native Android client for your Thino data.
A Note on Development: This project was built almost entirely using Google's Antigravity. Since Lomo is tailored to my specific workflow, I plan to maintain it for as long as it remains part of my daily toolchain. If you have concerns about the stability of AI-generated code, feel free to fork and adapt it to your needs.
- Local & Plain Text: All memos are stored as standard Markdown files.
- Material 3 Design: Clean, modern UI with dynamic theming.
- Tag Management: Organize notes with
#tags. Supports nested tags, e.g.,#tag1/tag2. - Review Tools:
- Heatmap: GitHub-style contribution graph for your writing habits.
- Daily Review: Flashback to what you wrote on this day in previous years.
- Widgets: Home screen widgets for quick capture and recent notes.
- Search: Full-text search with indexing.
- Voice Recording: Support for voice memos.
- Language: Kotlin
- UI: Jetpack Compose (Material 3)
- Architecture: MVVM + Clean Architecture (Domain/Data/UI Separation)
- DI: Hilt
- Async: Coroutines & Flow
- Data:
- File-system based storage (Storage Access Framework)
- Room (for FTS indexing and caching)
- JDK 17
- Android SDK API 36
# Build Debug APK
./gradlew assembleDebug
# Run Unit Tests
./gradlew testDebugUnitTest- Download the latest APK from the Releases page.
- Or, build manually:
- Open the project in Android Studio (Ladybug or newer recommended).
- Sync Gradle.
- Build and Run on an Emulator or Device (Min SDK 28).
- On first launch, select a local folder to store your memos.
This project is licensed under the GNU General Public License v3.0.


