All projects

Talkala

Live

Talkala is live. People can see the price before a call connects, pay with prepaid credit, and keep calls, phone numbers, messages, and team accounts in one place. I still maintain the service and improve it as I learn from real use.

Talkala browser dialer showing a phone number, country picker, rate, balance, and call controls
The dialer shows the destination rate before the user starts a real phone call.

Calling abroad still comes with too much setup and uncertainty.

People still need to call real phone numbers abroad: family, banks, clinics, suppliers, schools, and support desks. Many newer tools only work when both people use the same app. Traditional calls often come with extra plans, unclear prices, or too much setup.

I started Talkala so someone could open a browser, enter a number, see the price, and call. The screen should stay simple even though several phone and payment systems are working behind it.

Open the browser. Enter the number. See the rate. Call.

How a call works.

  1. Enter a number

    The user types a real international mobile or landline number in the browser.

  2. See the rate

    Talkala checks the destination and shows the final rate before connecting.

  3. Connect the call

    The browser call is connected to the phone network through Twilio.

  4. Calculate the final cost

    Updates from the phone provider close the call record and charge the prepaid wallet for the connected time.

Talkala rates page showing country pricing before a call
Talkala checks the country and line type, then shows the price before the call starts.

The four decisions behind Talkala.

Use the browser

The caller should not need a new device, phone plan, or the same app as the person they are calling. A browser is enough.

Price before connection

The accepted rate is part of the call-start decision. Talkala checks the destination and keeps that rate tied to the call record.

Use prepaid credit

Prepaid credit sets a clear limit. Talkala reserves enough for the call, charges only for the connected time, and releases the rest.

Keep the technical mess out of the way

Updates from Twilio, retries, pricing rules, billing checks, and fraud controls should not get in the way of a normal call.

What I had to build behind the dialer.

I built the interface, the application code, the Convex data, the connections to Twilio and Stripe, the billing rules, and the tools I use when a call goes wrong.

Dialer and account

Calls, contacts, rates, Talkala numbers, messages, history, and teams.

Next.js and React

The public website, signed-in product, server code, and the admin screens I use to run it.

Convex

Call status, product data, rules, and a permanent record of every wallet credit and charge.

Twilio and Stripe

Phone-network connectivity, messaging, payments, and number subscriptions.

Talkala prepaid wallet showing balance, auto top-up, credit options, and recent wallet activity
The wallet shows available credit, reserved usage, and top-ups in one place.
Talkala messages inbox showing an SMS conversation received by a Talkala number
A Talkala number can receive messages, which stay in the same workspace as calls.

The difficult parts

Updates can arrive late or out of order

Phone and payment companies can send the same update more than once, or send it after a delay. Talkala has to sort that out without charging twice or leaving a call stuck.

Pricing is part of trust

A destination can vary by line type and calling origin. The rate shown before connection must agree with the rate the wallet later uses.

Block abuse without blocking everyone

Voice products attract abuse. Talkala has to contain risky behavior without getting in the way of normal callers.

What building the calls and billing has taught me.

  • I learned that a simple dialer needs very strict rules for every call and charge.
  • I treat correct billing as part of the product, not as an accounting task to bolt on later.
  • The admin screens and the tools for fixing failed calls have taken as much work as the dialer itself.

It is live, and I keep working on it.

Talkala is live. I monitor calls, billing, providers, and the admin tools, and I keep improving reliability and clarity for the people using it.

  • I’m improving call reliability and making prices and billing easier to understand.
  • I’m making failed calls and late provider updates easier to detect and fix.
  • I’m learning from how people use Talkala and keeping calls, phone numbers, messages, and team accounts connected in the same product.