All work

Internal Tools

Master Sheet

The team’s daily workspace for managing 400+ locations and turning location data into client pitches, built around the company’s business model.

My role
Sole developer and maintainer
Project state
Production
Technologies
React / TypeScript / PocketBase / Google Maps / Google Slides

What I built

I built Master Sheet to replace the spreadsheet at the center of our location inventory. It is now the company’s main source of location information, used by every team member daily. It brings together the details we need to manage locations, maintain industry records, and prepare client pitches. Since its introduction, the team has grown the inventory from 100+ to 400+ locations in less than a year.

Real application with 260 demonstration locations and synthetic prices, clients, notes, and users. The featured location uses its actual physical details and photo; other reference photos are illustrative. The demo count is separate from the 400+ locations managed in production.

A workspace built around how we use location data

The interface is deliberately dense. Staff need to compare locations and see the important details together, without opening a succession of pages. A table with market filters makes hundreds of locations easy to browse. Opening a record brings up a drawer with its details, photo, interactive map, and Street View while keeping the list in reach.

I designed the fields and data types around our business, with linked contacts and companies for brokers, property managers, and owners. When someone spots an issue, they can flag it and leave a note. The flag stays visible in the table so the team can follow up later. Changes are logged and timestamped, making it possible to see what changed and when.

Master Sheet location table with market filters beside an open details drawer containing a location photo, fields, map, and Street View.
The drawer keeps location details and geographic context beside the working list. View full size ↗

Keep records consistent and ready to share

Address entry combines Google Places and geocoding with address validation to keep records in a consistent format. Staff can fine-tune a location’s coordinates by dragging its map pin. An AI-assisted generator suggests short, recognizable location IDs based on the address, with uniqueness checks to avoid duplicates.

The application stores the information needed to submit locations to Geopath and exports it directly into the submission sheet. A Geopath API integration updates audited impression figures. Adstruc export is also available; support for other industry formats, including DOmedia, is in progress.

Selected locations in the Master Sheet table, with actions for map preview, Geopath synchronization and export, Adstruc export, and creating a board.
Staff can work with a selection of locations directly from the table, including industry exports and map previews. View full size ↗

From a selection of locations to a client pitch

Staff assemble locations into Boards, preview the bundle on a map, and review a numbered map for each market. Each board has its own location order, a two-week/four-week pricing toggle, and price overrides. Staff can quote a different price for the same location in each pitch without changing its standard price or the prices in other pitches.

An AI integration helps write location Highlights for the pitch. The team can then generate a Google Slides deck from the board. Previous generations are timestamped and linked from the board’s history, so staff can find the presentation they sent earlier.

This replaced manually assembling presentations and gave the sales team a way to prepare and send a quick pitch without waiting for someone else to put it together.

Pitch board with a numbered market map, ordered location rows, editable prices, a two-week/four-week toggle, and deck generation and history controls.
A board brings the location selection, market map, pricing, and deck controls together. This capture shows board preparation, not a generated deck. View full size ↗

A tool the whole team relies on

Master Sheet has become one of our most used internal tools. Its fully functional mobile interface lets staff work away from a desk, and it shares the company’s design system and dark mode with the other applications I maintain.

I own the application from requirements and interface design through deployment and ongoing support. PocketBase keeps the backend straightforward to manage. Owning the data model, interface, and integrations also means I can extend the tool as our workflow changes, rather than make the team work around a fixed product.