08/10
Case Study
New May 1, 2025 GovernmentKemenperinPHP

P3DN Fasilitasi — Kemenperin, Ministry of Industry

The facilitation arm of Kemenperin’s P3DN program — from paper-shaped request forms to a self-service portal running on the shared Svelte + Go platform.

Year
2025
Focus
Government
Reading
4 min· 8 sections
Published
Web
Featured Page
P3DN Fasilitasi — Kemenperin, Ministry of Industry
Full Capture
P3DN Fasilitasi — Kemenperin, Ministry of Industry — detailed view

Project Overview

P3DN Fasilitasi is the facilitation arm of Kemenperin’s P3DN program (Peningkatan Penggunaan Produk Dalam Negeri) — helping Indonesian companies, especially IKM actors, through TKDN certification and domestic-product verification so they can supply government procurement. Like its sibling Business Matching platform, it has been rebuilt four times — tracking the same journey from a PHP 5 monolith to the shared Svelte + Go platform in production today.

"Facilitation is a pipeline problem: a request enters, documents accumulate, reviews happen in stages. Each rewrite made that pipeline more explicit and less manual."

Engineering Notes Kemenperin P3DN Fasilitasi

The Evolution — Four Stacks, One Mission

Every rewrite preserved the program’s core workflow while replacing the foundation underneath it.

01

01. PHP 5 — The Facilitation Desk · 2018 — 2020

The first P3DN Fasilitasi system: facilitation requests, company documents, and certification tracking handled through server-rendered PHP 5 pages on shared infrastructure.

02

02. PHP 8 — Structured Facilitation · 2020 — 2022

The PHP 8 rebuild turned facilitation into a structured pipeline: staged review statuses, document checklists per request type, and proper reporting exports for ministry staff.

03

03. React + Hono — Self-Service Facilitation · 2022 — 2024

A React self-service portal on top of a Hono API: companies tracked their own facilitation status, uploaded documents asynchronously, and staff worked from a typed review queue.

04

04. Svelte + Go — The Consolidated Platform · 2024 — Present

P3DN Fasilitasi consolidated onto the same Svelte + Go stack as bm-online.id — one deployment story, shared schemas, and document workflows served by a single Go binary.

04 Stack Eras

Complete rewrites across the platform’s lifetime.

05 Pipeline Stages

Explicit review stages from submission to reporting.

04 Languages

PHP, TypeScript, Svelte, and Go across the eras.

Svelte + Go Shared Stack

Consolidated on the same platform as bm-online.id.

Era 01 — PHP 5 — The Facilitation Desk

P3DN Fasilitasi — the facilitation arm of Kemenperin’s P3DN program (Peningkatan Penggunaan Produk Dalam Negeri) — started on the same PHP 5 stack as the early Business Matching platform. Companies submitted facilitation requests for TKDN certification and domestic-product verification through server-rendered forms, with documents tracked by hand inside a shared MySQL database. The workflow was linear — request, review, facilitate, report — and a monolith could carry it. But document-heavy processes strained the simple upload pipeline, and every ministry reporting cycle meant manual exports assembled by staff. Recap — Digitized the front door of the facilitation program — the paperwork behind it stayed paper-shaped.
P3DN Fasilitasi PHP 5 — facilitation request form

Facilitation request form

P3DN Fasilitasi PHP 5 — request tracking

Manual request tracking

P3DN Fasilitasi PHP 5 — admin list

Admin request list

Era 02 — PHP 8 — Structured Facilitation

The PHP 8 rebuild gave the facilitation workflow real structure. Requests moved through explicit stages — submitted, document review, field verification, facilitated, reported — instead of freeform status text. Document checklists became typed data rather than informal attachments, and staff could finally export the reports the ministry asked for every cycle. Underneath, the same modernization as its sibling platform: Composer dependencies, PDO prepared statements, and tests around the review pipeline. Recap — Facilitation became a pipeline, not a pile — stages and checklists staff could trust.
P3DN Fasilitasi PHP 8 — staged pipeline

Staged review pipeline

P3DN Fasilitasi PHP 8 — document checklist

Document checklist

P3DN Fasilitasi PHP 8 — reporting exports

Ministry reporting exports

Era 03 — React + Hono — Self-Service Facilitation

Era three moved facilitation to the decoupled stack: a React portal where companies could watch their own requests move through the pipeline, upload documents asynchronously instead of in one giant form post, and get notified on status changes — backed by the same Hono TypeScript API family as Business Matching. Staff got a typed review queue with filters by stage, sector, and region. The API-first design meant the facilitation data could feed other ministry dashboards without scraping screens. Recap — Companies stopped calling for status updates — the portal told them first.
P3DN Fasilitasi React — self-service portal

Self-service portal

P3DN Fasilitasi React — live status tracking

Live status tracking

P3DN Fasilitasi React — staff review queue

Staff review queue

Era 04 — Svelte + Go — The Consolidated Platform

The current P3DN Fasilitasi system runs on the consolidated Svelte + Go platform shared with bm-online.id. The SvelteKit frontend handles the public request flow and the staff console in one codebase, while the Go backend serves document uploads, the review pipeline, and ministry reporting from a single binary. Consolidating the two Kemenperin systems onto one stack cut the maintenance surface in half — one deploy pipeline, one set of shared validation schemas, one operations story for both programs. Recap — Two programs, one stack — the platform both systems were converging toward.
P3DN Fasilitasi — current platform home

Current platform home

P3DN Fasilitasi — facilitation request flow

Facilitation request flow

P3DN Fasilitasi — staff console

Staff console

Lessons Carried Forward

What the facilitation platform taught across four eras.

Make the Pipeline Explicit

Freeform statuses hid bottlenecks. Named stages — submitted, review, verification, facilitated, reported — made every request’s position legible to staff and applicants alike.

Documents Are First-Class Data

Treating uploads as typed, checklist-driven data instead of loose attachments let the system validate completeness before a human ever opened the request.

Self-Service Scales Staff

Status tracking and async document upload removed the "where is my request" phone calls — the single largest time sink for the facilitation desk.

Consolidate When Programs Converge

Two Kemenperin systems with near-identical infrastructure needs now share one Svelte + Go stack — one pipeline to maintain, one platform to secure.

Where It Stands Today

P3DN Fasilitasi runs on the consolidated Svelte + Go platform alongside Business Matching — the same facilitation program that started on PHP 5, now part of a shared stack built to carry Kemenperin’s programs into the next era.