How Simon Willison Built a GeoJSON Map Viewer from Scratch Using AI: The Complete Process

Simon Willison used multiple AI tools to build a privacy-first GeoJSON map viewer from scratch in record time.
Developer Simon Willison demonstrated a compelling AI-assisted development workflow by building a full-featured GeoJSON Map Viewer using GPT-5.6-Sol and Claude Code. The tool supports multi-layer display, style customization, and PNG export — all processed client-side for privacy. Remarkably, even the geographic boundary data was generated by AI from government open data sources, showcasing how AI is simultaneously lowering barriers in both tool development and specialized data acquisition.
A Small Tool Born from a Real Need
Prominent developer Simon Willison recently shared a highly representative case of AI-assisted development. Simon is a co-creator of the Django web framework and the author of the data exploration tool Datasette. In recent years, he's been especially active on the frontier of AI-assisted development practices, frequently documenting his complete process of building tools with large language models on his blog. This time, the origin was simple: he was helping his friend Natalie organize local administrative boundary maps — specifically the political boundaries of the Granada Community Services District and the Midcoast Community Council.
The requirement was straightforward: display some GeoJSON files on a map and export them as PNG images. GeoJSON is an open standard geospatial data format based on JSON (formally specified by the IETF in RFC 7946) that can represent geometric objects such as points, lines, and polygons along with their attribute information. Compared to the traditional Shapefile format, GeoJSON is stored as plain text and can be parsed directly in the browser, making it widely adopted in web mapping applications. It's also a natively supported format for platforms and tools like GitHub, Mapbox, and Leaflet. What Simon faced was a very typical "small but specific" engineering need — there might be existing solutions on the market, but they're either too heavyweight or not quite the right fit.
So Simon did something that's becoming increasingly common: instead of searching for an existing tool, he went straight to AI to build one.

