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

By the numbers

The proof, straight from the terminal

Figures taken from the repository on 5 November 2026.

  • git rev-list --count main150+ commits
  • npm test39 test suites
  • ls migrations | wc -l30 SQL migrations
  • # 3 spaces: caller, listener, admin

My role

Co-founder, from scoping to production.

  1. Jan. 2026

    Scoping

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

  2. Step 2

    Roadmap

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

  3. Step 3

    Development

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

  4. Today

    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
    01

    No app

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

  2. “Before you start” screen
    02

    Clear rules

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

  3. “Start your call” screen
    03

    Just a phone number

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

Technical architecture

  • Real time

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

    Socket.io · WebRTC · coturn
  • Payments

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

    Stripe PaymentIntents · Connect · Webhooks
  • Back end & data

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

    Node.js · Express · PostgreSQL
  • Infra & monitoring

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

    Docker · Traefik · GitHub Actions · PostHog

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.

01

Reliable payments

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

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
03

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
04

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
05

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
06

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

A project to run end to end?