Case study · since January 2026

Welyat

An anonymous audio-call platform: anyone can talk to a real, verified listener, straight from the browser, with no app.

Co-founder · Full-stack developer

  • Connected in under 20 seconds
  • Up to 15 min free, then $0.33/min
  • Verified listeners, paid every week
Welyat home page

My role

Co-founder, from scoping to production.

  1. 01

    Scoping

    I define the product and its priorities with the founder, starting from what callers and listeners actually need.

  2. 02

    Roadmap

    MVP first, then short iterations: every piece of feedback becomes a task, shipped and checked in production.

  3. 03

    Development

    The only developer: front end, back end, payments, real time, back office and analytics.

  4. 04

    Operations

    Self-hosted server, continuous deployment, backups, monitoring and alerts, with costs kept under control.

How it works

Three screens for the caller, a real-time stack behind them.

  1. Welyat mobile home
    1

    No app

    The caller starts the call from their browser, in one click.

  2. “Before you start” screen
    2

    Clear rules

    Up to 15 min free, then $0.33/min if they choose to keep going.

  3. “Start your call” screen
    3

    Just a phone number

    No email, no password: a verified listener answers in under 20 s.

Under the hood

  • Real time

    • Socket.io
    • WebRTC
    • coturn

    Real-time matching and signalling, peer-to-peer audio, TURN relay when the network blocks.

  • Payments

    • Stripe PaymentIntents
    • Connect
    • Webhooks

    Pre-authorisation before the call, per-minute billing, weekly payouts to listeners.

  • Back end & data

    • Node.js · Express
    • PostgreSQL

    REST API and a state machine driving every call, from request to hang-up.

  • Infra & monitoring

    • Docker
    • Traefik
    • GitHub Actions
    • PostHog

    Self-hosted server, automatic HTTPS, deploy on every push, monitoring and alerts.

Life of a call

  1. Requestpre-authorisation
  2. Connectmatching
  3. Free≤ 15 min
  4. Paidper minute
  5. Endrating

My six technical workstreams

From front end to infrastructure, ahead of launch.

Reliable payments

  • Listener payouts that can never be duplicated, with idempotency keys
  • Balances updated atomically
  • Stripe webhooks logged, replayable and monitored
  • Reserve
  • Transfer
  • Confirm

Real-time calls

  • Full flow: unbilled pause, switch listener, rating
  • Resilient to network drops and to the app going to the background
  • Push notifications for incoming calls to listeners
  • Pause
  • Switch listener
  • Safety button

Monitoring & alerts

  • Three layers: uptime, exceptions and business rules checked every 15 min
  • Migration from Sentry to PostHog
  • Alerts with de-duplication
  • Health
  • Exceptions
  • Business
  • Telegram · email

Infrastructure

  • Move to a self-hosted server: Docker Compose, Traefik, TURN relay
  • Continuous deployment on every push
  • Daily database backup
  • git push
  • GitHub Actions
  • Production

WebRTC diagnostics

  • Internal admin tool to understand why a call fails
  • Step-by-step test, up to a real call between two devices
  • Pinpoints the exact step that fails
  • Mic
  • STUN
  • TURN
  • Call

Product & interface

  • Visual redesign of the landing page, user spaces and back office
  • Personal space, score-based matching, shared bonus for listeners, moderation
  • Cookie banner and analytics tagging plan
  • Caller
  • Listener
  • Admin
Back to projects Contact me