Fresh Greens.exe

Product design + engineering · 2025–2026

Fresh Greens

A navigation tool for Black drivers at different stages of a drive.

Role
Solo, design and engineering
Scope
Six interviews helped me frame three problems: Plan, Respond, and Trust.
Outcome
Working React Native prototype across 26+ screens.
Open proofTry the safety-flow reconstruction
Fresh Greens welcome screen on a phone, with an illustrated Black driver at sunrise.
Timeline
Sep 2025 – Jun 2026
Tools
Figma, Illustrator, Claude, React Native, Expo, TypeScript, Supabase

FrameEvidence state: Observed1 of 6

Car culture and South Jersey go hand in hand

I moved there from Brooklyn as a kid. Driving was the only practical way to get around, but I didn't know New Jersey like the back of my hand.

Whether I was dropping my mom at the bus station early or driving back from Cape May late, there were stretches that made me uncomfortable. The roads would start to break down a bit. Confederate flags would appear. Reception would become unreliable. All of the spooky pieces started falling into place.

I'd slow down, avoid backroads, and keep my wallet and phone close. Then I'd wonder what would happen if the car broke down right there. I didn't know whether that discomfort was mine alone, so I spoke with six Black drivers across the South, ages 19 to 34.

ResearchEvidence state: Observed2 of 6

What I heard from six Black drivers

Qualitative interviews were new to me, but I tried to navigate them like everyday conversations. Unfortunately, I wasn't the only person getting the heebie-jeebies during a drive.

Drivers already relied on tools like Google Maps.

Plan

Drivers couldn't compare the conditions they cared about across routes before choosing. All six mentioned daylight, five mentioned road conditions, five mentioned police presence, and three mentioned wildlife.

Respond

Drivers talked about police encounters and keeping help close when something went wrong.

Trust

Five of six asked family or friends before trusting an unfamiliar place.

Six interviews can't represent every Black driver.

PlanEvidence state: Built3 of 6

1. Compare route conditions before choosing

I knew Fresh Greens had some utility. Begrudgingly, my first idea was a Google Maps plug-in. I showed it to my thesis advisor. He was content, not impressed. The thesis was getting lost inside Google's framework. I was about a month from delivering it, so I kept the information architecture and started over visually.

I returned to the Green Book for the visual system. Its palette became a reference, not a claim that Fresh Greens is its digital successor. Source: Smithsonian National Museum of African American History and Culture.

On a trip from Chicago to rural Georgia, the driver needs to see where natural light fades, where artificial light picks up the slack, and what unknowns to account for. The driver isn't expecting perfection, but they are expecting the clarity and autonomy to choose a route that they can feel adequately prepared for.

The current build still labels the top option "Safest route," ahead of the research. It needs to explain the tradeoff and leave the choice with the driver.

Implemented route controls

Compare the conditions attached to each option.

1 of 3
10 hr 48 minSafest route with current conditions
Arrival
Arrive 7:10 PM
Distance
708 mi
Low lightRoad

More daylight near departure

Portfolio reconstruction of the implemented pre-drive controls. The route values are representative route data.
View the visual pivot and daylight reminder
  1. First pass

    I first put Fresh Greens inside Google Maps. The safety criteria were there, but Google's route still controlled the screen.

  2. Standalone app

    The standalone preview lets the driver compare daylight, route conditions, and trusted places before choosing.

Daylight came up in all six interviews

A daylight departure reminder.

I built the reminder around that pattern.

  1. 1. Pick a timeLeave before the light fadesSchedule
  2. 2. Ask in contextAllow notifications?Not nowAllow
  3. 3. Remind
    Fresh Greensnow
    Time to head out

    Leaving now gives you more daylight.

Notification access comes after Schedule.

Asking up front felt deceptive.

Portfolio reconstruction of the implemented Schedule, permission, and notification states. The reminder is built in the prototype. It hasn't shown that people leave then or that a trip is safer.

What this showsRoute cards show some of the reasons behind a recommendation. Fresh Greens waits until someone taps Schedule before asking for notification access.

BoundaryThe prototype does not prove that a preferred route is safer. Its current Safest route label overstates the evidence, and the reminder has not been shown to change behavior.

RespondEvidence state: Built4 of 6

2. Keep four support paths one tap away during a stressful moment

Worst comes to worst, a Black driver needs to be informed. A police encounter can be a lot to juggle. One tap opens four support paths, including the pulled-over flow.

Interactive case-study reconstruction

This shows one path through the prototype.

Toolkit

The toolkit starts with ‘What’s going on?’

Four paths stay behind one control.

Question

One question comes before the microphone request.

All three answers carry equal visual weight.

Reassurance

Recording starts when microphone access is available.

Guidance comes next, with a trusted contact one step away.

Contact

Recording and trusted-contact actions stay visible.

The screen confirms that nothing has been sent.

I haven't tested this flow with drivers yet, let alone during a real encounter.

TrustEvidence state: Needs proof5 of 6

3. Show what influenced a route recommendation

People just need transparency into how the app is doing what it claims it does. Route chips and cards show public sources and community-report influence. The full score and its weights aren't exposed yet.

Reports stay on the device first. With Supabase configured, they enter moderation.

Current prototype limit:One report creates a scored zone and can affect route ranking. I haven't added corroboration weighting, visible contributor provenance, or route-level trust tiers yet.

Implemented route link

Show where a community report affected the preview.

1. Report detail

Felt unsafe

Community report · Near this route

On your selected route — it counts toward the community flag in your preview.

2. Route preview

10 hr 42 min2 of 3

6 min faster

Community flag
Portfolio reconstruction of the implemented report-to-route link. One report can affect ranking in the current prototype. This shows influence, not corroboration or proof that a route is safe.
View the moderation path

Configured cloud

Queued

Investigation

  • Source device
  • Same-spot reports
  • Nearby reports
  • Duplicate IPs and devices

Decision

Reviewed, hidden, restored, or removed

What this showsReports stay on the device first. With Supabase configured, they can enter the moderation path.

BoundaryOne report can affect route ranking now. Corroboration from distinct contributors, visible provenance, and route-level trust tiers are not built yet.

ValidateEvidence state: Needs proof6 of 6

What I built and what I still need to test

I used Figma to set the initial rules, then built them in code. A spacing problem became a shared theme rule.

Search broke first. My own address was sitting in Recent, so a places-only search looked functional. I added street addresses and separated Recent from live results.

The prototype still hasn't shown that a route is safer, its explanations earn trust, or its support flow holds up under stress.

Next, I'd learn from Black drivers 55 and older by watching where Fresh Greens fits, where it asks for too much, and what I need to change.

Built now

  • Plan: route comparison, source cards, departure and refuel reminders
  • Respond: four support paths, on-device recording when available, and user-controlled contact handoffs
  • Trust: local-first reports and configured moderation

What remains

  • Plan: broader route-quality testing before any safety claim
  • Respond: real-device stress-state and failure-mode testing in configured builds
  • Trust: route-level corroboration by distinct contributors, provenance, trust levels, and moderation transparency
See how the data reaches route scoring
OpenStreetMaplighting · landuse · parksOSRMroute geometrySunCalcsolar geometryMapbox SearchdestinationsDOT-511demo adapterlive feed not wiredMapbox incidentsdriving-traffic eventsOpen-Meteoweather + visibilityCommunity reportslocal-first · Supabase when configuredAdapter layerConverts provider responses into typed app data.Scoring layerScores the same inputs the same way.Screen layerRenders the result.
Community reports are local-first. Supabase, row-level security, device checks, and moderation activate only when configured. Scroll the diagram to read it all.
En-route prototype on a simulated route.