All projects

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
drone.co.id home page
Home: certification, marketplace and hiring, with live numbers from the platform.
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

  1. 01 · Pilot profiles

    Public portfolios with registration number, work experience, skills with levels, certifications, equipment, projects and freelance availability.

  2. 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.

  3. 03 · Flight map & stats card

    Every public flight on a map of Indonesia, and a shareable hours card with QR verification for each pilot.

  4. 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.

  5. 05 · Live flight radar

    Manned traffic over Indonesia from ADS-B feeds (OpenSky and Flightradar24), shared by every visitor through one cached national query.

  6. 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.

  7. 07 · GIS workspace

    Projects with vector and raster layers, attribute tables, drawing tools and import/export of SHP, KML, GeoJSON and GeoTIFF.

  8. 08 · LMS & certification

    Courses with video lessons, exams, grading and check-in attendance, ending in designed certificates with QR verification.

  9. 09 · Member card

    Digital RPI member card generated on the server, with automatic background removal of the ID photo and live QR verification.

  10. 10 · Community

    Feed, 24-hour stories, communities, events and direct messages in realtime over Socket.io, with push notifications to phones.

  11. 11 · Companies & marketplace

    Company pages, hire-a-pilot, drones for sale, a hardware guide and a national aerial video contest.

  12. 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.

Fly zone map with NOTAM and restricted areas
Fly zone map: a NOTAM in force over prohibited, restricted and danger areas around Jakarta and Bogor.

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

Flight plan
Flight plan: a survey grid over a lake with cells marked as flown, ready to send to a DJI controller.
GIS workspace
GIS workspace: forest management boundaries over satellite imagery, with layers and attributes.
Flight log map
Every public flight logged by pilots, on one map of Indonesia.
Flight log detail
A logged flight with date, duration, altitude, weather and aircraft.
Flight hours card
Flight achievement card with total hours and QR verification, ready to share.
LMS course
LMS: a recorded webinar lesson with course outline, exam and attendance.
Member card
Digital member card with photo, registration number and QR code.
Pilot profile
Pilot profile: work experience, freelance status and communities.
Skills and certifications
Skills with levels and years, and verified certifications.
Drone events
Events for workshops, competitions and webinars, with online registration.

Next case study

Remote Pilot App

The drone.co.id platform in a native app, live on the App Store and Google Play