A personal fork of Linkdy by JGeek00 — a Linkding mobile client built with Flutter.
Linkding is a self-hosted bookmark manager. This fork extends the original app with a richer interface and additional features, inspired by the mobile experience of Linkwarden. I personally prefer Linkding as my bookmarks backend but missed having a polished mobile app like Linkwarden's — this fork is my attempt to bridge that gap.
Currently only compiled for Android. Building for iOS follows the standard Flutter process and should work without any platform-specific changes.
| Dashboard | Bookmarks | Bundles |
| Tags | Bookmark detail | Settings |
- List, search, and open bookmarks (internal browser).
- Create and edit bookmarks and tags.
- List bookmarks by tag.
- Material You dynamic theming (Android 12+).
| Feature | Description |
|---|---|
| Dashboard | Customisable home screen. Choose which widgets to show: stats, recent bookmarks, unread bookmarks, and feeds from specific bundles. |
| Bottom navigation bar | Persistent nav bar with five destinations: Dashboard, Bookmarks, Bundles, Tags, and Settings — replaces the original single-page layout. |
| Bundles | Smart bookmark collections defined by include/exclude tag rules, similar to smart lists or saved filters. |
| Tag chips on bookmark cards | Each bookmark displays its tags as tappable chips. Tapping a chip navigates directly to that tag's bookmark list. |
| Bulk edit mode | Long-press any bookmark to enter multi-select mode for batch operations. |
| Rich bookmark detail sheet | Tap a bookmark to open a full-detail sheet showing URL, description, notes, tags, dates, and all available actions. |
| AMOLED / pure-black dark theme | An extra dark-mode variant in Settings for OLED screens. |
- Clone this repository.
- Run
flutter pub getto install all dependencies. - Run the app on a virtual or physical device.
State management
Linkdy uses Riverpod for state management. Files ending in .g.dart are auto-generated by Riverpod's code generator and should not be edited manually. Start the generator with:
dart run build_runner watch
Translations
Linkdy uses slang for translations. To add a new language, create lib/i18n/strings_[lang_code].i18n.json following the existing file structure, add the new strings to all .i18n.json files, then regenerate with:
dart run slang
- Copy
android/key.properties.sampletoandroid/key.properties. - Fill in the keystore values.
- Place your
keystore.jksinsideandroid/app/. - Build with
flutter build apk --releaseorflutter build appbundle --release.
No iOS-specific configuration has been added in this fork. Follow the standard Flutter iOS build process.