Skip to content

Design

Here’s my design goals:

  • Performance: Future work.
  • Reliability: Hopefully always in here?
  • Cross-Platform: Desktop + browser only for now, mobile future.
  • Modern chat: A responsive interface with support for presence, reactions, pinned messages, and basic Markdown rendering.
  • Easy Onboarding: Cryptographic identities (Ed25519) allow users to start chatting immediately without traditional registration hurdles.
  • Media Handling: S3-style multipart integrity and multi-origin security.
  • Voice & Video: Smooth community calls and screen sharing.
  • Account Portability: Support for multi-server connectivity and account migration to prevent vendor lock-in.
  • Permissions: Flexible role permissions for guild management.
  • Quotas: Resource limiting for users and guilds. (Future work)
  • Moderation tools: Built-in tools for reporting and banning. (Future work)
  • Push Notifications: UnifiedPush and custom ntfy protocol.
  • Layered configuration: config
  • Database abstraction: SQLite for now, later probably Cassandra or something scalable.
  • Use well-established technology: HTTP, gRPC, etc. No random bespoke stuff (yet).