FastAPI SDK

Ship messaging and calling into your product without building the backend from scratch.

Authentication, contacts, chat, calls, signaling, search, profile management, and customizable email flows in one source-integrated SDK.

Read the Docs
pip install "git+https://github.com/ukemeikot/messaging-and-calling-backend.git@main#subdirectory=messaging_and_calling_backend"
uvicorn messaging_sdk.main:app --reload
SDK surface Auth, chat, calls, search, email customization
Project shape Installable package + source CLI + docs website
Docs UX Copyable snippets, env blocks, and architecture views

Built in

What the SDK already gives you

Authentication

JWT auth, email verification, password reset, Google OAuth web and mobile flows.

Messaging

Direct conversations, groups, message editing, soft deletes, read state, and WebSocket events.

Calling

Voice and video call lifecycle APIs with signaling WebSockets and participant validation.

Customization

Editable email templates, theme values, and Python hooks for project-specific behavior.

Profiles and contacts

Profile management, uploads, contact requests, blocking, and relationship-aware rules.

Search

PostgreSQL-backed user, message, conversation, and global search endpoints.

Install

Use it as a package, then build your product on top

The project now includes package metadata and packaged email templates, so teams can install it into an existing FastAPI codebase instead of only vendoring the repository.

  • Install directly from GitHub without publishing to PyPI
  • Pin consumers to `main` or a tagged GitHub release
  • Use the `messaging-sdk` CLI entry point after installation
  • Mount `MessagingApp` directly in your current product
Install from GitHub
pip install "git+https://github.com/ukemeikot/messaging-and-calling-backend.git@main#subdirectory=messaging_and_calling_backend"
messaging-sdk config
Mount in FastAPI
from messaging_sdk import MessagingApp
from messaging_sdk.core.config import Settings

settings = Settings()
app = MessagingApp(settings=settings, title="My Product Messaging API")

Project map

Implementation shape

MessagingApp
|
+-- api/v1/      routers and websocket endpoints
+-- services/    business rules
+-- models/      SQLAlchemy entities
+-- core/        config, security, dependencies
+-- emailing.py  template composition and theme runtime
+-- providers/   delivery transports
+-- cli/         project scaffolding and config helpers