Status: In active development. Before version 1.0, the app is considered beta; all platforms are maintained on a best-effort basis.
Cross-platform app (Android, iOS, Windows, macOS, Linux) that syncs bookmarks from your GitHub repo and opens URLs in your preferred browser.
Companion to the GitSyncMarks browser extension. Uses the GitHub Git Data API for atomic commits (aligned with the extension), three-way merge sync, optional GitHub Repos / Linkwarden virtual folders, move, reorder, add, edit, and encrypted settings sync.
Why GitSyncMarks-App? View your GitSyncMarks bookmarks on mobile. Uses the same per-file format — bookmarks live in your Git repo. Sync once, browse offline. Works with the browser extension's bookmark structure (toolbar, menu, other, mobile).
See CHANGELOG.md for version history and ROADMAP.md for milestones and future plans.
- Sync from GitHub: GitSyncMarks-compatible repo via Git Data API (atomic commits), with three-way merge, conflict resolution (force push / pull), and sync history (preview, restore, undo)
- Settings Sync to Git: Encrypted sync (extension-compatible), individual mode with client-name based
profiles/<alias>/settings.enc, import from other device - Move bookmarks: Long-press to move bookmarks to any folder (including subfolders)
- Reorder bookmarks: Drag-and-drop to reorder; changes persisted to repo
- Delete bookmarks: Long-press to delete (available even when edit mode is locked)
- Share link as bookmark (Android/iOS): Add shared URLs from browser or other apps as bookmarks; FAB / dialog to add bookmarks and create folders on all platforms
- Edit bookmarks: Long-press → edit title and URL (atomic commit to repo)
- Generated files: Optional README.md, Netscape HTML, RSS, Dashy YAML (Off / Manual / Auto) committed with “Generate now”
- GitHub Repos / Linkwarden (optional): Virtual tabs from your GitHub account or Linkwarden collections (profile toggles in Sync settings)
- Export: JSON plus HTML, RSS, Dashy YAML, Markdown from the current tree (Settings → Files)
- UI density & diagnostics: S/M/L list density, sync on resume, What’s New after updates, debug log (About)
- Password-protected export/import: Export settings with AES-256-GCM encryption; import detects encrypted files and prompts for password
- Configurable root folder: Select any folder as "root" for tab navigation
- Auto-lock edit mode: Edit mode auto-locks after 60 seconds of inactivity
- Reset all data: Clear all profiles, settings, and cached data from the About tab
- Local cache: Bookmarks saved after sync, loaded from cache on app start (offline-capable)
- GitHub Personal Access Token: Secure authentication with
reposcope - Folder selection: Choose which root folders to display (toolbar, menu, mobile, other)
- Base path folder browser: Browse repository folders when selecting the Git sync path
- Favicons: Via DuckDuckGo API
- Pull-to-refresh: Manual sync when you need it
- Theme mode: Select
System,Light, orDarkinSettings > General(GitSyncMarks branding) - i18n: 12 extension-parity languages (
en,de,fr,es,pt_BR,it,ja,zh_CN,ko,ru,tr,pl) withSystemor manual selection in Settings > General - Settings | About | Help: All in one tabbed screen
We're looking for beta testers before the public Google Play Store launch.
- Go to the Releases page
- Download
GitSyncMarks-App-X.X.X.apk(or a pre-release build for testing) - Open the file on your Android device (allow from unknown sources if prompted)
- Install the app
- Android updates without uninstall require the same app ID and same signing certificate.
- This project uses a single release signing identity for GitHub release APKs and Play upload artifacts.
- F-Droid cross-channel updates are configured via upstream-signed APK verification (
AllowedAPKSigningKeys+Builds.binaryin F-Droid metadata). - Local
debugbuilds are signed with a different key by design, sodebug->releaseupgrades can fail and require uninstall.
- Download
GitSyncMarks-App-vX.X.X.flatpakfrom Releases - Install:
flatpak install --user ./GitSyncMarks-App-vX.X.X.flatpak- Run:
flatpak run io.github.d0dg3r.GitSyncMarksApp- Download
GitSyncMarks-App-X.X.X-linux-x64.zipfrom Releases - Extract and run:
unzip GitSyncMarks-App-X.X.X-linux-x64.zip -d GitSyncMarks-App
cd GitSyncMarks-App
./gitsyncmarks_appDownload the respective .zip from Releases, extract, and run the executable.
- Open the app and go to Settings (first tab)
- Enter your Personal Access Token (create one at GitHub Settings > Tokens with
reposcope) - Enter Repository Owner and Repository Name (your bookmark repo)
- Set Branch (usually
main) and Base Path (defaultbookmarks— must match your GitSyncMarks extension config). Use the folder button to browse repo directories. - In GitHub > Folders, select root/display folders to show (toolbar, menu, other, mobile)
- In Sync, choose a sync profile. If you select Custom, set your own interval in minutes.
- Click Test Connection to verify, then Save
- Use Sync Bookmarks to fetch your bookmarks (the status line also shows the synced commit hash)
The bookmark format comes from GitSyncMarks. Your repo should use folders like toolbar, menu, other, mobile with JSON files per bookmark. The app supports moving, reordering, and adding bookmarks. Settings can be synced encrypted (extension-compatible). For full bidirectional sync, use the browser extension.
- Flutter SDK (3.41.0 or later)
- Install Flutter:
# Arch Linux / CachyOS
paru -S flutter
# or: https://docs.flutter.dev/get-started/install- Get dependencies:
cd GitSyncMarks-App
flutter pub get- Run on device/emulator:
flutter run -d android
flutter run -d linux # Linux desktop
flutter run -d windows # Windows (on Windows host)
flutter run -d macos # macOS (on macOS host)- Build standalone executable (no Flutter runtime needed):
flutter build linux # → build/linux/x64/release/bundle/
flutter build windows # → build/windows/x64/runner/Release/ (Windows host only)
flutter build macos # → build/macos/Build/Products/Release/ (macOS host only)- Regenerate screenshots (optional, vor Release):
./scripts/generate-screenshots.shReleases are built automatically on tag push (v*). All tags trigger builds for all platforms.
Use the mandatory release runbook and gate checks in docs/RELEASE-CHECKLIST.md for stable releases and tag recovery.
# Stable release (marked as "latest")
git tag v0.3.0 && git push origin v0.3.0
# Pre-release (visible under Releases, but not marked as "latest")
git tag v0.3.0-beta.1 && git push origin v0.3.0-beta.1Tag convention:
v1.2.3— stable release, marked as "latest"v1.2.3-beta.1,v1.2.3-rc.1,v1.2.3-test.1— pre-release (any tag with-suffix)
Artifacts appear under Releases: APK (Android), Flatpak + ZIP (Linux), ZIP (Windows, macOS).
Release safety checks now enforce Android signing consistency:
- Tagged releases fail early if Android signing secrets are missing
- APK and AAB are built after signing setup from the same key configuration
- CI verifies the APK certificate fingerprint against the configured keystore
To test the Flatpak build without running the full release workflow (Windows, macOS, release job):
- Manual: Go to Actions → "Flatpak test" → Run workflow
- Tag: Push
v0.3.0-flatpak-test.1(or anyv*-flatpak-test* tag)
This runs only build-android-linux and build-flatpak. The .flatpak artifact can be downloaded from the workflow run.
| Platform | Status | Notes |
|---|---|---|
| Android | Beta | Primary platform, actively developed |
| Windows | Alpha | Built from same codebase, developed as time permits |
| Linux | Alpha | Flatpak + ZIP; developed as time permits |
| macOS | Alpha | Built from same codebase, developed as time permits |
| iOS | Alpha | Built from same codebase; no CI build yet (requires macOS runner) |
Android is the main focus. All other platforms share the same Flutter codebase and are maintained on a best-effort basis -- contributions welcome!
- docs/README.md — Project context and continuation guide
- docs/PLAN.md — Implementation phases
- docs/BOOKMARK-FORMAT.md — Bookmark JSON structure
- docs/RELEASE-CHECKLIST.md — Stable release sequence, verification gates, and recovery flow
- store/README.md — App store submission (descriptions, screenshots)
- CHANGELOG.md — Version history
- ROADMAP.md — Milestones and future plans
If you find GitSyncMarks-App helpful, consider supporting its development:
- Sponsor on GitHub: Directly support the developer.
- Star the Repository: Help others discover the project.
- Contribute: Submit bug reports, feature ideas, or pull requests.
