Case study 01 / 10ProductLive

Sipromon

Construction supervision platform. Supervisors on rice-field development contracts need daily progress they can trust, weekly reports that are complete for the period, and supervision letters whose figures trace back to evidence. Sipromon is the platform that makes all three routine.

At a glance

7rice-field development packages supervised through Sipromon, Banyuasin, South Sumatra
1,600+progress entries and 1,300+ photos by mid-September 2026
940+commits since April 2026
560+merged pull requests, through CI with a post-deploy smoke test
Period
April 2026 – present
Role
Product owner and lead developer (with AI coding agents); also a daily user on the supervision team
Status
Live
Links
sipromon.id
Sipromon and Projevo high-level architecture Web and mobile-web clients reach a Next.js front end and a Node.js Express API through an HTTPS reverse proxy; the API uses PostgreSQL, Redis, S3-compatible object storage, scheduled jobs, error monitoring and transactional email. Projevo reuses the same core and adds a proof engine. Sipromon / Projevo: high-level architecture Construction progress monitoring SaaS; one isolated instance per client programme (no host names or secrets shown) CLIENTS Project team (web) admin · project manager · site engineer · viewer roles Field (mobile web / PWA) offline cache and sync queue photo upload from site Executives and owners portfolio dashboard, S-curves, PDF and Excel reports HTTPS reverse proxy TLS termination · security headers · request rate limits APPLICATION Web front end Next.js + React React Query with persisted cache typed forms (Zod), charts REST API (Node.js / Express, layered) auth & role-based access projects, WBS, bill of quantities progress & S-curve engines field modules & approvals reporting: PDF / Excel notifications & alerts PostgreSQL projects, BoQ, progress, audit trail Redis rate limiting, online presence Object storage S3-compatible: photos, documents Scheduled jobs automated database backups Error monitoring front end and API exceptions Transactional email account and alert messages Projevo (in development) fork of the same core for small contractors · adds a proof engine: hash-chained evidence, payment-milestone gate, red flags, client view
Swipe sideways to see the whole diagram. Architecture: web and phone clients, layered API, PostgreSQL, Redis and object storage. Projevo reuses the same core. View full size

01Problem

On rice-field development contracts, supervisors need daily progress they can trust, weekly reports that are complete for the period, and supervision letters whose progress figures can be traced back to evidence. Reports that arrive late, or cannot be checked against what was actually recorded on site, make all three hard.

02What I built

One web app for desk and field. Site engineers record daily progress against the bill of quantities with photo evidence; the platform rolls it into S-curves, daily and weekly reports and approvals; admins handle contract change orders and push announcements to specific roles and packages.

Public pages Public pages of the live product: the install guide for the installable web app, and sign-in on a phone. Interface in Indonesian.

03How it works

  1. Layered API. Routes → controllers → 46 domain engines (progress, reporting, approval, S-curve, cost estimate …) → repositories → PostgreSQL. Import direction is checked mechanically.
  2. Append-only records. Progress, photos, daily reports and approvals are never edited in place, so the history behind a number stays intact.
  3. Access control on the server. Three gates — authenticated role, project membership, per-action check — for six roles; the interface only mirrors it.
  4. Honest reports. Weekly reports are DRAFT or FINAL depending on period completeness, and official PDFs carry a DRAFT stamp until published.
  5. Installable web app (PWA). A service worker keeps field pages available and an offline queue holds progress, photos and daily reports until the signal returns. Retried submissions carry an idempotency key, so nothing is counted twice.
Construction supervision flow Daily field reports become weekly progress and an S-curve; the deviation between actual and planned progress decides between routine monitoring, warning letters with acceleration, or show-cause meetings for critical contracts. Construction supervision: daily report to S-curve to action Progress is computed, not estimated: every step uses the same item weights as the contract bill of quantities 1 Daily field report installed quantities photos, workforce, equipment weather and obstacles 2 Verify and lock supervisor approves the day locked records are audit-trailed 3 Weekly progress actual % = sum of item weight x installed / contract quantity (capped at 100 %) 4 S-curve planned vs actual, cumulative deviation = actual - planned required daily catch-up rate Deviation vs. plan? checked every week ON TRACK BEHIND CRITICAL Routine monitoring deviation within tolerance weekly and monthly reports photo evidence per item Payments follow progress milestone claims checked against verified volumes Technical warning letter trigger: behind, gap widening 1st, then 2nd if it keeps growing figures from the same S-curve Acceleration recommendation catch-up schedule with dated test points Show-cause meeting trigger: > 10 pp behind (plan ≤ 70 %) or > 5 pp behind (plan > 70 %) SCM I → II → III, each with a test point Owner decision time extension / addendum (CCO) or contract sanctions
Swipe sideways to see the whole diagram. Supervision logic: daily report → verified progress → S-curve → deviation decides the action. The same item weights as the contract bill of quantities are used at every step. View full size

04Results and scale

  • In daily use since June 2026 for supervising 7 rice-field development packages in Banyuasin, South Sumatra.
  • In the 30 days to mid-September about 70% of progress entries were filed from phones — Android and iPhone — so the separate Android app was shelved in favour of a single installable web app.
  • Progress figures for supervision letters are recomputed from daily database backups with the platform's S-curve logic; the recomputation reproduces the plan figures of a previously issued letter to two decimal places.
  • More than 940 commits and 560 merged pull requests since April 2026, merged through CI with a post-deploy smoke test and daily database backups; about 125,000 lines of application code across 46 domain engines, 27 controllers and 29 repositories.
  • The same codebase runs a second, separate instance for another agricultural programme.

05Try it

The S-curve rule the platform applies, run on a fictitious package: item weights from the bill of quantities, planned progress spread over each item's schedule, actual progress capped at 100% per item, and a status that turns critical when the gap crosses the contract threshold.

S-curve: planned vs actual

Fictitious 18-week canal package. Move the reporting week; the status follows the contract rule (critical when more than 10 points behind while planned ≤ 70%, or more than 5 points behind after that).

Illustrative data
week 11

Swipe sideways to see the whole chart.

planned (cumulative)actual (cumulative)on trackbehindcriticalaction taken
Planned
Actual
Deviation
Status

Method: item weight = item amount ÷ contract subtotal; planned = weight spread evenly over the item's scheduled weeks; actual = Σ weight × min(installed ÷ contract quantity, 100%). Package, quantities, dates and actions are fictitious.

All interactive demos

06Stack

  • Node.js (Express)
  • Next.js 16 / React 19
  • TypeScript
  • PostgreSQL
  • Redis
  • Cloudflare R2
  • Railway
  • Vercel
  • Sentry
  • GitHub Actions
  • PWA
Next case studyLong CrossCanal design studio for irrigation planning