Skip to content

Aries-Spring/bitkeep

Repository files navigation

BitKeep

Offline-first read-it-later app for Android and iOS. Save articles from the share sheet, read them without ads or accounts, and keep everything on your device.

Library Reader

Features

  • Save from anywhere — Share a link from Safari, Chrome, or any app via the system share sheet (iOS Share Extension + Android intent).
  • Offline reading — Articles and images are stored locally; no account or cloud sync required.
  • Clean reader — Stripped article text, reading progress, bookmarks, and featured items.
  • Organize — Tags, search with recent queries, and filtered views.
  • Export — Export your library as Markdown, HTML, or JSON from Settings.
  • Private by design — No telemetry, no tracking, no servers. Data stays on the device unless you export or share it.

Screenshots

Library Tags Search
Library Tags Search
Reader Add link Manifesto
Reader Add Manifesto

Requirements

  • Flutter 3.x (stable channel)
  • Xcode 15+ (iOS / Share Extension)
  • Android Studio or Android SDK (API level per flutter.minSdkVersion)

Getting started

git clone https://github.com/Aries-Spring/bitkeep.git
cd bitkeep
flutter pub get
flutter run

iOS (Share Extension)

  1. Open ios/Runner.xcworkspace in Xcode.
  2. Set Signing & Capabilities for both Runner and ShareExtension to your Apple Developer team (the repo may ship with a team ID for the original author — replace it with yours).
  3. Ensure the App Group group.com.ariesspring.bitkeep is enabled on both targets.
  4. Run on a device or simulator: flutter run.

Android (release signing)

Release builds expect a local android/key.properties file (never committed). Copy the example and point it at your upload keystore:

cp android/key.properties.example android/key.properties
# Edit key.properties with your keystore path and passwords
flutter build apk --release

Debug builds work without key.properties.

Code generation (Drift)

After changing lib/db/app_database.dart:

dart run build_runner build --delete-conflicting-outputs

Project structure

lib/
  main.dart              # App entry, share-intent handling
  screens/               # Library, reader, search, tags, settings, manifesto
  providers/             # Library + settings state (Provider)
  db/                    # Drift/SQLite schema
  services/              # Article scraper, image cache
  widgets/               # Shared UI components
ios/ShareExtension/      # iOS share sheet target
android/               # Android app + share intent

Bundle identifier

All mobile targets use com.ariesspring.bitkeep (iOS Share Extension: com.ariesspring.bitkeep.ShareExtension).

License

MIT — see LICENSE.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors