Skip to content

Repository files navigation

Mathalama Talk

Next.js Go Docker PostgreSQL Redis NATS Kubernetes Ansible Terraform Prometheus Grafana License: MIT

Mathalama Talk is a modern, secure, and fast platform for instant anonymous communication.

The service lets users find conversation partners based on gender and common interests in a fraction of a second. After a successful match, users can chat in private rooms or start a real-time voice call. All activity is completely private and requires no registration, email, or phone numbers. A session is created automatically based on a temporary device identifier.


Code Layout

The repository is a monorepo with the following structure:

  • apps/web/ : Next.js frontend application.
  • services/ : Go microservices:
    • api-gateway : Unified entry point routing API and WebSockets.
    • user-service : User session and profile management.
    • chat-service : Room management and WebRTC signaling.
    • matchmaking-service : Fast matchmaking queue logic.
    • moderation-service : Report handling and screening.
    • notification-service : Dispatching internal events.
  • libs/ : Shared Go libraries and generated Protobuf files.
  • infrastructure/ : Deployment configurations for Docker, Kubernetes, Ansible, Terraform, and monitoring (Prometheus, Grafana, Loki).
  • docs/ : Engineering wiki and technical documentation.

Navigation


Quick Start

1. Prepare Environment

Clone the repository and create your local configuration file:

cp .env.example .env

2. Start Infrastructure

Run the database, message broker, and routing infrastructure (Postgres, Redis, NATS, coturn):

# Using make utility:
make up-infra

# Or directly with Docker Compose:
docker compose up -d postgres redis nats coturn

3. Run Database Migrations

Apply schemas to Postgres databases:

# Using make utility:
make migrate

# Or directly with Docker Compose:
docker compose run --rm migrate-user
docker compose run --rm migrate-chat
docker compose run --rm migrate-moderation

4. Start Application Services

Build and start all backend services and the frontend client:

# Using make utility:
make up-services

# Or directly with Docker Compose:
docker compose up -d api-gateway user-service matchmaking-service chat-service moderation-service notification-service web

The web application will be accessible at: http://localhost:3002 (mapped to port 3000 inside the container).


License

This project is licensed under the MIT License. Check LICENSE for details.

About

Mathalama Talk - a modern, secure, and fast monorepo anonymous chat and matchmaking platform with real-time text and WebRTC voice calls. Powered by Go microservices, Next.js, NATS, Redis, and WebRTC.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages