Aaron E. Lewis
← BACK TO PROJECTS
01 — PRODUCT

Childcare pricing, out of group chats and into the open.

Every parent asks around before picking a daycare — ParentPrice turns that word-of-mouth into a searchable map. Search a city, ZIP, or daycare name, see real prices by age band, and add your own in under a minute. No account required.

STACK: REACT, TYPESCRIPT, SUPABASE, MAPLIBRE
STATUS: LIVE AT PARENTPRICE.APP
ROLE: DESIGN & FULL-STACK BUILD
Visit ParentPrice ↗
ParentPrice — real childcare prices, from parents who've paid them
01

The app

Search leads straight into a map that aggregates prices into grid cells as you zoom out, then breaks apart into individual, priced daycares once you zoom in close enough. Every price is broken down by age band — infant, toddler, and beyond — since a single "average" number hides more than it tells a parent shopping for care.

Anyone can add a price with no account, no login, and no gatekeeping. Removing that friction is what turns a handful of word-of-mouth numbers into a map worth checking before you tour a daycare.

02

What it does

Search, anywhere

Type a city, ZIP, or daycare name and jump straight to it on the map — backed by Google Places Autocomplete, falling back to free OpenStreetMap search if that's not deployed.

Zoom-aware map

A Supabase RPC buckets prices into zoom-sized grid cells when you're zoomed out, and returns individual daycares, priced by age band, once you're zoomed in tight.

Anonymous submissions

Add a price for any daycare with no account — rate-limited server-side so the crowdsourcing stays useful instead of gameable.

National data hub

A separate view charts government childcare price and affordability data over time and by state, alongside the crowdsourced numbers.

03

Stack

A Vite + React + TypeScript single-page app with no application server — it talks to Supabase directly. MapLibre GL JS renders the map on a free CARTO raster basemap, so there's no map API key to manage. Supabase handles Postgres, row-level security, and the clustering RPC that powers the map at every zoom level.

  • Vite + React 19
  • TypeScript
  • MapLibre GL JS
  • Supabase (Postgres, RLS, Edge Functions)
  • React Router
04

Notes

  • Live and taking real submissions at parentprice.app — the numbers on the map are real prices from real parents, not sample data.
  • Place search degrades gracefully: if the Google Places proxy isn't deployed, it falls back to free OpenStreetMap search rather than breaking.