
Talkala
LiveTalkala 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.

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.
Enter a number
The user types a real international mobile or landline number in the browser.
See the rate
Talkala checks the destination and shows the final rate before connecting.
Connect the call
The browser call is connected to the phone network through Twilio.
Calculate the final cost
Updates from the phone provider close the call record and charge the prepaid wallet for the connected time.

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.


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.