William Mulianto

Tools I Recommend for Indonesian Freelancers

· 5 min read

Running a freelance development business from Indonesia comes with its own set of challenges. Over time, I’ve settled on a stack of tools that handles the non-coding parts of the job. Here’s what I actually use and recommend.

Banking and Payments

This is the first thing you need to sort out, especially if you work with international clients.

BCA is my primary local bank. It’s widely accepted, the mobile app works well, and transfers between BCA accounts are instant. For domestic clients, BCA is the path of least resistance — almost everyone has an account.

Wise (formerly TransferWise) is essential for international payments. The exchange rates are significantly better than what traditional banks offer, and the fees are transparent. I have clients pay to my Wise account in USD or EUR, then transfer to my BCA account in IDR when the rate is favorable. This alone has saved me a meaningful amount compared to receiving wire transfers directly to a local bank.

PayPal is a fallback. Some clients insist on it. The fees and exchange rates are worse than Wise, but sometimes you don’t get to choose. I try to steer clients toward Wise whenever possible.

One thing to keep in mind: always clarify with your client who covers transfer fees. Get this in writing before the first invoice.

Invoicing

Xendit or a simple custom invoice template works for local clients. For international clients, I use Wise’s invoicing feature — it generates professional invoices and clients can pay directly through the link. It tracks payment status too, so I don’t have to chase people for confirmation.

If you need something more robust, Invoice Ninja is free and self-hostable. I used it for a while before simplifying my process. For most solo freelancers, a clean PDF template and Wise invoicing cover 90% of use cases.

Keep a spreadsheet or simple database of all invoices, payment dates, and amounts. You’ll need this for tax reporting.

Communication

Slack is where most of my client communication happens. Many companies already use it, so joining their workspace is standard. For clients who don’t have Slack, I’ll set up a shared workspace — it keeps project communication separate from personal messages.

Telegram is common for Indonesian clients. It’s fast and everyone has it. The downside is that work messages mix with personal chats. I deal with this by muting non-work groups during work hours.

Discord works for some tech-savvy clients and communities. I use it for a few ongoing projects where the team prefers it.

Google Meet or Zoom for video calls. I lean toward Google Meet because it doesn’t require the client to install anything. Zoom if the client prefers it. Keep calls short and follow up with written summaries.

Project Management

Linear is my current favorite for tracking tasks. It’s fast, well-designed, and doesn’t get in the way. I use it for both personal projects and client work where I manage the backlog.

Notion handles everything else — project briefs, meeting notes, documentation, knowledge bases. I share Notion pages with clients for project updates and documentation handoff. It’s flexible enough to adapt to different project needs without being overwhelming.

For simpler projects, a markdown file with a task list in the repository works fine. Don’t over-engineer your project management setup.

Development Tools

VS Code is my primary editor, though I switch to Neovim for quick edits and when working over SSH. The key is having an editor you know deeply rather than chasing the latest tool.

Docker is non-negotiable. Every project gets a Docker setup from day one. It ensures consistency between my machine and production, and makes onboarding collaborators painless.

GitHub for version control, CI/CD, and collaboration. GitLab is fine too, but most clients expect GitHub. I use GitHub Actions for automated testing and deployment.

TablePlus for database management. Clean interface, works with PostgreSQL, MySQL, and others. Worth the license fee.

Hosting and Infrastructure

For VPS hosting, I use Hetzner and DigitalOcean depending on the project. Hetzner offers excellent value — their servers are powerful and affordable. For projects that need servers closer to Southeast Asia, DigitalOcean’s Singapore region works well.

Cloudflare for DNS and CDN. The free tier is generous and the performance improvement is noticeable. I put Cloudflare in front of everything.

Niagahoster or Dewaweb for domain registration when clients want a .co.id domain. For .com and other TLDs, I register through Cloudflare or Namecheap.

Caddy as a web server and reverse proxy. Automatic HTTPS, simple configuration, and reliable. I switched from Nginx a while back and haven’t looked back.

NPWP (tax ID) is mandatory if you’re freelancing in Indonesia. Get one if you don’t have it already. The process is straightforward — you can even do it online now. I cover the tax basics in tax tips for Indonesian freelancers.

I strongly recommend hiring a tax consultant rather than doing your own tax reporting. Indonesian tax regulations for freelancers can be confusing, especially around PPh 21 vs PPh 23 vs PPh 4(2). A good consultant costs a few hundred thousand rupiah per month and saves you from headaches and potential penalties. Ask other freelancers for recommendations — word of mouth is the best way to find a reliable one.

Keep all your invoices, receipts, and bank statements organized. Your tax consultant will thank you, and you’ll thank yourself during tax season.

Final Thoughts

The tools matter less than the systems you build around them. Pick tools that are simple, reliable, and don’t require constant maintenance. The goal is to spend more time doing the actual work — writing code and delivering value to clients — and less time managing the business side.

Start simple. Add tools only when you feel actual pain from not having them. Most freelancers over-tool themselves early on and end up spending more time managing tools than doing work.

Related