AI Proactively Built a Complete Map Viewer
What's interesting is the entire development workflow. Simon asked GPT-5.6-Sol for tool recommendations, and the model didn't just offer suggestions — it "proactively" built a tool prototype. He then used Claude Code for web and Fable 5.1 for multiple rounds of iteration, ultimately polishing it into the finished product — GeoJSON Map Viewer.
Notably, Simon used multiple AI tools working in concert throughout this case, reflecting an important trend in AI-assisted development today — developers no longer rely on a single AI tool but flexibly switch between different tools at different stages of the development process based on each tool's strengths. For example, some models excel at system design and architectural suggestions, while others perform better at code generation precision and frontend detail tuning. This "multi-model collaboration" workflow is becoming the new normal for efficient developers, similar to how developers used to switch between different IDEs, debuggers, and deployment tools — except now AI models themselves have become part of the toolchain.
This workflow reflects the current maturity of AI programming toolchains. In the past, developing a web application with map rendering, multi-layer overlay, style controls, and export functionality would require several hours to a full day of work even for an experienced developer. Now, the path from "stating a requirement" to "usable product" has been dramatically compressed, and AI can even proactively recognize during a conversation that "you need a tool" and start building it.
You might not have noticed, but Simon emphasized that this tool follows a privacy-first design — the interface clearly states "Your GeoJSON stays in this browser," with all processing done client-side, no server upload required. Technically, this means the entire application's computational logic executes entirely in the user's browser, relying on modern browser capabilities like the JavaScript engine and Canvas API for data parsing, map rendering, and image export. Unlike traditional server-side processing models, user data never leaves the local machine, eliminating data breach and privacy compliance risks; the application can be deployed as a static page with no backend server maintenance costs. For scenarios involving potentially sensitive geographic boundaries or administrative information, this design is especially important.
Core Features of the GeoJSON Viewer
From the screenshots, this viewer has a quite comprehensive feature set:
- Multi-layer support: Add multiple Shape layers (Shape 1, Shape 2...), each independently configurable
- Flexible data loading: Supports loading GeoJSON directly via URL or pasting raw data in a text box
- Style customization: Each layer can have its own fill color (e.g., blue #028FC3, red #E4572E) and transparency (Opacity slider)
- OpenStreetMap basemap: Rendered with Leaflet, overlaid on real geographic basemaps
- PNG export: Fulfills the original core requirement of "exporting as an image"
It's worth expanding on the underlying map rendering technology here. Leaflet is currently one of the most popular open-source JavaScript interactive map libraries, created by Ukrainian developer Vladimir Agafonkin. At only about 42KB (gzipped), it provides complete map rendering capabilities including tile layer loading, vector graphics drawing, popups, zoom controls, and more. Leaflet's design philosophy is "simplicity, high performance, and extensibility" — the core library includes only the most essential features, with everything else supplemented through a rich plugin ecosystem. It supports OpenStreetMap and various other tile sources as basemaps, and can natively load GeoJSON data to render polygons, line segments, and other vector features on the map, making it ideal for scenarios requiring rapid construction of map visualization applications.
In the example, two semi-transparent polygons cover the Montara/Moss Beach area and the El Granada/Quarry Park area respectively, overlaid on a real map of the Half Moon Bay coast — clear and intuitive.
AI Doesn't Just Build Tools — It Can Generate Geospatial Data Too
If AI building tools is already impressive enough, another detail Simon shared is even more thought-provoking — the GeoJSON boundary data itself was also generated by AI.
He found that by simply asking ChatGPT (specifically ChatGPT Work, as he mentioned) for the boundaries of almost any area, the model would extract and combine files from various government open data sources to ultimately construct the boundary data you need.
To understand why this is remarkable, you need to appreciate the traditional difficulty of obtaining geospatial data. In the GIS (Geographic Information Systems) field, acquiring precise administrative boundary data has always been highly specialized work. Various levels of U.S. government publish geographic boundary files through different open data platforms — such as the U.S. Census Bureau's TIGER/Line database, and state and county GIS open data portals — but this data is often scattered across different websites, in varying formats (Shapefile, KML, GeoJSON, GDB, etc.), and may use different coordinate reference systems (such as NAD83, WGS84). To obtain precise boundaries for a small administrative unit like a specific community services district, a developer typically needs to: identify the correct data source and jurisdiction, understand the data's metadata and attribute fields, and use specialized tools like QGIS or ArcGIS for coordinate conversion and geometric clipping. This process presents a high barrier for non-GIS professionals.
The two prompts Simon used were remarkably simple:
I want a polygon that represents the exact boundary of the El Granada GCSD
Get me a GeoJSON file for the boundary (or boundaries if that makes sense) for the MCC - Midcoast Community Council - that operates near Half Moon Bay CA
And AI actually assembled usable boundary polygons from public government data sources. This means the barrier to obtaining geospatial data is being significantly lowered — where you previously needed to know which government website to visit, which format to download, and how to perform coordinate conversion and merging, now a single natural language description can trigger the entire process. By integrating retrieval and data processing capabilities, AI is compressing this multi-step professional workflow into a single natural language conversation.
What Trends Does This Case Reveal?
This seemingly unassuming little tool actually encapsulates several important shifts in how AI assists our work today.
The Mindset Shift from "Searching for Tools" to "Building on Demand"
In the past, our first instinct when facing a specific need was to search for an existing solution; now, more and more developers' first instinct is "let AI build one for me." When the cost of building drops low enough, creating a custom tool for a one-off or niche need becomes entirely reasonable. This is a fundamental shift in work paradigms. The software industry has long followed the economic logic of "build general-purpose tools, serve a broad user base" because development costs were high, and only enough users could make the amortization worthwhile. When AI compresses building costs to near zero, "building a tool for one person's need" is no longer a luxury — it's the rational choice.
Lowering the Dual Barriers of Data Acquisition and Tool Development
In Simon's case, AI simultaneously lowered the barriers in both "tool development" and "data acquisition." The geospatial field has traditionally been highly specialized with fragmented data, yet now ordinary users can accomplish through conversation what previously required a GIS expert. This change isn't limited to the geospatial domain — in legal document retrieval, medical literature review, financial data analysis, and many other specialized fields, AI is playing a similar role as a "knowledge intermediary," integrating scattered professional data sources into results that ordinary people can directly use.
Privacy-First Design Shouldn't Be Compromised for Efficiency
Even with a tool rapidly generated by AI, Simon still insisted on local processing and keeping data within the browser. This reminds us that AI-accelerated development doesn't mean abandoning engineering quality and privacy principles — good default design matters at all times. In fact, as AI lowers the development barrier and more non-professional developers begin building and sharing tools, privacy-secure defaults become more critical than ever. When tool creation becomes easy, ensuring every tool follows correct security practices actually becomes the greater challenge.
Conclusion
The GeoJSON Map Viewer itself may be just a small tool, but the story behind it is more illuminating: a real, specific need was fully resolved in a short time through AI proactively building a tool, AI generating data, and multi-tool collaborative iteration. For developers and knowledge workers alike, this ability to "build on demand" is quietly reshaping how we solve problems.
Related articles

AI Agent Cost Optimization in Practice: Engineering Wisdom That Saved $1 Million in One Hour
Databricks eliminated $1M/year in wasted AI Agent spend in just one hour. Learn the root causes of Agent cost overruns and key strategies like model tiering, context pruning, and caching.

How the FDA Is Building an AI-Ready Data Foundation on Databricks
Explore how the FDA leverages Databricks for Government to build a unified Lakehouse architecture and AI-ready data foundation while meeting federal security and compliance standards.

The Power of Security Collaboration: Why Vulnerability Discovery Cannot Do Without Human Intelligence
Explore how security collaboration outperforms tool dependency, the value of vulnerability stories, cross-team knowledge sharing practices, and building stronger defenses by investing in people and collaboration.