ChrisDunn
Boston Building Permits

Boston Building Permits

A mobile app that maps all currently open building permits in the City of Boston, turning raw permit data into an intuitive, visual experience. By plotting permits on an interactive map, the app makes it easy to explore active construction, renovations, and development projects across neighborhoods, offering insights that go far beyond a simple list. It's a tool for residents, developers, and urban enthusiasts to better understand how the city is changing in real time.

Stack: Expo, MongoDB, React Native, Node.js

The Observation

Boston is unusually transparent about what's happening in its neighborhoods. The city maintains detailed public datasets on everything from 311 service requests to crime reports to building permits, and it makes all of it available for download. That's genuinely commendable. The problem is that the primary way most people would interact with that data is by downloading a CSV file, which is useful for researchers and data analysts and not particularly useful for anyone else.

What caught my attention was the permits. Every open building permit in the city contains GPS coordinates. That detail, buried in a spreadsheet column, is the difference between a data export and a map. And a map is something anyone can use.

The Problem

The gap isn't in the data, it's in the interface. Boston's permit data is complete and current, but reaching it requires the kind of technical comfort that most residents, and most contractors, simply don't have. The person living next to a construction site, the homeowner wondering what's going up down the block, the contractor looking for the next job: none of them are downloading CSV files. The information exists but it doesn't travel.

What the city offers is access. What was missing was usability.

The Solution

Boston Building Permits is a mobile app that takes the city's open permit data and puts it on a map, organized by neighborhood, updated every morning.

The architecture starts with a server that fetches all open building permits from the city each day and stores them in a MongoDB database, partitioned by neighborhood. I built this shortly after attending a MongoDB meetup and wanted to put it to use in a real project. In retrospect, Postgres likely would have been the cleaner fit for this kind of structured, relational data, and I'd make that call differently today. But the implementation works, and the tradeoff was educational in ways that mattered.

The front end is a React Native app built with Expo, backed by a lightweight Express server. Users open the app, select a neighborhood, and see every open permit in that area plotted on a map. Each marker is color-coded by permit type, with a dedicated color for properties carrying multiple permits, which turns out to be a meaningful signal in dense neighborhoods where activity tends to cluster. Tapping a marker surfaces the address, the applicant name, the issued date, a description of the work, and the expected cost.

The original version was designed as a pure information tool, a way for residents to be better informed about what was happening around them. A conversation with a friend changed that framing. He pointed out that a map of active construction projects is also, from a different angle, a live lead list for contractors looking for their next job. That observation led to a meaningful addition: a call-to-action button at the bottom of each single-permit callout where users can submit a form to request an estimate on similar work.

Adding that button was the most technically involved part of the build. React Native's map callout components are intentionally constrained in what they allow, and getting an interactive form element to work reliably inside one required more problem-solving than anything else in the project. I worked through it with the help of Codex, which was the right tool for the kind of precise, framework-specific debugging that kind of problem demands.

Where It Stands

Boston Building Permits is live on the iOS App Store. The core loop, daily data ingestion, neighborhood filtering, mapped permits with full detail, and the contractor lead form, is working as intended.

What started as a transparency tool is now doing two things: giving residents a readable view of what's being built in their city, and giving contractors a way to surface new business from publicly available data they were never set up to act on. That pivot wasn't planned. It emerged from a conversation, which is usually how the best product decisions do.