E2EE MESSENGER FOR GITHUB CONTRIBUTORS

Code, Chat, and
Keep it Private.

GitMit is more than a chat. It's a secure bridge for the GitHub ecosystem. Built with Flutter, secured with advanced E2EE, and powered by Firebase.

View Source
[STAR] Stars Open Source
[LOCK] E2EE X25519 + Ratchet
[TEAM] Mode DM + Group Chat
[FAST] Stack Flutter + Firebase

System Initialization

STABLE_READY_V2.4

Panic Enabled
Local Plaintext Cache Active (Hive)
$

GitMit Application Flow

00

Initialization

On boot, GitMit initializes Firebase, Hive local cache, and AppLinks for deep-link invite handling.

PlaintextCache.init();
AppNotifications.initialize();
01

Auth Gate

Our router listens to AuthStateChanges. When you log in, we bind E2EE keys to your unique UID automatically.

E2ee.setActiveUser(uid);
AppLanguage.bindUser(uid);
02

Secure Entry

Sign in via GitHub OAuth. If under duress, enter the Panic Code (9999) to immediately wipe all local E2EE keys.

if (password == '9999') {
  E2ee.wipeAllKeys();
}
03

The Messenger

End-to-End encrypted DMs and Group chats. Features syntax highlighting for code snippets and encrypted attachments.

_GitmitSyntaxHighlighter
Double Ratchet Protocol
04

Group Hub

Join groups via QR codes or Deep Links. Our scanner parses `gitmit://join` intents to connect you instantly.

mobile_scanner: ^3.0
parseGroupInvite(raw)
05

Ecosystem

Cross-platform integration. Search GitHub users via REST API and use Personal Access Tokens (PAT) to bypass limits.

GitHub REST API v3
Firebase Cloud Functions

Advanced Privacy Protocol.

We use X25519/Ed25519 and ChaCha20-Poly1305 to ensure your messages stay on your device and the recipient's device. Period.

  • Identity Tracking: Fingerprints detect if your peer's key has changed.
  • Local Search: Hive Plaintext cache allows lightning-fast search without server indexing.
  • Encrypted Attachments: On-device encryption before Firebase storage upload.

E2EE Configuration

{
  "algorithms": ["X25519", "Ed25519", "ChaCha20"],
  "ratchet": "Double Ratchet Protocol",
  "group_mode": "Advanced Sender Keys (v2)",
  "storage": "FlutterSecureStorage (Namespace: UID)",
  "local_cache": "Hive (Encrypted Box)"
}

Community Project

GitMit is open source. Fork it, branch it, and help us update the marketplace.

Public Contribution

Anyone can change the code and push to a new branch. We encourage pull requests that improve our E2EE logic or syntax highlighting.

Browse Branches →

Continuous Updates

We push live updates through the marketplace. The app evolves based on GitHub Issue discussions and community votes on new features.

Request Feature →

Repository Pulse

GitHub-Like Activity Stream

A dashboard-inspired stream with commits, pull requests, and issue states so the page feels like a live project workspace.

Recent Commits
loading...
Loading real commits from GitHub...
Pull Requests loading...
Loading real pull requests from GitHub...

Backlog

Loading...

In Progress

Loading...

Done

Loading...

Complete Product Breakdown

Everything We Can Verify From the Repository

This section summarizes GitMit features, visual system, configuration, achievements, fingerprints, and security behavior from currently available repository files and documentation. Source repository: https://github.com/ikryptoz/GitMit

1) Visual Style & Theme

  • Global dark mode with a developer-centric monospace look.
  • Main palette from app code: #232925 surface and #101411 background.
  • Dark input fields, white focus borders, high-contrast action buttons.
  • Button system: white filled primary buttons and soft outlined secondary buttons.

2) Localization

  • Supported languages include Czech and English.
  • Language is bound to account UID through AppLanguage.
  • Locale choice can persist per user account after authentication.

3) Login, Accounts & Emergency Reset

  • GitHub OAuth is handled through Firebase Auth, including web popup with redirect fallback.
  • Email/password registration writes profile metadata into RTDB at users/<uid>.
  • Panic password 9999 wipes local E2EE keys, clears usage/cache state, and signs out.

4) Achievements

  • Registration unlocks first_login.
  • Stored at users/<uid>/achievements/first_login with timestamp and label.
  • Additional achievements may exist in dashboard-specific screens not fully indexed in this pass.

5) E2EE, Fingerprints & Key Safety

  • Cryptography stack references X25519, Ed25519, and ChaCha20-Poly1305.
  • Session model follows a Signal-like double ratchet with forward secrecy behavior.
  • Fingerprints are derived from signing keys and can be remembered per peer for change detection.
  • Key material is user-scoped, isolating data for multi-account usage.

6) Groups, Invites, QR & Deep Links

  • Invite format uses gitmit://join?g=<groupId>&c=<code>.
  • Android QR payload supports intent links with Play Store fallback.
  • Join flow validates group state, invite switch, and invite code before membership write.
  • Deep links are processed at cold start and runtime through app_links.

7) GitHub API Integration

  • Supports Personal Access Token injection via --dart-define=GITHUB_TOKEN=....
  • Uses authenticated requests first and gracefully retries without auth on token errors.
  • Optimized for user search and rate-limit resilience.

8) Notifications, Presence & Backend Mentions

  • Firebase Functions expose notifyOnlinePresence as HTTP endpoint.
  • Mode A: FCM push for online presence updates.
  • Mode B: GitHub issue mention automation for invite notifications.

9) Data Usage Settings Layer

  • Tracks RX/TX totals by network type and category.
  • Policy model includes Wi-Fi, mobile, roaming, and data-saver toggles.
  • UI controls for all policy fields may be located in dashboard-level views.

10) Web Client Scope

  • Firebase web auth, chat list, user search, and chat bootstrap with shared key lookup.
  • Message load/send uses RTDB two-way path updates for conversation state.
  • UI includes profile enrichment from GitHub (bio, followers, repos, location, chart).
  • Settings panel currently appears as a structural placeholder in existing web UI scripts.

What Is Needed for a 100% Feature Inventory

A complete click-by-click feature map still depends on sections likely defined in lib/dashboard.dart and related mobile screens.

High-Priority Files

lib/dashboard.dart
lib/notifications_service.dart
lib/rtdb.dart

Expected Missing Details

Full mobile screen list, full settings tree, complete achievements table, and exact RTDB schema for messages, groups, and key bundles.