← Work

2025 —

DroneMapTW

Where can I fly?

An interactive map of Taiwan's drone flight restrictions — built because every existing one was hard to look at.

Open the live product ↗
DroneMapTW

clicks from search, 12 months

48,300

average position on Google

4.3

click-through rate for 空拍機地圖

47%

of all traffic comes from search

88%

Figures from Google Analytics and Search Console.

The honest reason I built it

I fly a DJI Mavic Pro. The real reason I built this is much simpler: every existing drone restriction map in Taiwan was ugly. Blurry on a Retina screen, awkward to read, with the controls hidden somewhere unhelpful. I wanted one I would actually enjoy using.

Which is why it goes deeper than it looks

Wanting a beautiful map is exactly what forces you into the hard parts. Off-the-shelf map services could not give me the crispness or the control I was after, so I built the pipeline myself: my own tile server, my own vector basemap for Taiwan generated with planetiler, restriction zones cut into vector tiles with tippecanoe, PostGIS underneath, and a government electronic map as a fallback style. It looks simple. That is the expensive part.

The script nobody asked for

Flight restrictions change, and a map that quietly goes stale is worse than no map. So there is a job on a cron schedule that compares the government data source against my database every single day, and emails me the moment anything moves. Nobody pays me for this project. I wrote the monitoring anyway — because "I shipped it" and "it is still correct" are not the same claim.

What happened

It ranks first for the terms that matter. 空拍機地圖 pulls a 47% click-through rate, and the site averages position 4.3 across all queries — 48,000 clicks from 375,000 impressions in twelve months. Almost 88% of all traffic arrives from search, which means people are not finding it because I promoted it. They are finding it because they needed it.

What I did
Product design · UX · Data visualization · Maps · Frontend · Backend · Infrastructure
Built with
Nuxt · Vue · TypeScript · TypeORM · PostgreSQL + PostGIS · tileserver-gl · planetiler · tippecanoe · Python
Status
Live, and checked against the source every day.
Contact

Have something you want built?

Have an idea, a problem, or something you wish existed? I'd like to hear about it.