About conconlive.com
Live BART trains and Bay Area traffic on one screen, built for SFO.
https://conconlive.com · also at https://conconlive.work · Last updated 14 October 2026
conconlive shows where every BART train is right now, what the Bay Area freeways are doing, what the airport itself is doing — down to the aircraft landing and taking off — and how long it takes to get from SFO to the places people ask about. It is designed to be read from across a room — on an office TV that nobody touches for weeks — as well as on a desktop or a phone.
This page covers what you see on the site, how to use each mode, and how it works behind the scenes.
About this site
- Owned and run by Colby Concon.
- Vibe coded with Claude Code. The site was built by describing what it should do — and what was wrong with it — to Claude Code, Anthropic's AI coding assistant, which wrote the code, tested it and deployed it. The map, the data pipeline, presentation mode and this page were all made that way. Changes are tried on a separate local copy of the site before they go live.
- Runs on a home server. Everything — the web server and the service that gathers the data — runs on a server in Colby's home, published to the internet through a Cloudflare Tunnel, so the home network has no open ports.
- Independent. conconlive is not affiliated with BART, CHP, Caltrans, Google, Mapbox, the FAA, the National Weather Service, adsb.lol, any airline, or SFO or any other airport. It uses their public data and services.
Contents
- About this site
- At a glance
- What's on the screen
- Display modes
- Presentation mode
- How "backed up" is decided
- How severity is decided
- Staying live on an unattended screen
- How it works
- Where the data comes from
- Cost controls
- Privacy policy
- Security
- Accuracy and limitations
- Quick reference
At a glance
| Feature | What it gives you |
|---|---|
| Live BART map | Every train in service, drawn on the real track in its line's colour, pointing the way it's travelling |
| Station departures | Click any BART station for its next trains, by destination |
| Live traffic | Google's live traffic colours on every road, plus CHP incidents and Caltrans lane closures |
| From SFO board | Travel time from SFO to 12 Bay Area cities, by BART and by car, with the car time coloured by congestion |
| SFO now | The airfield: the runways landing and departing, live aircraft on the map, landings and takeoffs in the last hour, what's on final, the ATIS's taxiway closures and notices, the FAA's delays, the weather as pilots get it and the forecast — and any emergency squawk, go-around or holding the aircraft show |
| Weather alerts | National Weather Service alerts in force over the Bay Area — heat, wind, flood, fog — on the alert band and the region slides |
| Air quality | The air quality index beside each city's weather |
| Alert band | Emergency squawks and flight delays at SFO, BART advisories, weather alerts, major CHP incidents and major closures, rotating along the bottom |
| Freeway conditions | A per-freeway summary of what's happening on each corridor |
| Presentation mode | A hands-free tour: the airfield with its live flights, each BART line in turn, then each region's traffic, then any real backups |
| Presentation settings | The cog beside the Presentation mode button: choose the slide time and which slides the tour shows |
| TV link | One link that opens the tour on a TV with the settings you chose, so every screen in a room can be set up the same way |
| TV mode | Big type, no cursor, no controls — made for a wall screen, with a code to scan that opens the site on your phone |
| Traffic cameras | Backup slides show the nearest Caltrans camera — live video when it's up — and mark where it is on the map |
| Self-healing | Recovers from network drops and stale data on its own; no one needs to refresh it |
What's on the screen
The map
- BART trains are drawn as small train cars in their line's colour, with a white outline so they stand out against the line beneath them and a pointed nose showing direction. A moving train has a lit windscreen; a train stopped at a platform does not. Click or tap a train for its line, destination, next stop, arrival time, any delay and how many cars it has.
- BART lines are drawn along the real track alignment — Yellow, Blue, Red, Green and Orange. (The Oakland Airport connector is not drawn: BART publishes no live data for it, so it would only ever appear empty.)
- Stations are shown as small dots. Click or tap one for its next trains: each destination with a dot in its line's colour and the next two or three departures in minutes, and a note when the next one is running late. The list keeps itself current while it is open. (See How station departures work.)
- Live traffic — the green / yellow / red road colouring — is Google's own live traffic layer, the same one you see in Google Maps.
- CHP incidents are coloured dots: red for major, amber for moderate, blue-grey for minor. Click one for the incident type, location, time and the CHP dispatch log.
- Caltrans lane closures are shown as small purple diamonds. Click one for the route, location, county, lanes closed, any estimated delay and the kind of work.
The top bar
- The About button beside the conconlive wordmark opens this page; the Live map button at the top of this page takes you back to the map.
- The What's New button next to it opens a box listing the latest changes and additions to the site, newest first. Esc, the × or a click outside closes it.
- The clock, a Last updated counter, and the age of BART's own feed. The counter always shows seconds, so you can see at a glance that the page is alive. It turns amber if nothing has updated for a minute and red after three.
- The From SFO board scrolls across the top: travel time to Downtown SF, Daly City, San Mateo, San Jose, Fremont, San Leandro, Oakland, Berkeley, Richmond, Vallejo, Benicia and Concord.
- BART time comes from BART's published schedule, including transfers. Cities BART doesn't reach say "no BART".
- Car time is the drive right now, with live traffic, and is coloured by how congested the route is: green light, yellow moderate, orange heavy, red standstill. A small key sits under the board.
- On a TV, a code to scan sits in the top right corner, marked On your phone. Point a phone's camera at it and it opens conconlive.com. The code is a fixed picture kept on the site itself; scanning it involves no other service.
The side panel
- SFO now — the airport itself:
- Flights — No FAA flight delays, or what the FAA has in force at SFO: a ground stop (departures to SFO held at their origin), a ground delay program with its average and longest delay, or arrival or departure delays, each with the FAA's stated reason.
- Runways — the current ATIS letter and the runways landing and departing (for example ATIS H · landing 28L 28R · departing 1L 1R).
- Movements — how many landings and takeoffs the site has seen in the last hour (see How SFO now works).
- Conditions — the airport's own latest weather observation: wind, visibility and the cloud ceiling (the height of the lowest layer of broken or overcast cloud). Low cloud is what most often delays SFO. The small tag beside the heading is the flight category pilots use: VFR (good), MVFR (marginal), IFR or LIFR (low cloud or poor visibility).
- Next BART from SFO — the next trains out of the airport station, by destination.
- Freeway conditions — one tile per freeway (US-101, I-880, I-80, I-280, I-580, I-680, SR-17 and so on), worst first, showing how many incidents and closures are on it and any published delay. The main Bay Area corridors always appear, even when quiet, so a rural closure never pushes them off the screen.
- Traffic — a scrolling list of every current incident and closure, with tabs to switch between the two.
- Layers — checkboxes to show or hide trains, lines, stations, incidents and closures.
The alert band
The strip across the bottom rotates one item at a time, with a progress bar showing when it will move on:
- SFO — an aircraft within about 35 miles of SFO squawking an emergency code (7700 emergency, 7600 radio failure, 7500) for at least 30 seconds, in red; then any FAA ground stop, ground delay program or arrival or departure delays in force at SFO
- BART service advisories (BART titles every advisory "BART.gov Alert", so the site promotes the actual description to the headline)
- Weather alerts — what the National Weather Service has in force over the Bay Area, such as a Heat Advisory, Wind Advisory, Dense Fog Advisory or Flood Watch: the alert, when it applies (until Fri 6 PM, or Sat 11 AM to Mon 10 PM for one that has not started yet), which regions it covers, and the Weather Service's own one-line description. Up to four, worst first.
- Major CHP incidents
- Major lane closures
- A freeway summary — how many freeways are reporting incidents, and which
Weather alerts and flight delays wear an amber label; a severe or extreme weather alert, a ground stop or an emergency squawk is red like a major incident.
Long messages scroll sideways rather than being cut off, and the band waits for the whole message before moving on. If nothing is wrong anywhere, it says so instead of going blank.
The ‹ and › arrows beside the count (for example 2/6) step back and forward through the items by hand. The item you land on gets its full time on screen, then the rotation carries on by itself. On a phone or tablet you can also swipe the band — left for the next alert, right for the previous. On a TV the arrows fade out with the mouse cursor.
Display modes
Add these to the end of the address:
| Address | Best for |
|---|---|
conconlive.com |
Normal use on a desktop, laptop or phone |
conconlive.com/?tv=1 |
An office TV: larger type, no cursor, no buttons, map can't be knocked out of place by a stray touch |
conconlive.com/?tv=1&present=1 |
A TV that starts in presentation mode straight away |
?tv=1&dwell=15 |
TV mode with each alert shown for 15 seconds (default 11) |
?present=1&stage=20 |
Presentation mode with 20 seconds per stage (default 16). Once a slide time is chosen in Presentation settings, that screen uses the setting instead |
| A TV link | A TV that starts the tour with a chosen set of slides — see Setting up TVs with a link |
On a phone the page becomes a normal scrolling page: the map on top, the panel underneath.
Presentation mode
Start it with the Presentation mode button, the P key, or ?present=1
in the address. It tours the network so a room can read one thing at a time:
- SFO now — the airfield, for the people who work it. The map frames the whole field and about ten miles of the approach to each runway in use, with the live aircraft on it: arrivals on final in cyan, departures climbing out in amber, each labelled with its callsign and altitude in hundreds of feet (UAL123 021↓), with a short trail behind it; aircraft on the ground as small grey dots at the gates and taxiways; everything else — overflights, Oakland and San Jose traffic, light aircraft — dimmed. The runways in use are drawn over the field in the same colours, with a dashed line out along each landing runway's approach. Road traffic colours and road incidents are off on this slide; they have their own slides.
The card leads with the runways in use — Landing 28L 28R, Departing 1L 1R — from the airport's ATIS broadcast, with a note if aircraft are seen using a runway the ATIS doesn't list. Under the title: the ATIS letter, the flight category (VFR, MVFR, IFR, LIFR), the approaches in use and the temperature and dew point. Then two rows of figures: - arr and dep — landings and takeoffs seen in the last hour (or since the count last started, when that is sooner, and it says so); on final — aircraft on final approach now; and the FAA status (None, a ground delay program's average delay, or STOP); - wind in knots, with the crosswind (or tailwind) on the first landing runway; visibility in statute miles; and the cloud ceiling in feet. Figures turn amber or red when they are enough to slow the airfield.
Then, most important first: any emergency squawk, go-around or holding the aircraft show (see How SFO now works), with the numbers behind it; what the FAA has in force and why; the ATIS's notices — taxiway closures, bird activity, cranes and the like — in plain words; the next arrivals, with the runway, how far out they are and about how long until they land; the forecast (the next change in flight category from the airport's TAF); and any weather alert covering SFO. The next BART trains from the airport now live in the side panel. 2. Each BART line in turn — Yellow, Blue, Red, Green, Orange. Every other line and its trains come off the map. A card shows how many trains are running, how many are moving, how many are delayed, the worst delay, and where each group of trains is heading next. Any BART advisory for that line is listed at the top of the card, marked ! — and one that applies to the whole system is marked All lines and shown on every line. Each shows three lines; a longer one holds still for a couple of seconds so you can read the start, then scrolls up slowly to show the rest, and repeats. BART doesn't say which lines an advisory is about, so the site reads it: the lines it names, the lines serving both ends of a stretch it names ("between Union City and Warm Springs"), and the lines serving any other station it names. 3. Traffic by region — San Francisco & Peninsula, East Bay, South Bay, Marin County and Solano County. Each shows Google's live traffic plus that region's incident and closure counts and the worst incidents by name. The counts only include what is visible on screen. A Weather now panel on the left lists the weather at each of the region's main cities — the sky, the temperature and, under it, the air quality index (AQI) — numbered, with a matching numbered marker on the map at each city — solid cyan with a white rim, unlike anything else on the map. Any weather alert covering the region's cities heads the panel, with when it applies. The AQI figure changes colour with the air: green when it is good (0–50), yellow moderate (51–100), orange unhealthy for sensitive groups (101–150), red unhealthy (151–200), purple very unhealthy (201–300) and maroon hazardous (above 300). From orange upward the band is also written out beside the city, so the colour is never the only thing saying it. The airport slide shows SFO's AQI the same way. The markers are half see-through, so the traffic colours under them still show. The cities light up one at a time: the row glows in the panel while its marker turns solid, grows and pulses, so you can find each one at a glance. The map is framed to the right of the panel, so it never covers the region's traffic:
| Region | Cities |
|---|---|
| San Francisco & Peninsula | Downtown SF, Daly City, SFO, San Mateo, Palo Alto |
| East Bay | Hercules, Richmond, Walnut Creek, Berkeley, Oakland, Hayward |
| South Bay | Fremont, Mountain View, San Jose, Cupertino |
| Marin County | Novato, San Rafael, Mill Valley, Sausalito |
| Solano County | Dixon, Vacaville, Fairfield, Vallejo, Benicia |
Each list runs north to south, so reading down it moves steadily down the map.
- Backups — up to three stages that zoom right into a road that is genuinely backed up right now: the worst incident backups and, in weekday rush hours and weekend daytime, the worst everyday jams (see the next section). Each card shows the measured speed and what has been reported there, and the nearest Caltrans traffic camera plays in a small window at the bottom left — live video where the camera's stream is up. The backed-up stretch itself glows on the map — a soft white halo either side of the road that slowly brightens and fades — so it stands out from every other road, including the other red ones. The road itself is left clear inside the halo, so Google's live traffic colours on it stay exactly as Google draws them. A camera icon on the map marks where the picture is being taken from, with a wedge showing which way it looks (see Traffic cameras). The map keeps the backup itself in the clear space between the camera window and the card. These stages only appear when something is actually jammed; on a clear day the tour is just the airport, the lines and the regions.
Controls. A row of buttons along the bottom of the presentation card:
| Button | Key | What it does |
|---|---|---|
| ‹ Back | ← | Go back one slide |
| ❚❚ / ▶ Pause / Play | Space | Hold the current slide for as long as you like, then carry on |
| › Forward | → | Skip ahead one slide |
| Esc | Leave presentation mode (or use the Exit presentation button) |
The slide number (for example 3/9) sits beside the buttons. It counts only the slides that will actually show: with the default settings a clear day's tour is 11 slides, and each measured backup adds one.
The card sizes itself to the screen. On a smaller screen it shows fewer list rows rather than covering the alert band at the bottom.
- Pausing stops the timer and the progress bar where they are, and shows an amber PAUSED badge. The slide keeps updating with live data while paused. Pressing play carries on from where it stopped.
- Back and Forward work while paused — the tour stays paused on whichever slide you land on, so you can flick back to find a slide and it will hold.
- On a TV the buttons fade out with the mouse cursor after a few seconds and come back when the mouse moves or the screen is touched. The PAUSED badge never fades, so a paused TV can't be mistaken for a frozen one. A pause holds until someone presses play — it does not resume on its own.
The map glides smoothly between stages, and incoming data updates the card in place without resetting the timer. Motion is turned off for anyone whose device asks for reduced motion.
Presentation settings
The cog button beside Presentation mode opens the tour's settings:
- Slide time — how long each slide stays up, from 6 to 60 seconds (16 by default). Drag left to speed the tour up, right to slow it down.
- Advanced: time per slide — open it under the slider to give each kind of slide its own time, typed in exact seconds from 3 to 120: SFO now, each BART line, each traffic region and each backup. For example SFO now for 20 seconds, the BART lines for 5 and the regions for 10. A box left empty uses the slide time above, which it shows in grey. The heading says how many are set, and opens by itself whenever any is.
- SFO now — the airfield slide, with the live flights, that opens the tour.
- BART lines — whether the tour shows the line slides at all, and, while it does, which lines: Yellow, Blue, Red, Green and Orange can each be switched off. The list only appears while BART lines is on.
- Regional traffic — whether the tour shows the traffic slides, and which regions: San Francisco & Peninsula, East Bay, South Bay, Marin County and Solano County. The list only appears while Regional traffic is on.
- Weather — the city weather, air quality and weather alerts on the traffic slides, and the weather on the airport's and a backup's card. (The airport slide's wind, visibility and ceiling stay: they are what that slide is about. Weather alerts on the alert band stay too.)
- Highlight major backups — the slides that zoom in on a backed-up freeway, with its camera.
Changes take effect straight away, even mid-tour: switch off the slide that is on screen and the tour moves on to the next one still on. Defaults puts every setting back as it was. Settings are remembered in that browser, so each TV keeps its own choice through reloads and site updates. If every slide is switched off, the box says so and the card reads No slides selected until something is switched back on; with only backups on and nothing backed up, it reads No major backups and checks again at each turn. The cog stays on screen in TV mode, beside the Presentation button, and fades with the cursor like it.
Setting up TVs with a link
At the bottom of Presentation settings, Set up a TV shows a link, and Copy TV link copies it. The link opens the site in TV mode with the tour already running and with exactly the settings in the box — the slide time, any per-slide times and which slides are on. Make it the start page of a TV's browser, and give the same link to every screen that should show the same tour. For example:
conconlive.com/?tv=1&present=1&stage=20&sfo=1&lines=yellow,red®ions=sf,eastbay&weather=1&backups=1×=sfo:20,lines:5,regions:10
| In the link | Means |
|---|---|
stage=20 |
20 seconds per slide |
sfo=1 |
The SFO now slide is on (0 for off) |
lines=yellow,red |
The BART lines to show — all, none, or any of yellow, blue, red, green, orange |
regions=sf,eastbay |
The regions to show — all, none, or any of sf, eastbay, southbay, marin, solano |
weather=1 |
Weather on the slides (0 for off) |
backups=1 |
Backup slides (0 for off) |
times=sfo:20,lines:5,regions:10 |
Per-slide times in seconds, for any of sfo, lines, regions, backups; a kind not listed uses stage=. Left out when none is set |
A screen opened from such a link takes its settings from the link every
time it loads, whatever that browser had saved before — that is what makes a
row of TVs agree. If someone changes a setting on that screen, the change is
written into the page's own address as well as saved in the browser, so the
screen keeps it through reloads and site updates; a TV whose start page is the
original link goes back to the link's settings when it is next switched on. An
address without any of these keeps working as before: settings come from the
browser, and stage= only sets the slide time until one is chosen. The link
is only an address; nothing about it is stored on the site.
How "backed up" is decided
CHP and Caltrans report what happened — a collision, a lane closure — but not what it is doing to traffic. A closed off-ramp or a fender-bender on the shoulder can sound serious while traffic flows normally past it.
So before the site calls a road backed up, it measures it:
- It picks the most significant freeway incidents and closures.
- For each one, it asks a live-traffic routing service (Mapbox) to drive the last couple of kilometres leading up to the incident, in the incident's direction of travel — the stretch where a queue would form.
- It checks that the route really is on that freeway and in that direction. (On the double-deck Bay Bridge, for example, it makes sure it measured the right deck.)
- Only if that stretch is heavy or at a standstill — or averaging 22 mph or less over at least a mile — does a backup stage appear. (The speed rule matters because the routing service judges slowness against each road's normal speed, and can call a 21 mph crawl merely "moderate".)
The backup card leads with that measurement — for example HEAVY traffic, 18 mph over the last 0.8 mi — so anyone can check it against the colour of the road behind it. It then shows the incident's severity or the lanes closed, the weather at the spot, and the CHP log or Caltrans work order explaining it.
If a spot can't be measured reliably, no backup is claimed. Readings are refreshed about every 15 minutes, and a card disappears once the incident clears.
Everyday rush-hour jams
Congestion with nothing reported — an ordinary rush hour — is found by scanning the main commuter routes directly — on weekdays, 6–10 am and 3–7 pm, and on weekends, 10 am–8 pm, when weekend traffic peaks. The site checks these routes in both directions, except where noted:
| Route | Stretch |
|---|---|
| I-80 | Bay Bridge; Emeryville to Richmond; Carquinez Bridge to Fairfield; Fairfield to Vacaville |
| I-880 | Oakland to Hayward; Fremont to San Jose |
| US-101 | San Francisco to SFO; to the Bay Bridge (northbound, Alemany through the Hospital Curve to I-80); San Mateo to Palo Alto; Mountain View to Santa Clara; Sausalito to San Rafael; San Rafael to Novato |
| I-280 | Peninsula |
| I-580 | Oakland to Dublin; Richmond–San Rafael Bridge |
| I-680 | Walnut Creek to Dublin; Benicia Bridge to Cordelia |
| SR-37 | Novato to Vallejo |
| SR-24 | Caldecott Tunnel |
| SR-92 | San Mateo Bridge |
Each check drives the whole stretch through the live-traffic router, pinned to that freeway and direction, and finds the worst continuous run that is heavy, at a standstill, or crawling at 22 mph or less for at least three quarters of a mile. That run becomes a backup slide showing its length and average speed, anything CHP or Caltrans has reported inside it, and a camera. Stretches are rechecked about every 40 minutes, and every 20 while jammed, so a cleared jam drops off. If an incident backup already covers the same queue, the incident's slide is shown instead.
Outside those hours only incident-based backups are checked; congestion still shows in the map's traffic colours.
Traffic cameras
Every backup slide shows the nearest Caltrans traffic camera on the same freeway, preferring one that faces the jammed direction, in a small window at the bottom left of the screen (above the card on a phone):
- LIVE — the camera's live video, when its stream is up. About half of Caltrans's streams are working at any time, so each one is checked first. Streams also drop out for a few seconds at a time; the page retries, and keeps trying every couple of minutes while the slide is up.
- STILL — otherwise, the camera's latest photo, refreshed every minute.
Caltrans often replaces a camera's photo with a white Temporarily Unavailable card — at times more than a third of its cameras at once. The site looks at each photo before using it and passes over one showing that card, or one washed out to white by low sun, for the next camera along the road. A few cameras on US-101 in Mountain View and Sunnyvale that point at a ramp, a curb or a side street instead of the freeway are skipped too.
On the map, a cyan camera badge marks the camera's position, and the same badge sits beside the camera's name under the picture so the two are easy to pair. A small dot is the exact spot; the badge stands just to one side of the road so it doesn't cover the traffic colours, and an outline wedge shows which way the camera looks. Caltrans publishes where each camera is but not where it is pointing — operators pan them — so the direction is the view named in the camera's title where it has one ("Looking West"), and otherwise the site's best estimate: along the road toward the backup, which is the view the camera was chosen for. The position is exact; treat the direction as a guide.
The video and photos come straight from Caltrans to your screen.
How severity is decided
Incidents and closures are sorted into major, moderate and minor. The rules focus on the road, not how alarming the report sounds.
CHP incidents
| Severity | Examples |
|---|---|
| Major | Injury or fatal collisions, collisions with unknown injuries, SigAlerts, vehicle or brush fires, landslides |
| Moderate | Non-injury collisions, hit-and-runs with no injuries |
| Minor | Road hazards, debris, animals on the road, other reports |
Incidents CHP has closed are removed, even though they stay in CHP's own feed for a while afterwards.
Caltrans lane closures
| Severity | When |
|---|---|
| Major | A freeway or highway fully closed, or a published delay of 20+ minutes |
| Moderate | Half or more of the lanes closed, or a published delay of 10+ minutes |
| Minor | Everything else — and every ramp, surface street or ferry closure, since those divert traffic rather than back it up |
Only closures that the work crew has actually set up are shown — not ones that are merely scheduled.
Staying live on an unattended screen
The site is built to sit on a wall for weeks without anyone touching it.
- Everything refreshes by itself — trains about every 15–20 seconds, station departures and the airport's status every half minute, traffic every minute, BART advisories every couple of minutes, and backup readings, weather and weather alerts every few minutes.
- Network drops are recovered automatically. A failed update retries within seconds and keeps trying. A TV that sleeps, loses Wi-Fi or throttles its browser catches up the moment it's back.
- If nothing updates for five minutes, the page reloads itself — but only once the site is answering again.
- Server restarts don't knock screens off. While the server behind the site restarts (for updates, say), an open page keeps showing its last picture, with the status dot red and reconnecting… beside it, and carries on by itself when the server is back. It never reloads onto the error page shown while the site is away, so nobody has to walk over and refresh it.
- If Google's map can't load (for example, the monthly free allowance is used up), the site switches to an OpenStreetMap basemap and keeps showing every train, incident and closure.
-
The status dot and the Last updated counter turn amber, then red, if data goes stale, so a problem is visible from across the room.
-
The site updates itself. Every few minutes an open page checks whether a newer version of the site has gone live. If it has, a banner says so and counts down for a minute, then the page refreshes itself (if the site has gone away in that minute, it waits and tries again later). Refresh now skips the wait; Not now puts it off for half an hour, so a presentation in progress isn't interrupted. Wall screens pick up new features on their own — and a screen that was in presentation mode comes back in presentation mode, on the same slide (still paused, if it was).
How it works
BART CHP Caltrans Mapbox Open-Meteo NWS FAA/NOAA adsb.lol
\ | | | | | | /
v v v v v v v v
┌──────────────────────────────────────┐
│ API service │ polls each source on a fixed timer,
│ (Python / FastAPI) │ cleans and joins the data, keeps a
│ │ ready-made snapshot of each feed
└──────────────────┬───────────────────┘
│
┌──────────────────┴───────────────────┐
│ Web server (nginx) │ serves the page and the snapshots,
│ │ rate limits, security headers
└──────────────────┬───────────────────┘
│ outbound-only tunnel
┌──────────────────┴───────────────────┐
│ Cloudflare │ conconlive.com / conconlive.work
└──────────────────┬───────────────────┘
│
your browser / TV ──► Google Maps (map + live traffic)
- The server does the fetching, not your browser. It polls each source on a fixed schedule and keeps a ready-made copy of the result. Every visitor gets that copy, so a thousand people watching costs BART, CHP, Caltrans or the aircraft feed exactly the same as one.
- The page is plain HTML, CSS and JavaScript with no framework. It asks the server for fresh data on its own timers and redraws only what changed.
- Everything runs on a home server, in locked-down Docker containers, published through a Cloudflare Tunnel that connects outward — the home network has no open inbound ports.
How trains are placed
BART does not publish train GPS positions. Instead, the site takes BART's live arrival predictions, works out which two stations each train is between right now, and places it the right fraction of the way along the real track shape from BART's published map data. Trains follow curves and tunnels rather than jumping in straight lines between dots — measured against the track, they land a median of about 2 metres from it.
Two BART quirks are handled along the way: BART's live feed drops each stop once a train has served it (so the previous station is recovered from the timetable), and the feed doesn't say which line a train is on (so that comes from matching each trip against BART's schedule).
How station departures work
The same BART predictions that place the trains also say when each train will leave every station ahead of it. The site reads them a second time to build each station's list, so a station's next trains are the trains you can see approaching it on the map, and listing them costs BART no extra requests.
- Destinations are named the way the platform signs name them — Antioch, Millbrae, SFO Airport — taken from the last leg of BART's own heading for the trip, not from the last platform the train happens to stop at.
- A train that ends its run at a station is not listed there as a departure.
- The Antioch shuttle is included. BART publishes the diesel trains between Antioch, Pittsburg Center and the transfer platform without a timetable entry, so the site works out what they are from the stations they call at. An unscheduled extra train whose line can't be told that way is left off rather than guessed at.
- Checked against BART's own departure board for the airport station, the two agree to within a minute.
How SFO now works
- Flight delays come from the FAA's national airspace status, which lists every airport where the FAA is holding or delaying traffic. An airport that isn't on that list has no FAA delay — so None means the FAA has no ground stop, ground delay program or general delay at SFO, not that every flight is on time. If the FAA's status can't be read, the site says so rather than showing None.
- Conditions are SFO's own routine weather observation (a METAR), issued about hourly and more often when the weather changes. The forecast is the airport's terminal forecast (a TAF), issued four times a day: the card shows the next change of flight category in the coming twelve hours, or that none is forecast.
- Runways in use, the approach type and the notices come from SFO's digital ATIS — the recorded broadcast pilots listen to before they call the tower — which the site reads every five minutes. The broadcast is terse shorthand (TWY F CLSD BTN TWY B AND TWY L); the site picks out the landing and departing runways and rewrites the notices the airfield acts on — closures, outages, birds, cranes, wind shear, work in progress — in plain words, and leaves out the parts meant only for pilots. If the ATIS can't be read, the card shows the runways the aircraft have actually been using in the last twenty minutes instead, and says so.
- The aircraft come from ADS-B: every airliner broadcasts its position, altitude, speed and squawk code several times a second, and volunteers' receivers pick it up. The site asks adsb.lol, which gathers those receivers' reports, for every aircraft within 35 miles of SFO every five seconds — one request however many screens are watching. Between reports, the map moves each airborne aircraft on along its track at its speed for up to 15 seconds, and eases into each new report rather than jumping.
- Each aircraft's role is worked out from its track, not from a flight plan — free route lookups proved wrong too often. An aircraft is on final when it is within 15 miles of an SFO runway, lined up with it, pointing at it and descending at about the glidepath; departing for ten minutes after it is seen to lift off from SFO. Free data can't say where a flight is going, so traffic for Oakland or San Jose is not counted as SFO's.
- Landings and takeoffs are counted when an aircraft is seen to go from the air to the ground at SFO (or to vanish at a few hundred feet on short final), or from the ground into a climb past 800 feet. The runway is the one it was lined up with. The counts are kept on the server through restarts; after a longer outage they start again, and the card says over how many minutes they run.
- Events are reported only when the track proves them, with the numbers that do:
- an emergency squawk — 7700 (emergency), 7600 (radio failure) or 7500, or the aircraft's emergency status set — held for at least 30 seconds, so a code dialled through by mistake is not reported. It ends two minutes after the code is gone. The site reports the code, nothing more.
- a go-around — an aircraft on final that came down to 1,200 feet or lower within four miles of the runway, then climbed away at 500 feet a minute or more, gaining at least 400 feet, without touching down. It stays on the card for 30 minutes.
- holding — an airliner-sized aircraft at 4,000 feet or above and holding speed that has flown at least one full circuit, turning one way, in one place (within a six-mile circle) over the last ten minutes. The card says where it is holding, not which airport it is waiting for.
- The side panel shows the runways and the hour's counts too, and keeps the next BART trains from the airport station, read from the station departures above.
How weather alerts and air quality work
- Weather alerts — the site asks the National Weather Service what is in force at each of the 24 cities it shows weather for, and merges the answers. That is how an alert is matched to regions: a coastal flood advisory covers the bayshore cities and not the inland ones. An alert that hasn't started yet is shown with its start time.
- Air quality is the US Air Quality Index at each city, from Open-Meteo's air-quality service. It is a modelled estimate for the area, not a reading from a monitor in that city — see Accuracy and limitations.
How the From SFO board works
- By BART: BART's own trip planner, including transfers — free and authoritative.
- By car: a live-traffic route from SFO to each city. The car time is coloured by how much of the journey time is spent in slow traffic, since the congested stretch is the part a driver actually sits through.
- Drive times are re-timed every few minutes, more often during rush hour; BART times hourly, since the timetable changes rarely. Nothing is ever shown as fresher than it is.
Where the data comes from
| Source | What it provides | How often |
|---|---|---|
| BART real-time feed | Live train predictions, and each station's next departures | every 20 s |
| BART service alerts | Advisories for the alert band | every 2 min |
| BART schedule & map data | Stations, track shapes, timetables | daily |
| BART trip planner | BART time on the From SFO board | hourly |
| CHP incident log | Live incidents, Golden Gate (Bay Area) division | every 60 s |
| Caltrans District 4 | Active lane closures, lanes, delay, work type | every 60 s |
| Caltrans cameras | Camera list, live video and photos for backup slides | list every 6 h; video live |
| Google Maps | Basemap and live traffic colours | in your browser |
| Mapbox | Car times on the board, backup measurements, rush-hour scans | paced — see below |
| Open-Meteo | Weather at incidents and at each region's main cities | every 5 min |
| Open-Meteo air quality | Air quality index at each region's main cities | every 20 min |
| National Weather Service | Weather alerts in force at each of those cities | every 10 min |
| FAA airspace status | Ground stops, ground delay programs and delays at SFO | every 2 min |
| NOAA Aviation Weather Center | SFO's weather observation (METAR) and forecast (TAF) | every 5 min / 15 min |
| FAA digital ATIS, via atis.info | SFO's runways in use, approach type and notices | every 5 min |
| adsb.lol | Live aircraft positions around SFO, from volunteer ADS-B receivers. Data © adsb.lol contributors, under the Open Database License | every 5 s |
| OurAirports | SFO's runway positions (public domain) | fixed |
Two feed quirks are handled in code: the CHP feed is often served cut off partway through, so the site keeps every complete record rather than failing on the broken one; and CHP usually logs a freeway incident twice (the CHP desk and the Freeway Service Patrol), so duplicates are merged.
Cost controls
Google Maps and Mapbox charge beyond their free monthly allowances. The site is designed never to pass them:
- A spend ledger counts every billable request per service per month, and refuses any request that would go past the free allowance. It is saved to disk, so a restart can't reset it.
- Usage is spread evenly across the month with a daily ceiling, so a busy week can't use up the month. The day is counted in Pacific time, so if a day's share ever runs short it does so late at night, not during a commute.
- For Mapbox, which does the car times and all the backup checks, the site stops itself at 95% of the free allowance (95,000 of 100,000 requests a month) and at 3,200 in any one day; a normal month uses about 80,000.
- Every map load is counted. If Google's free map loads run out, the site switches to the free OpenStreetMap basemap.
- Backup measurements are capped at one every five minutes, and only run when there's a freeway incident to check.
- Rush-hour scans are capped at five every five minutes, in weekday rush hours and weekend daytime only — at most 600 a day, however much congestion there is.
- When a backup can't be re-checked because the day's share is used up, the site keeps its last measurement for up to 45 minutes, then drops it — it doesn't keep claiming a backup nobody has measured.
- If the ledger can't be read or written, billed requests stop rather than run unmetered.
- Weather alerts, the airport's status, the aircraft, air quality and station departures cost nothing. The National Weather Service, the FAA, NOAA, atis.info and adsb.lol publish theirs free and without a key, Open-Meteo's air quality is counted with its weather, and departures are read from the BART feed the site already fetches. The aircraft are only sent to a screen while it is showing the SFO slide.
Privacy policy
Effective 8 October 2026. This policy covers conconlive.com and conconlive.work, which are the same site. It describes what the site actually does, and it is kept in step with the site: any change to what is collected, stored or shared is made here at the same time and listed in What's New.
In short: there are no accounts, no forms, no cookies, no advertising and no analytics or tracking. The site never asks for your name, your email address or your location. Like every web server, it sees the internet address your device connects from and keeps a short log of requests, which is deleted within days.
Who runs the site
conconlive.com is a personal project owned and operated by Colby Concon, on a server in his home. It is not run by, or on behalf of, BART, CHP, Caltrans, Google, Mapbox or any airport or agency.
What the site collects
A request log — and nothing else. Each time your browser asks the site for a page or for fresh data, the server records one line:
- the IP address the request came from
- the date and time
- what was asked for (the page or data address) and which of the site's addresses was used
- the page that linked to it, if your browser sends one (the "referrer")
- your browser's description of itself (the "user agent": browser and operating system)
- how the request was answered — success or error, its size, how long it took
A screen opened from a TV link has its presentation settings in its address — which slides it shows, and for how long — so those are part of "what was asked for" in that line. They describe a screen's tour, not a person.
That is everything. The site does not collect names, email addresses, accounts or passwords — there is nothing to sign in to and nothing to type into. It does not use your device's location: it never asks for it, and the site instructs browsers to refuse location, camera and microphone access to any code running on its pages.
What the log is used for: keeping the site running, finding faults, knowing roughly how much it is used (how many requests and how many distinct addresses), and noticing abuse. It is not used to identify anyone, not combined with information from anywhere else, and not used to build a profile of any visitor.
How long it is kept: the log is a fixed size and overwrites itself — at
present it reaches back about two to three days. Part of it is also cleared
every time the site is updated. The owner's private monitoring page keeps a
few hundred recent error lines for longer; in those, and anywhere an address is
displayed, addresses are shortened so the last part is removed (for example
203.0.113.x). That page is only reachable on the owner's private network.
What is stored in your browser
The site sets no cookies. It keeps three small items in your browser's own storage, none of which is ever sent to the server or to anyone else:
| Item | What it is | How long |
|---|---|---|
conconlive-present-prefs |
Your Presentation settings: the slide time, any time set for each kind of slide, and which slides are switched on | Until you press Defaults or clear the site's data in your browser |
conconlive-resume |
Whether this tab was in presentation mode, and on which slide, so it can pick up where it was after the page refreshes itself | Until the tab is closed; ignored after 10 minutes |
reloads |
The times of this tab's automatic reloads in the last hour, so they can be limited | Until the tab is closed |
Other services your browser contacts
Using the site means your browser also connects directly to three other services. Each receives what any website receives from a visitor — your IP address and your browser's details — and handles it under its own policy:
- Cloudflare. All traffic to the site passes through Cloudflare's network, which carries it to the home server and protects it. Cloudflare processes your IP address and the details of each request to do that, and browsers may send it a report when a connection to the site fails. Cloudflare can add a visitor-analytics script to pages; this site's security settings block that script from running. See Cloudflare's privacy policy.
- Google Maps. The map and its live traffic colours are Google's, loaded by your browser from Google. Google receives your IP address, your browser's details and the fact that the request came from this site, and may use its own cookies or storage. See Google's privacy policy. If Google's map cannot be used, the site falls back to OpenStreetMap, whose map servers then receive the same kind of information — see the OpenStreetMap Foundation's privacy policy.
- Caltrans. On a backup slide, the traffic camera's photo or live video is loaded by your browser straight from Caltrans, so Caltrans's servers see that request.
There are no advertising networks, no social-media buttons and no analytics services on the site.
The information the site displays comes from BART, CHP, Caltrans, Mapbox, Open-Meteo, the National Weather Service, the FAA, NOAA, atis.info and adsb.lol. The server fetches that on a fixed schedule, the same whoever is or is not visiting; nothing about any visitor is sent to those services.
Sharing
The site does not sell, rent or trade any information, and shares none for advertising. The request log would be disclosed only if the law required it, or as far as needed to stop abuse of the site.
"Do Not Track" and Global Privacy Control
The site does not track visitors across other sites or over time, so it behaves the same whether or not your browser sends a Do Not Track or Global Privacy Control signal — there is nothing for the signal to switch off.
Children
The site is general information about trains and traffic. It is not directed at children and collects nothing from anyone beyond the request log described above.
Your choices
- You can remove everything the site has stored in your browser at any time by clearing this site's data in your browser's settings; the site will work the same, with Presentation settings back at their defaults.
- You can block the other services with your browser or an extension. Without Google Maps the site falls back to OpenStreetMap; without Caltrans, backup slides show no camera.
- The site keeps no account or profile, so there is nothing held under your name to look up or correct. Log lines expire by themselves within days. If you want the lines from your address removed sooner, ask the owner.
Changes to this policy
When the site changes in a way that affects what is collected, stored or shared, this policy is updated in the same release, its date at the top changes, and the change is listed in What's New.
Contact
Questions about this policy, or a request to have the log lines from your address removed, go to the site's owner, Colby Concon.
Security
- Nothing to log into, nothing to submit. No accounts, no forms, no uploads. The site only ever reads.
- No inbound ports. The server is reached only through Cloudflare's tunnel.
- Strict browser security headers — the page can only run its own code and Google Maps'; it can't be embedded in other sites; HTTPS is enforced.
- No ads, and nothing an ad blocker hides. The site carries no advertising, and its page elements are checked against the filter lists common ad blockers use, so running one doesn't hide any of the site's own content.
- Third-party text is always treated as text. CHP logs and Caltrans work orders are displayed, never interpreted as page code.
- Hardened containers — non-root, read-only, with minimal privileges and resource limits.
Accuracy and limitations
- Train positions are estimates, calculated from BART's predictions and timetable — not GPS. They're good for seeing the system at a glance, not for running for a train.
- Freeway conditions in the panel are built from incident and closure reports, not speed sensors. Live speeds are shown by Google's traffic colours on the map, and measured directly only for backup stages.
- Car times and backup readings come from Mapbox's live traffic, which can differ slightly from Google's colours.
- Outside the scan hours, backup slides need a reported incident or closure. Scanning covers the main commuter routes listed above on weekday rush hours and weekend daytime; congestion elsewhere, or at other times, shows in the map's colours only.
- The camera is the nearest working one, within about two miles — it may show the road near the queue rather than its exact head, and a camera can go dark between checks (each photo is re-checked every five minutes).
- The camera icon's direction is an estimate for most cameras: Caltrans doesn't publish which way a camera is pointing. Its position on the map is exact.
- Severity comes from the report type. A "major" incident can still have cleared quickly; backup stages are the ones that confirm real impact.
- Station departures are BART's predictions, the same ones behind the train positions. Each destination shows its next two or three trains, up to an hour and a half ahead; the number of cars isn't published in that feed, and an unscheduled extra train may be missing. Check the platform sign before running for a train.
- "No FAA delays" is about the airport, not your flight. The FAA's status covers airport-wide programs. An airline can still delay or cancel a flight for its own reasons; check with the airline.
- SFO's conditions are an observation, and can be up to an hour old; the forecast line is the TAF's, not the site's.
- Not for operational use. The SFO slide is a picture of the airfield for people who work around it, not a tool to run it by. Aircraft positions come from volunteer receivers and can be late, missing or wrong — especially low down and on the ground — so the landing and takeoff counts are the ones the site saw, not the airport's official numbers. Go-arounds and holding are worked out by the site from the tracks; they are not reports from air traffic control. The runways in use are the ATIS's.
- Some aircraft are shown without a name. Owners on the FAA's privacy programs (LADD and PIA) ask not to be identified, and the site honours that: their aircraft appear, but without callsign.
- Weather alerts are matched to cities, not streets. A region is shown an alert when it covers at least one of that region's listed cities, so an alert for hills or coastline away from those cities may not appear. The National Weather Service's own page is the authority.
- Air quality is a model's estimate. It comes from a regional atmospheric model (Copernicus CAMS, through Open-Meteo), which works in squares tens of miles across — neighbouring cities often share a figure — and it will not catch a local plume the way a monitor on the spot does. For smoke days, use AirNow or the local air district.
- The site depends on public feeds. If BART, CHP or Caltrans have an outage, the affected section shows its last known data, and the status indicators show it as stale.
Quick reference
| I want to… | Do this |
|---|---|
| Put it on an office TV | Open conconlive.com/?tv=1&present=1 full screen |
| Give several TVs the same tour | The cog → choose the slides → Copy TV link, and make that link each TV's start page |
| Open the site on my phone from a TV | Scan the code in the TV's top right corner |
| See a station's next trains | Click or tap the station's dot on the map |
| See if flights are delayed at SFO | SFO now at the top of the side panel, or the first slide of the tour |
| See which runways SFO is using | The big line under SFO now on the tour's first slide, or the side panel |
| Start or stop the tour | Press P, or use the Presentation mode button |
| Hold a slide to look longer | Press Space or the pause button on the card |
| Step through slides | The ‹ / › buttons on the card, or ← / → |
| Leave presentation mode | Esc |
| Slow the tour down, or speed it up | The cog beside Presentation mode → Slide time (or add &stage=25 to the address) |
| Choose which slides the tour shows | The cog beside Presentation mode; Defaults puts them all back |
| Hide trains or closures | Use the Layers checkboxes in the side panel |
| See an incident's details | Click or tap its dot on the map |
| Check the page is alive | Watch the Last updated counter tick |
| Read about the site | Click About next to the conconlive wordmark |
| See what's changed lately | Click What's New, next to About |
| Go back to an alert that just scrolled past | The ‹ arrow on the alert band at the bottom |
| Pick up a site update on a TV | Nothing — open pages refresh themselves within a few minutes |