The public starting point for council updates, members, resources, and resident services.
Documentation
| Area | Start here |
|---|---|
| Public product surface | Resident Council website |
| Content and data flows | How content reaches the site |
| Deployment and recovery | Operations and troubleshooting |
| Visual behavior and accessibility | Design and QA |
| Council identity and authorization | RC Console identity and access |
Resident Council public home · July 2026
What residents see
The site brings together House Updates, council members, calendars, the Support Hub, voting, and links to other resident services. Most pages are static and fast to load; small Pages Functions supply dynamic content such as changelog entries, Canva previews, link analytics, and managed datasets.
How content reaches the site
| Content | Current path |
|---|---|
| House updates and events from the weekly newsletter | Email Worker → Notion → site and calendar feeds |
| Events and observations shared in resident WhatsApp groups | Privacy filter and classification Worker → review surfaces |
| Council member data | RC Console D1 → public member feed and publish outbox |
| Resident casework from WhatsApp, email, and contact forms | Shared casework routing → private Casework database |
| Changelog entries | GitHub API → Pages Function |
| Canva images | Canva preview proxy with a screenshot fallback |
| Analytics and curated datasets | Pages Functions → R2 and the analytics-store service |
See Happenings ingest, WhatsApp ingest, and legacy n8n pipelines for the detailed flows.
Technical map
- Cloudflare Pages serves the public site.
- Pages Functions under
/functionsprovide the APIs. STATS_BUCKETstores link analytics;CSV_BUCKETstores managed datasets and publish records.- Static JSON files provide updates and the published council-member roster.
- The protected
rc-admin/Worker runs RC Console: people, positions, term handover, public member publishing, casework ownership, and Calendar authorization.
Key routes
| Route | Access | Purpose |
|---|---|---|
/analytics | Edge protection expected | Analytics dashboard |
/api/changelog | Public | Aggregate changelog entries from GitHub |
/api/canva-image | Public | Fetch a Canva preview |
/api/stats | Edge protection expected | Read link analytics from R2 |
/api/csv-upload | Edge protection expected | Upload a managed dataset |
/api/csv-list | Edge protection expected | List datasets |
/api/csv-data | Edge protection expected | Fetch a dataset |
/api/dataset-types | Edge protection expected | List supported dataset schemas |
/api/publish | Edge protection expected | Publish to analytics-store |
/stats | Public | Redirect to /analytics |
Deployment boundary
The repository expects edge protection on operator routes. Confirm the production Cloudflare Access policy before relying on those routes as private.
Documentation by topic
| Task | Guide |
|---|---|
| Deploy or troubleshoot the site | Operations and troubleshooting |
| Check visual consistency or accessibility | Design and QA |
| Understand newsletter ingestion | Happenings ingest |
| Understand WhatsApp event ingestion | WhatsApp ingest |
| Review retired member and update workflows | Legacy n8n pipelines |
| Maintain short links and QR tools | Short.io migration |
| Maintain Canva previews | Canva preview pipeline |
| Review the planned changelog enrichment | Changelog enrichment plan |
| Manage council people, roles, or handover | RC Console identity and access |
| Restore RC Console access | RC Console break-glass runbook |
Service links
- Site: ihnyc-rc.org
- Repository: dghauri0/ihnyc-rc-landing
For the wider system, see the system overview and security model.