Rio Vista Bridge status
A phone-first site that answers one question: is the Rio Vista Bridge open right now?
Visit riovistabridge.com ↗ (opens in a new tab)Solo: concept, design, code, data pipeline, moderation, launch.
- 4,665
- visitors
- 386
- reports
- 80%
- on phones
- Website management
- Public and emergency information
- Analytics and reporting
The problem
The bridge lifts without warning. A wrong guess costs drivers two hours.
Its span lifts for passing boats, sometimes for minutes, sometimes for hours, and no agency posts it. It's the only east–west crossing through this stretch of the Delta.
- vehicles a day
- 21,000
- vehicles a day
- the span climbs for a boat
- 117 ft
- the span climbs for a boat
- the detour when you guess wrong
- 2 hrs
- the detour when you guess wrong

Mobile-first, intention-based design
Designed for the driver's seat
People check it from the car, with GPS open and seconds to spare. So the screen answers one question with one word, readable at a glance, and reporting takes one tap.
One question
Can I cross right now?
One word
OPEN, SLOW, WAIT, SHUT or STALE
One tap
Report what you see at the bridge
- of visits come from phones
- 80%
- of visits come from phones

- OPEN
Cross normally.
- SLOW
Passable, but backed up.
- WAIT
A lift is happening now.
- SHUT
Impassable, and not for a few minutes.
- STALE
Sources went quiet; we won't guess.
How it decides
Many sources, one answer
Five public sources each tell part of the story, and none is reliable on its own. The site reads them all and turns them into one status.
Five sources
- Caltrans lane closuresOfficial · every 3 min
- CHP incidentsOfficial · every 3 min
- Caltrans cameraA live picture of the span
- Marine trafficBoats approaching the bridge
- Driver reportsOne tap at the bridge
Digest and compare
- Each feed is read two ways: what it says, and whether it is working
- Driver reports are weighted by recency; one person counts once
- When people disagree, it leans toward 'span up'
- Sources agree → publishes on its ownBoth official feeds show the closure, 85%+ confidence
- Sources disagree or something is new → pings a moderatorA phone alert with the evidence. A person publishes in about a minute.
- Official feeds go quiet → says STALEAfter 10 minutes of silence, the sign stops guessing.
- source checks since July 23, 2026
- 622,000+
- source checks since July 23, 2026
Built to publish on its own when official sources agree. So far, every one of the 37 incidents was confirmed by a person.
Moderation and training
When sources disagree, a person decides
If the sources conflict or something new comes in, a moderator gets a phone alert with the evidence and publishes in about a minute. So far that moderator has been me: I confirmed all 37 incidents. To share the load with volunteers, many not comfortable with technology, I built a five-minute training.

How the system works
Five minutes, then you have the desk.
A report comes in
One tap sets WAIT; four matching reports confirm it.
You confirm it
Open the report, confirm, set how long. A lift runs 8 to 15 minutes.
Five words on the sign
What each status means and when to use it.
Notifications, tested live
Add to home screen, allow alerts, then a test buzz and a practice run.
Results
Engagement over time
- visitors
- 4,665
- visitors
- page views
- 7,180
- page views
- reports from 304 people
- 386
- reports from 304 people
- incidents, median 16 minutes long
- 37
- incidents, median 16 minutes long
| Date | Visitors |
|---|---|
| Jul 21 | 0 |
| Jul 22 | 0 |
| Jul 23 | 1 |
| Jul 24 | 18 |
| Jul 25 | 11 |
| Jul 26 | 20 |
| Jul 27 | 12 |
| Jul 28 | 12 |
| Jul 29 | 8 |
| Jul 30 | 0 |
| Jul 31 | 5 |
| Aug 1 | 4 |
| Aug 2 | 2 |
| Aug 3 | 2 |
| Aug 4 | 0 |
| Aug 5 | 215 |
| Aug 6 | 380 |
| Aug 7 | 146 |
| Aug 8 | 100 |
| Aug 9 | 51 |
| Aug 10 | 34 |
| Aug 11 | 51 |
| Aug 12 | 31 |
| Aug 13 | 30 |
| Aug 14 | 26 |
| Aug 15 | 23 |
| Aug 16 | 17 |
| Aug 17 | 17 |
| Aug 18 | 14 |
| Aug 19 | 16 |
| Aug 20 | 13 |
| Aug 21 | 29 |
| Aug 22 | 9 |
| Aug 23 | 24 |
| Aug 24 | 35 |
| Aug 25 | 22 |
| Aug 26 | 74 |
| Aug 27 | 29 |
| Aug 28 | 58 |
| Aug 29 | 102 |
| Aug 30 | 70 |
| Aug 31 | 41 |
| Sep 1 | 65 |
| Sep 2 | 43 |
| Sep 3 | 38 |
| Sep 4 | 25 |
| Sep 5 | 18 |
| Sep 6 | 14 |
| Sep 7 | 37 |
| Sep 8 | 23 |
| Sep 9 | 23 |
| Sep 10 | 19 |
| Sep 11 | 15 |
| Sep 12 | 21 |
| Sep 13 | 18 |
| Sep 14 | 23 |
| Sep 15 | 29 |
| Sep 16 | 23 |
| Sep 17 | 30 |
| Sep 18 | 208 |
| Sep 19 | 455 |
| Sep 20 | 154 |
| Sep 21 | 72 |
| Sep 22 | 55 |
| Sep 23 | 72 |
| Sep 24 | 87 |
| Sep 25 | 82 |
| Sep 26 | 64 |
| Sep 27 | 79 |
| Sep 28 | 69 |
| Sep 29 | 49 |
| Sep 30 | 60 |
| Oct 1 | 44 |
| Oct 2 | 41 |
| Oct 3 | 43 |
| Oct 4 | 42 |
| Oct 5 | 43 |
| Oct 6 | 72 |
| Oct 7 | 45 |
| Oct 8 | 67 |
| Oct 9 | 49 |
| Oct 10 | 35 |
| Oct 11 | 58 |
| Oct 12 | 43 |
| Oct 13 | 24 |
| Oct 14 | 27 |
| Oct 15 | 26 |
| Oct 16 | 70 |
| Oct 17 | 63 |
| Oct 18 | 29 |
| Oct 19 | 24 |
| Oct 20 | 37 |
| Oct 21 | 29 |
At launch, local Facebook groups pushed back. Then residents started defending the site and filing reports themselves.
Where visitors came from
- Direct2,942
- Facebook857
- Google722
- Nextdoor52
Lovable analytics and the site's own database, July 21 to October 21, 2026. Incidents from the site's database, July 25 to October 24, 2026, excluding drills and one historical entry.
