CASEPlatform · drone.co.id
One home for every drone pilot in Indonesia
Since 2021, drone.co.id has been where Indonesian remote pilots register, train, log and replay their flights, check the airspace, plan missions, work with GIS data, find work and buy gear. I designed and built the whole platform myself: the web app, the REST API behind the mobile app, realtime chat, payments, and the aviation and GIS tools pilots use in the field.
- Role
- Founder, product designer and full stack engineer
- Period
- 2021 - now
- Platform
- Web + REST API for iOS/Android

- 3,520
- registered remote pilots on the live platform
- 139
- data models in one Prisma / PostgreSQL schema
- Since 2021
- built and run continuously; the current codebase alone has 516 commits
- ~30
- official airspace layers synced and checked in one request
01The problem
Scattered tools, scattered pilots
Indonesian drone pilots were spread over WhatsApp groups, paper logbooks, foreign apps that do not know local airspace rules, and certification done by hand. Companies that wanted to hire a certified pilot had no reliable place to look.
drone.co.id brings it together: a verified pilot registry, training and certification with digital certificates, a logbook that reads the drone’s own flight records, airspace and weather in plain language, and GIS tools for mapping work. The same backend powers the Remote Pilot mobile app and the Drone Mapper desktop app.
02Product
What I built
01 · Pilot profiles
Public portfolios with registration number, work experience, skills with levels, certifications, equipment, projects and freelance availability.
02 · Flight logbook & replay
Upload a DJI flight record and get the GPS track, telemetry charts, stick inputs on a virtual remote, and a 2D or 3D Cesium replay of the flight.
03 · Flight map & stats card
Every public flight on a map of Indonesia, and a shareable hours card with QR verification for each pilot.
04 · Fly zone & weather
Airspace, prohibited and restricted areas, NOTAM, volcano ash notices and aerodromes from the official AIP, plus METAR and TAF decoded into plain sentences.
05 · Live flight radar
Manned traffic over Indonesia from ADS-B feeds (OpenSky and Flightradar24), shared by every visitor through one cached national query.
06 · Flight planner
Survey grids with cells marked as flown, airspace checks along the plan, and missions sent straight to a DJI controller over WebUSB.
07 · GIS workspace
Projects with vector and raster layers, attribute tables, drawing tools and import/export of SHP, KML, GeoJSON and GeoTIFF.
08 · LMS & certification
Courses with video lessons, exams, grading and check-in attendance, ending in designed certificates with QR verification.
09 · Member card
Digital RPI member card generated on the server, with automatic background removal of the ID photo and live QR verification.
10 · Community
Feed, 24-hour stories, communities, events and direct messages in realtime over Socket.io, with push notifications to phones.
11 · Companies & marketplace
Company pages, hire-a-pilot, drones for sale, a hardware guide and a national aerial video contest.
12 · Payments & admin
Midtrans checkout and webhooks shared by every product, and an admin panel for members, classes, certificates, layers and reports.
03Aviation · Airspace for humans
Airspace, decoded
Indonesia publishes its airspace as dozens of map layers in the Aeronautical Information Publication, and its weather as coded METAR lines like “Q1011 NOSIG”. Few pilots can read either.
drone.co.id syncs every layer from the official source each hour, keeping the last good copy if the source goes down, and answers one question for any point on the map: can I fly here, now? The same check runs on the server for the mobile app, so a phone never has to download thirty layers to get a verdict.

Hard parts
What made it difficult
Reading DJI’s own flight records
Newer DJI logs are encrypted. The parser runs the open source dji-log tool with a keychain from DJI’s API, then maps raw telemetry, including stick positions whose ranges DJI never documents, into charts and a replay.
Official data that can fail
Airspace layers come from a government map service that is sometimes down or returns empty data. Syncs are hash-checked and fail safe, so pilots always see the last valid airspace instead of an empty map.
A national radar on a small budget
ADS-B providers bill per call. One shared national query, cached and polled at a pace the plan allows, serves every visitor instead of one call per browser.
Talking to a DJI controller from a web page
DJI RC 2 and RC Pro only speak MTP over USB, so I wrote a minimal MTP client over WebUSB to upload missions with no native helper to install.
One backend, three clients
The web app, the iOS/Android app and the Drone Mapper desktop app share one API, so every change stays compatible with app versions already on phones.
Outcome
Who it helps
For pilots
One account for training, certificates, verified logbook hours and a portfolio that brings in work.
For safety
Airspace, NOTAM and weather in plain language before every flight.
For companies
A searchable directory of certified pilots with verifiable credentials and flight history.
For the ecosystem
A single API that the mobile app and Drone Mapper plug into from day one.
04Skills · What it took
The craft behind it
Engineering
Full stack, realtime, payments
- Next.js App Router with a versioned REST API v1 and its own API reference, on Prisma and PostgreSQL with 139 models.
- Socket.io chat and presence, Expo push notifications, Midtrans payments with signed webhooks, NextAuth with Google and Apple sign-in.
- WebUSB clients for ADB and MTP to reach DJI controllers, and a DJI flight-record parser with telemetry downsampling.
- Server-side image work: certificate and member card rendering, ID photo background removal by flood-fill chroma key, and ID card OCR with Gemini Vision.
GIS & aviation
Maps that work in the field
- Leaflet with Geoman drawing tools, raster layers from GeoTIFF, attribute tables, and a Cesium 3D globe for flight replay.
- Point-in-polygon checks against ~30 AIP layers, METAR/TAF decoding, and ADS-B traffic from OpenSky and Flightradar24.
- Turf.js for areas, buffers and survey grids; proj4 for UTM; SHP, KML, GeoJSON and GeoTIFF import and export in the browser.
SEO
Found on Google, not just shared on WhatsApp
- Per-page metadata on 70+ routes, generated from the data for profiles, events, classes and posts.
- JSON-LD in 27 schema.org types, including Person, Course, Event, Product, FAQPage and BreadcrumbList.
- Dynamic sitemap and robots, canonical URLs and Open Graph tags on public pages.
Design
Calm, consistent, mobile-first
- One visual language across web, mobile and desktop: the same type scale, blue accent and card system.
- Map-first tools with collapsible, resizable side panels that remember their width, and dark and light themes.
- Next.js
- TypeScript
- Tailwind CSS
- Prisma
- PostgreSQL
- NextAuth
- Socket.io
- Midtrans
- Leaflet
- Cesium
- Turf.js
- proj4
- WebUSB
- pdf-lib
- Gemini
- Expo Push
05Screens
A closer look










Next case study
Remote Pilot App
The drone.co.id platform in a native app, live on the App Store and Google Play
