Project 01 · Digital product
Calling someone abroad should feel as simple as opening a browser.
Talkala is a browser-based product for calling real mobile and landline numbers. It shows the rate before a call connects, works with prepaid credit, and brings calling, owned numbers, messaging, and team workspaces into one place.

The dialer shows the destination rate before the user starts a real phone call.
01 / Starting point
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 modern tools assume both people use the same app. Traditional calling often adds plans, unfamiliar pricing, or setup that feels heavier than the call itself.
I started Talkala so someone could open a browser, enter a number, see the price, and call. The interface needs to stay calm even when the systems behind it are messy.
The rule I followOpen the browser. Enter the number. See the rate. Call.
02 / How it works
From number to completed charge.
Browser
Enter a number
The user types a real international mobile or landline number in the browser.
Pricing
See the rate
Talkala resolves the destination and shows the final rate before connection.
Voice
Connect the call
The browser call is connected to the phone network through Twilio.
Wallet
Reconcile usage
Provider events finalize the call record and the prepaid wallet charge.

Talkala checks the country and line type, then shows the price before the call starts.
03 / Product decisions
Four choices that shape the product.
Browser first
The caller should not need a new device, carrier plan, or matching app on the other end. A familiar 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.
Prepaid by design
Credit gives people a clear boundary. The system reserves enough for the call, captures actual connected usage, and releases what was not used.
Keep the plumbing out of the way
Twilio callbacks, retries, pricing rules, billing state, and fraud controls should not spill into a normal call.
04 / Behind the scenes
What has to work behind the dialer.
I handle the interface, application code, Convex state, provider integrations, billing logic, and the operational tools used to troubleshoot calls.
Experience
Dialer and workspace
Calling, contacts, rates, owned numbers, messaging, history, and teams.
Application
Next.js and React
The public site, authenticated product, server routes, and operational interfaces.
State
Convex
Call lifecycle, product data, policy, and immutable wallet-ledger entries.
Providers
Twilio and Stripe
Phone-network connectivity, messaging, payments, and number subscriptions.

The wallet shows available credit, reserved usage, and top-ups in one place.

A Talkala number can receive messages, which stay in the same workspace as calls.
What has been difficult
Events do not arrive neatly
Telecom and payment callbacks can be delayed, repeated, or arrive out of order. The product has to reconcile those events without duplicating charges or leaving calls 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.
05 / What I’ve learned
What building the calling and billing flow has taught me.
A simple dialer needs strict call and billing states underneath it.
Billing correctness is part of product design, not an accounting task added later.
Admin tools and recovery paths take as much care as the customer call flow.
06 / Where it is now
Today
Deployed for controlled testing.
Talkala is deployed for controlled production testing. I am finishing provider, operations, and launch checks before deciding on a wider public launch.
Next
- Finish the remaining launch verification without weakening the product’s safety boundaries.
- Keep improving call reliability, pricing clarity, and recovery when provider events arrive late or out of order.
- Refine the connected experience across calling, owned numbers, messaging, and team workspaces.