Skip to content

lordmitrii/pem-message

Repository files navigation

PEM Message

PEM Message is a mobile-first private messenger scaffold built for end-to-end encrypted messaging. This first pass creates a monorepo that keeps security boundaries explicit:

  • React Native + TypeScript for mobile UI and product logic
  • Native bridge contracts for secure storage and sensitive cryptographic operations
  • Go backend for relay, queueing, key directory, and encrypted blob storage
  • Ciphertext-oriented shared DTOs, protocol interfaces, and docs

Repository Layout

  • apps/mobile: React Native TypeScript app shell
  • services/backend-go: Go backend service
  • packages/shared-types: Shared versioned DTOs and domain types
  • packages/protocol: Protocol engine interfaces and helpers
  • packages/ui: Reusable UI components
  • native/ios: iOS native integration placeholders
  • native/android: Android native integration placeholders
  • infra: Local development infrastructure
  • docs: Architecture, threat model, API, and security notes

Local Development

Prerequisites

  • Node.js 20+
  • pnpm 10+
  • Go 1.25+
  • Docker and Docker Compose
  • React Native native toolchains for iOS and Android

Start Infra

make infra-up

Start Backend

pnpm dev:backend

In local development, attachment upload/download tickets may be rewritten from internal blob hosts like minio or localhost to the API request host so physical devices can reach them. For production, set BACKEND_S3_PUBLIC_ENDPOINT to the real client-facing storage origin instead of relying on this fallback.

Install JavaScript Dependencies

pnpm install

Start Mobile Metro

pnpm dev:mobile

About

Secure cross-platform messenger

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors