A wayfinding app for Black travel in America. Routes that limit exposure to hazards and maximize daylight, with community safety observations weighted alongside public data.
9:41▮▮▮▮ ▼
Along this route
All clear · lit corridor
2 unlit segments
Arrive 14m after dusk
Role
Solo · design + engineering
Stack
React Native · Expo · TypeScript
Timeline
~3 months · 2025
A lineage older than the app store.
The Green Book guided Black travelers across mid-century America by cataloguing the homes, restaurants, and stops where they could be received in safety. It was a wayfinding system built on community knowledge because no institutional one existed.
That lineage hasn't ended; the questions have only updated. Where is the lit corridor? Which stretches are over-policed? Who got home after dark last week, and what route did they take?
Fresh Greens treats those questions as a routing problem. The thesis argument is narrower and sharper than "an app for safety": whose safety knowledge counts when the route is computed? Public data and community observation flow through the same scoring pipeline, weighted with the same audit trail.
Three layers. Each does one job.
Every safety decision in the app traces to a public, auditable data source — never to a black-box model. The architecture exists so that stance survives implementation.
The scoring layer is the load-bearing one. It's a pure function: same inputs always produce the same routing decision. That means a user can ask why this route and the answer is reconstructible from the data the system already exposes. Reproducibility is the ethical commitment, not a side effect.
Community reports flow through the same pipeline as OpenStreetMap. They aren't a separate "social layer" bolted on. The thesis is that they shouldn't be.
What ships.
Seven shipped surfaces, each captioned with what it does and why it serves the thesis.
01
Route preview that shows its work
Three public data sources score the candidate route, then the preview surfaces hazard chips alongside an all-clear chip — a briefing, not an alarm.
Thesis → Trust scales when the system narrates its reasoning. The chips are the audit log made legible.
02
Daylight-aware route, color-graded
The polyline shifts orange → mauve → indigo across segments as the sun sets along your projected arrival; paired with a dash pattern so the cue isn't color-only.
Thesis → Solar geometry is a literal safety input. Color carries the meaning; the dash pattern keeps it WCAG-readable.
Trusted by your community
Family-owned · grocery
03
Multi-row community browse
Google-Maps-style stacked discovery rows, led by 'Trusted by your community' — surfaced before any sponsored or algorithmic row.
Thesis → The order signals the priority. Community-vetted places appear first because the thesis is they should.
04
En-route safety column
A persistent side-button column during navigation: safety menu, fast report, SOS. Reachable from the driving thumb position.
Thesis → Safety controls earn screen space when you need them most. They don't hide in a settings tray.
● REC
Stay still.
Recording for protection. Hands visible.
05
/pulled-over · five-phase safety surface
Ambient audio recording, trusted-contact wiring, firearm-guidance copy from the ACLU. A state machine that defaults to composure.
Thesis → The most charged moment of the product gets the calmest surface in the design.
06
iOS grouped settings register
Six settings pages share one register: native-feeling grouped lists, real labels, no plastic toggles. Disclosure is honest — scaffolded surfaces are named, not hidden.
Thesis → Honesty of disclosure: UI state reflects real capability. Nothing pretends to do what it doesn't.
Upcoming
07
Connect-Calendar · one-tap safe routing
Read-only access to upcoming located events. A pick-sheet turns any of them into a safe-routed destination without leaving the flow.
Thesis → Wayfinding meets the day you already planned. Less typing, less friction, the same safety pipeline.
Reserved color. Calm, not alarm.
Red, orange, yellow, and navy are UI signals with specific safety meanings here — never decoration. The discipline is what lets a red dot or an orange chip mean something when it appears. Forward actions stay in a calibrated green; nothing in the chrome competes.
RedSOS · imminent risk
Only on the /pulled-over surface and the explicit SOS control.
OrangeHazard chip
Surface-level briefing chips along a route. Never on chrome.
Source freshness, sync state, system rather than safety signals.
GreenIn-flow CTA
The only color reserved for forward action. Calm, not loud.
Daylight as a non-color cue
The route polyline color-shifts with how much daylight remains when you reach each segment. A solid → dashed → dotted pattern carries the same information for users who can't read the hue — WCAG 1.4.1 in the place that matters most.
Solid · daylight remaining
Dashed · twilight
Dotted · night
The charged moment gets composure
The /pulled-over surface is the design's central proof. It's the moment where any safety product reflexively reaches for red and urgency. Fresh Greens reaches for muted greens, generous space, and copy written with the ACLU's guidance — composure as the protective stance.
Process built the same way the product was.
Three months, solo, design and engineering. To hold the thread, I built a custom knowledge graph (graphify) that merged the codebase, the design-decision conversations, and the thesis document into one queryable memory. At any point in the build I could reconstruct why navy is reserved for the safety shield, which shipped surface answers which thesis claim, or what was tried before the chip row landed. The workflow was AI-augmented; the judgment was mine. The graph is infrastructure I built to manage scope, not a tool I prompted. The product's ethic is that every safety decision traces to public, auditable data. The process held itself to the same standard. The app is auditable by design, and so was the work that made it.
Shipped, and what v2 finishes.
Naming what isn't done is part of the thesis stance: honesty of disclosure applies to the case study, not only the product.
Shipped
Zone-aware routing across OSM, OSRM, SunCalc
Daylight-graded route + WCAG dash pattern
Multi-row community browse + side-button safety column
/pulled-over five-phase state machine with audio capture
Connect-Calendar with verified read-only event hookup