I'm currently doing both: part-time employment at Commsult Indonesia while completing my degree at Swiss German University, with freelance projects on the side. What I've found is that the conventional advice about freelancing in Indonesia (it pays more, you have freedom) is only half true.
According to the 2025 Glints Southeast Asia Tech Salary Report: entry-level developers (0-2 years) in Jakarta earn IDR 5-9 million/month. Mid-level (3-5 years) earn IDR 10-20 million/month. Senior (5+ years) earn IDR 20-40 million/month. Working for a German ERP consulting firm like Commsult puts salaries at the upper end of local brackets.
Full-time employment in Indonesia includes: BPJS Kesehatan (health insurance, employer pays 4%), BPJS Ketenagakerjaan (employment insurance and pension, employer ~6%), THR (one month's salary bonus before Lebaran, legally required), annual leave (minimum 12 days). Add these up and the total compensation for a IDR 10 million/month job is closer to IDR 12.5-13 million/month equivalent.
Indonesian freelance developer rates in 2025: Domestic market: IDR 500K-2 million/day for junior-mid level work. International market (Upwork, Toptal, direct clients): $15-30/hour for junior, $40-80/hour for mid-level. A mid-level Indonesian developer billing $50/hour to a US client earns IDR 130 million/month at 2025 exchange rates.
Developer Compensation Comparison — Jakarta 2025
Full-Time Employment (Mid-level, IDR 12M/mo stated)
─────────────────────────────────────────────────────
Base salary IDR 12,000,000 / month
BPJS Kesehatan + IDR 480,000 / month (employer)
BPJS Ketenagakerjaan+ IDR 720,000 / month (employer)
THR (annual avg) + IDR 1,000,000 / month equivalent
Device allowance + IDR 200,000 / month
─────────────────────────────────────────────────────
TOTAL IDR 14,400,000 / month
PPh 21 (employee) - IDR 720,000 / month (~5%)
NET TAKE-HOME IDR 13,680,000 / month
Freelance (Domestic, 18 billable days @ IDR 1.5M/day)
─────────────────────────────────────────────────────
Gross revenue IDR 27,000,000 / month
PPh 21/23 - IDR 4,050,000 / month (~15%)
Marketing/portfolio - IDR 500,000 / month
Non-billable time - IDR 4,500,000 (30% overhead)
Buffer savings req - IDR 2,000,000 / month
─────────────────────────────────────────────────────
NET EFFECTIVE IDR 15,950,000 / month
International Freelance ($50/hr, 120 hrs/month)
─────────────────────────────────────────────────────
Gross revenue USD 6,000 = IDR 96,000,000
PPh 21 (25%) - IDR 24,000,000
Platform fees (10%) - IDR 9,600,000
Non-billable (25%) - IDR 24,000,000
─────────────────────────────────────────────────────
NET EFFECTIVE IDR 38,400,000 / monthIf you're starting freelance in Indonesia, don't compete on domestic price — it's a race to the bottom. Instead, build your portfolio specifically to attract international clients. One well-documented project on GitHub with a professional English README is worth more for international visibility than 10 domestic client projects with no online presence.
As a full-time employee, your PPh 21 (income tax) is withheld by your employer. For a IDR 10 million/month salary, the effective tax rate is around 5-8%. As a freelancer, you're subject to PPh 21 or PPh 23 (2% withholding on project payments by companies), plus quarterly tax returns. The practical tax burden for freelancers in the IDR 150-300 million/year bracket is 15-25% effective rate.
Freelance income is lumpy — feast and famine cycles are real. Successful freelancers in Jakarta typically maintain 3-6 months of living expenses as a buffer. Other hidden costs: marketing/portfolio maintenance, client communication overhead (20-30% of total work time), project gaps between clients, and the mental load of business development.
# PPh 21 Progressive Tax Rates 2025 (Indonesia)
# Source: Direktorat Jenderal Pajak
income_brackets = [
(60_000_000, 0.05), # Up to IDR 60M/yr → 5%
(250_000_000, 0.15), # IDR 60M-250M/yr → 15%
(500_000_000, 0.25), # IDR 250M-500M/yr → 25%
(5_000_000_000, 0.30), # IDR 500M-5B/yr → 30%
(float('inf'), 0.35), # Over IDR 5B/yr → 35%
]
# PTKP (Tax-Free Allowance) 2025
# Single, no dependents: IDR 54,000,000/year
def calculate_pph21(annual_gross: int) -> int:
ptkp = 54_000_000
taxable = max(0, annual_gross - ptkp)
tax = 0
prev_limit = 0
for limit, rate in income_brackets:
if taxable <= prev_limit:
break
bracket_income = min(taxable, limit) - prev_limit
tax += bracket_income * rate
prev_limit = limit
return int(tax)
# Example: IDR 144M/year gross (IDR 12M/month)
# Taxable = 144M - 54M = 90M
# Tax: 60M × 5% + 30M × 15% = 3M + 4.5M = IDR 7.5M/year
# Effective rate: 7.5M / 144M = 5.2%My current setup: part-time employment providing stable income and benefits, university covering the credential, and selective freelance projects building portfolio and supplementing income. The optimal hybrid based on my experience: one stable income source plus one active freelance client at a time, maximum.
The most common financial disaster for Indonesian freelancers is scope creep with domestic clients. Indonesian business culture sometimes treats the initial quote as a starting point for negotiation. Always use a written project scope document, define a clear change request process with pricing, and invoice for approved work before starting the next phase.
The 10-year trajectory comparison: a developer who stays full-time at progressive companies might reach IDR 35-50 million/month by year 10. A developer who builds a strong international freelance reputation might reach $80-100/hour by year 10 — working 120 hours/month for USD 9,600-12,000/month (IDR 155-195 million). The freelance upside is much higher, but the variance is also much higher.
Years 1-3: prioritize full-time employment for learning structure, mentorship, and professional network. Take small freelance projects on the side (1-2 per year) to build your portfolio. Years 3-5: if you want to freelance, specialize in a high-value niche and build your international portfolio deliberately. Year 5+: the choice between full-time senior role and freelance is a lifestyle choice as much as a financial one.