Spot Check

Spot Check

How this was built

A personal project, not a public [sage]TOOLS feature. Built for one house: my own.

I already had two security cameras pointed at the curb outside my house. Spot Check turns those cameras into something more useful than a recording: a quick way to tell if there’s an open parking spot before I even walk outside.

The problem

Street parking near the house is tight. Circling the block to check for a spot wastes time and gas, especially at night. The cameras were already watching the curb around the clock. The question was whether they could also answer one simple thing: is there room to park right now?

What it does

Click Check Now and Spot Check looks at the live picture from each camera, works out where every parked car actually starts and ends, and reports back whether there’s a gap long enough for another car. One click, one answer, no squinting at two tiny camera thumbnails on a phone screen.

A quick example

Driving home and deciding whether to keep circling the block or just head straight for the driveway.

Features

  • Runs two street cameras through AI vehicle detection and reports how many curb spots are open right now.
  • Every result comes with the actual camera frames it looked at, so you can check its work.
  • Shows the reasoning behind the count, not just the number.
  • Zones let you tell it which stretch of curb actually matters.
  • Confirms the cost before each run, since every check makes paid vision calls.

How it was built

It came together in stages, each one solving a specific problem the last one uncovered.

1

Teaching the app where to look

Before anything could work, the app had to know exactly which part of each camera’s picture was curb, and which parts were driveways or sidewalks that don’t count. That meant building a simple drawing tool: trace the curb once per camera, and every future check knows exactly where to measure.

2

Turning a flat photo into real-world distance

A camera image doesn’t know how many feet wide anything is, only pixels. The app needed to turn “this gap looks like 200 pixels” into “this gap is about twelve feet.” Rather than measuring the curb by hand with a tape measure and hardcoding that number, it works out its own scale by looking at the cars it already sees in each check and reasoning out how big they must be. It calibrates itself, every time it runs.

3

Giving it eyes

The actual seeing is done by an AI vision model. Each camera’s photo gets sent off, the model reports back every car it can identify and how confident it is, and that gets combined with the geometry from the step above to work out where the open space is, if any.

4

Two cameras, one honest answer

Because there are two cameras at two angles, the app checks each one on its own and only calls the result high-confidence when both agree. If the light’s bad or a delivery truck is blocking the view, it says so instead of quietly guessing.

Decisions along the way

Spend money on purpose, not by accident

Every check costs a small amount of real money to run the AI model, so before it fires, the app asks for a yes first. Nothing runs quietly in the background racking up a bill, and there’s a daily cap so a bug could never turn into a surprise charge.

Say “not sure” instead of making something up

If a picture is too dark or blurry to read with confidence, Spot Check says so, rather than reporting a number it can’t actually stand behind.

Protect what’s actually private

A camera on the street can catch faces, license plates, and house numbers along with cars. The app automatically strips anything like that out before it saves or shows a result, rather than just asking the AI nicely not to mention it.

Prove it, don’t just believe it

Rather than assume the AI was reading the cameras correctly, I built a way to test it: capture real photos, mark by hand what’s actually true, and compare that against what the app reported, before ever looking at the app’s own answer. That’s what turns “seems to work” into a real, measured accuracy number.

Name it like a product, not a ticket

Internally, this project is still tracked as “Parking Availability Monitor.” Nobody wants to click a button called that. It’s called Spot Check anywhere a person actually sees it. Small decision, but a deliberate one.

Where it stands

Spot Check is still being tuned against the real world, not a finished, polished product. It’s closer to a working prototype that already does its job. That’s on purpose: ship something real, measure it against reality, and improve it from there.

What it's built with

What I usedWhat it does here
Next.js route handlersThe parking API, kept server side so camera credentials never reach the browser.
Two outdoor camerasThe actual eyes on the curb. Already installed for something else.
Claude vision (Anthropic)Looks at each frame and works out how many curb spots are free.
Postgres, parking schemaStores frames, zones and every check, on a direct connection rather than through the usual client.
Plain CSSNo framework. Design tokens are CSS custom properties.
Open Spot Check