Civic tech · Self-initiated
Tenant Triage NYC

Context
Designer & Builder · 2026
Studio: Howell & Gibbs
Services: Product strategy · UX design · Content strategy · Front-end development · Civic tech
Live at: tenanttriage.nyc · Open source · V1 in progress
Typeface: Public Sans
- Designed, built, and shipped a free, open-source civic web guide that walks NYC tenants through housing problems with adaptive scenarios, fillable complaint templates, and live city-data lookups
- Built a zero-backend HPD violation lookup by chaining two free NYC APIs in the browser, with a translation layer that converts housing-code jargon into plain-English next steps
- Shipped end-to-end in 2026 — from scenario framework and semantic color system through to front-end implementation and deployment
My contributions
Product strategy
Framed the gap between informational tenant-rights sites and narrow lookup tools, and made the strategic call to build a single product that helps tenants understand their rights and generate the artifacts to exercise them.
UX & content design
Designed a reusable 5-step scenario skeleton, adaptive type-picker branching, and a cross-page field-sync system so tenants enter their information once and have it auto-populate into every email, phone script, and reference lookup.
Front-end development
Built the HPD violation lookup as a zero-backend tool — chained two free NYC APIs in the browser, wrote a jargon-to-plain-English translation layer, and added progressive loading for buildings with long violation histories.
Civic tech & equity design
Designed for tenants under stress — including equity callouts on every scenario (undocumented-tenant resources, asthma referrals, honest market-rate warnings), and a visible [VERIFY] tag workflow for pending legal review.
Summary of work
New York City has some of the strongest tenant protections in the country. Most tenants don't know what they are, can't navigate the enforcement process, and find that existing resources fall into two camps: informational sites that explain rights without helping anyone act on them, and tools that perform narrow lookups without context. Tenants need both — they need to understand their rights and have ready-made artifacts (emails, phone scripts, reference numbers) to actually exercise them.
Tenant Triage NYC is a free, open-source web guide that closes that gap. It walks users through housing problems — mold, pests, no heat, leaks, broken appliances, lead paint — via step-by-step scenarios that adapt to the user's situation, generate fillable complaint templates, and connect to live city data so users can check whether violations have been recorded against their building in real time.
The project grew out of tenant canvassing work in Brooklyn. The recurring pattern I saw: tenants weren't short on information, they were short on structured, actionable next steps that met them where they were — on their phone, stressed, often in a language or literacy context that made dense legal resources inaccessible.
Process
Scenario framework before scenario content
Before writing a single scenario, I designed a reusable 5-step skeleton that every housing problem would follow: document the issue → notify the landlord in writing → file a 311/HPD complaint → check violation status → escalate. Standardizing the skeleton meant scenarios could be branched and expanded without the information architecture drifting, and it meant users learning the pattern once could navigate any new scenario.



Adaptive branching over flat content
Pest scenarios behave differently depending on whether you have mice, bedbugs, or roaches — different legal classifications, different timelines, different recommended actions. Rather than write six separate guides, I built "type pickers" that tailor the guide in place. The same pattern applies to mold severity, heat-season dates, and lease type.
Cross-page field syncing
Tenants filing complaints have to repeat the same information across multiple artifacts — address in the email, address in the phone script, complaint number carried forward to status-check guidance. I designed a shared data-field system using HTML data-field attributes so users enter information once and it auto-populates everywhere it's needed across the page.
Live data, no backend
The HPD violation lookup chains two free public NYC APIs — Planning Labs GeoSearch for address autocomplete, Open Data Socrata for HPD Housing Maintenance Code violations — and runs entirely in the browser. No server, no auth, no hosting cost. I built a translation layer that converts HPD's internal jargon ("NOV SENT OUT") to plain English ("Notice sent to landlord"), a parser that strips legal citation prefixes from violation descriptions to surface the plain-English action item, and a sentence-case converter that preserves ~30 known acronyms. Progressive loading keeps the interface responsive for buildings with extensive violation histories.
Color system as semantics, not decoration
Early iterations used a single warm accent palette that created conflicts between severity indicators and status indicators — users couldn't tell at a glance whether a warm-colored callout meant "this is urgent" or "this is your current status." I split the palette into distinct semantic families: teal for neutral accents, cool blue for rights and protections, warm amber reserved strictly for warnings. Color families never overlap in meaning.
Equity callouts on every scenario, not as an afterthought
Every repair scenario includes free confidential legal resources for undocumented tenants (ActionNYC, Make the Road NY, NY Immigration Coalition). Scenario-specific asthma callouts connect pest and mold sufferers to NYC Health Dept's Healthy Neighborhoods Program for free home environmental inspections. Every retaliation callout carries an honest market-rate warning — market-rate tenants have fewer protections than rent-stabilized tenants, and the site doesn't pretend otherwise.
Legal review workflow built into the content
All unverified legal claims carry visible [VERIFY] tags pending expert review pass from tenant law and immigration advocacy organizations. The tags are in the HTML, not a separate tracking system — reviewers can work directly in the source.
Outcomes & impact
The site is live at tenanttriage.nyc with V1 in progress. Shipped to date: hub page with autosuggest search (~60 typo mappings, ~40 synonym mappings), four scenario guides (heat/hot water, mold, pests, leaks), and the HPD violation lookup tool. Remaining V1 scope: broken appliances, lead paint, eviction, lease non-renewal, and retaliation scenarios.
The project is open source and designed for adoption by tenant organizations and legal aid providers as a cite-able resource — shareable as a URL, findable via search, usable on a phone in a hallway outside housing court.
Learnings
Post-LLM defensibility has to be a design requirement, not an afterthought. Anyone building an information-heavy product in 2026 has to answer one question honestly: why would someone use this instead of asking an LLM? Tenant Triage was designed around that question from the start. The answers had to be structural, not cosmetic: citable legal sources with verified phone numbers, live building-specific data lookups that LLMs cannot perform, fillable artifacts that travel with the user through the complaint process, opinionated decision paths rather than neutral summaries, and content validated by tenant advocacy organizations. The format — a web guide, not a chatbot — means it's findable by non-LLM-users, shareable as a URL, and cite-able by the organizations whose clients need it most.
Civic tech for stressed users has different design constraints than civic tech for researchers. A tenant with a mold problem at 11pm on a Sunday is not going to read a legal explainer. They need the next action and the artifact to execute it. Designing for that user meant ruthlessly cutting context in favor of action, while still making the "why" available one tap away for anyone who wanted it.
Shipping solo with AI-assisted development compresses the feedback loop between design decisions and live product. The tradeoff is that every scope cut is yours alone to make, and every legal claim on the site is ultimately your responsibility to verify. Building the [VERIFY] tag system was less about organization than about creating a structural place for epistemic humility — a way to keep the product honest about what I know, what I'm unsure about, and what needs external review before it goes in front of users.