How the Deal212 public website is put together
This is the shape of the system as observed from the public side: a Cloudflare edge in front of a single-page app with catch-all routing, with a backend layer that assembles New York City open data into property reports and takes in leads.
Data flow
A visitor asks for a property report; the request travels through the edge to a backend that geocodes the address, pulls city records, and calculates comparables, then returns a page to the browser. Lead intake runs over a separate POST to the API.
- Client
- Edge (Cloudflare)
- Backend / reverse proxy
- Data sources
What runs where
Edge (Cloudflare)
Caches static assets, terminates TLS, and - today - hands robots.txt, sitemap.xml, and unknown routes to the SPA fallback (CR-01).
Single-page app
Serves the public site and property check over catch-all routing. Because the fallback returns HTTP 200 for everything, missing pages and reserved files are indistinguishable from the homepage.
Backend / proxy
A reverse proxy talks to NYC open data, geocodes via NYC Planning GeoSearch, runs the comparable-sales calculation, and accepts lead intake at POST /api/lead.
Data sources
New York City public sources (Finance, open data, GeoSearch, FEMA) plus lead storage. The exact source list and reconciliation notes are on the Sources page.
Where the issues live
The routing and caching behavior shows up at the edge and in the SPA fallback, the lead endpoint is a backend concern, and the content claims are authored into the pages themselves. The full categorized findings are on the Findings page.