CityRFP
National public-procurement listings, bidding & contract management
- Client
- Personal
- Type
- NUXT / SUPABASE / CLOUDFLARE
- Year
- August 2026
- Views
- 22
CityRFP began as a procurement tool for cities and property managers and has since gone national. Public solicitations are ingested from open-data platforms and published as a browsable, filterable feed; owners post their own projects, vendors save and bid on them, and the whole thing carries through to proposals, contracts, e-signature, and certificate-of-insurance tracking.
The ingest layer is the core of it. Adapters speak a platform, not a city — Socrata covers the jurisdictions that publish open data, and adding another jurisdiction on an existing platform is a database row rather than code. SAM.gov is what makes it national, and that adapter earned its comments: relevance there is expressed as NAICS codes accepted one per request, so the obvious per-code fanout burned a day's rate-limit allowance in an afternoon and silently missed every trade nobody remembered to list. It now runs a single broad query, paginated, matching NAICS by prefix in code — cheaper and broader at once. Past-deadline notices are skipped so browse doesn't fill with dead listings, and statewide feeds leave the city field null instead of inventing a city name that would surface as a bogus filter and a bogus hub page.
Public consumption runs through an owner-controlled visibility feed with stable-sort offset paging, geography and hub-eligibility facets, and a detail endpoint. Recent work moved scheduled ingest and alert dispatch onto the app Worker, unified the browse UI into shared card components with density variants, nested the account routes so active-link state works natively, and killed a notification polling storm that was generating roughly 242k requests a day from a single client. Built on Nuxt 4 with Supabase and Cloudflare Workers, with native iOS and Android builds via Capacitor and Firebase push.