TinyBoard NYC
NYC Subway, Bus & Train Times
Free · In‑App Purchases
New: TSA wait times for JFK, LaGuardia, and Newark — check security before you leave. AirTrain JFK departures at every terminal. Plus PATH and NJ Transit maps offline.
Every NYC transit system on one board. Subway, bus, LIRR, Metro-North, NJ Transit, PATH, NYC Ferry, Citi Bike, AirTrain JFK, airport TSA — real-time arrivals, widgets, Live Activities, Siri.
LIVE ACTIVITIES THAT DON'T GO STALE
Track your train from the Lock Screen and Dynamic Island. The countdown updates in real time — not "whenever iOS feels like refreshing." See your track number the moment it posts, without unlocking your phone.
THE WHOLE TRIP, ONE APP
Subway. Bus. LIRR. Metro-North. NJ Transit rail, bus, and light rail. PATH. NYC Ferry. Citi Bike. AirTrain JFK. TSA wait times at JFK, LaGuardia, and Newark. If it moves people around New York, TinyBoard tracks it.
AIRPORT WAIT TIMES
See Standard and PreCheck security lines at every terminal before you leave the house. Search by airline, favorite your terminal, check TSA from your home screen widget.
SERVICE ALERTS, ATTACHED TO YOUR TRAIN
A small badge right on the arrival bullet shows when your specific line has issues. If a direction has zero trains because of a service change, the card tells you why — not just "no arrivals."
HOME SCREEN WIDGETS
Pin your daily stops to your home screen. Glance and go.
ASK SIRI
"When's the next train at 86th Street?" Works with Shortcuts, voice, and Spotlight.
FIND ANY STOP
Search by station name, route, or just tap Nearby to see everything around you — buses, trains, ferries, bikes, all on one list with compass arrows pointing the way.
CITI BIKE, PROPERLY
See ebikes, classic bikes, and open docks at a glance. When a dock is low on what you need, TinyBoard shows nearby docks that have it.
DESIGNED FOR NEW YORK
Clean, information-dense, no ads. Just your arrivals.
TINYBOARD PRO
All transit modes and home screen widgets are free. Upgrade to Pro for unlimited saved stops, Live Activities on the Lock Screen, morning alert briefings, offline transit maps, and iCloud sync.
TinyBoard Pro is available as a monthly subscription ($1.99/month), annual subscription ($14.99/year), or a one-time lifetime purchase ($49.99). Payment will be charged to your Apple ID account at confirmation of purchase. Subscriptions automatically renew unless canceled at least 24 hours before the end of the current period. Your account will be charged for renewal within 24 hours prior to the end of the current period. You can manage and cancel your subscriptions by going to your App Store account settings after purchase.
Terms of Use: https://tinyboard.nyc/terms
Privacy Policy: https://tinyboard.nyc/privacy
more When I’m running to catch my train, I don’t have time to scroll through multiple menus. I’ve pinned my home station and my work station to the start screen and this app simply does the job of letting me know when my next train will arrive.
When I’m running to catch my train, I don’t have time to scroll through multiple menus. I’ve pinned my home station and my work station to the start screen and this app simply does the job of letting me know when my next train will arrive.
So well designed and easy to get just the right info i need for my commute. would love notifications for alerts though!
So well designed and easy to get just the right info i need for my commute. would love notifications for alerts though!
Gets the job done and doesn’t feel bloated and buggy like the official apps. Ya got my $1.99 a month!
Developer Response Honored to have your patronage!
Gets the job done and doesn’t feel bloated and buggy like the official apps. Ya got my $1.99 a month!
Honored to have your patronage!
So fast. Just what I needed.
So fast. Just what I needed.
Accumulate 1.2.5 release notes here as features land.
- Widgets, as many as you want — the upgrade prompt is gone.
- Widget picker shows direction (Eastbound / Westbound) so two saves of the same stop are easy to tell apart.
- Widgets keep showing arrivals through a network blip instead of going blank, and fit as many rows as the size allows.
- Taller map on every detail screen — more street context at a glance.
- Fresh installs land in your system light/dark mode, no permission prompts before you've seen anything.
- New "Rate TinyBoard" link in Settings.
- A pile of tiny fixes: detail screens bounce back from errors, deeplinks land where they should, the freshness pill stops fibbing.
### Mala's Data Quality Corner
- Route badges no longer truncate to "…" on small widgets — the headsign gives, the badge doesn't.
1.2.5 Apr 15
PER-STOP ALERTS. Tap the bell on any station — get a push when something actually goes wrong there. Delays, suspensions, the stuff that changes your plan. Works on Citibike too: get pinged when a station goes offline. (This replaces the morning brief, which never worked right. If you'd set one up, it's gone — ring the bell on the same stops instead.)
The feed's reorganized: one distance-sorted list, Nearby/Favorites switch in the filter button, sort favorites by distance or your own order. Filter to any modality and you'll always see something — even Airport from Manhattan.
Also in this build:
• Three arrivals per card instead of two — see further out without tapping in
• Follow from any card — long-press, tap Follow
• Live Activities survive an app relaunch now (they were quietly dying)
• Search a route (M104, Q70) and get every stop on it, not just five
• Journey view shows a few stops of context before yours
• First-run "which systems do you want" prompt
• Distance slider's gone — server picks the radius
Mala's Data Quality Corner:
• LIRR/MNR times now match the platform signs (Jamaica was reading 2 minutes early — we were showing arrival time, the board shows departure)
• Citibike "No Data" → "Station offline" when that's actually what's happening
• Airport "Security closed" → "Wait times unavailable" when TSA's API just didn't answer
1.2.4 Apr 13
• Follow any train, three on the house. Swipe an arrival — subway, bus,
PATH, ferry, rail, doesn't matter — and you'll get a live countdown on
your lock screen plus a push when the track posts or the timing slips.
First three are free so you can see if it's actually useful before we
ask. There's also a bell on the trip-detail screen now, so you don't
have to back out to follow something you just tapped into.
• When things go wrong, we tell you. A followed train that's running late,
held at the platform, cancelled, or moved to a different track now sends
a push and updates the lock screen — not just the first track posting.
This is the whole reason you follow a train; it shouldn't go quiet the
moment something changes.
• Delayed and cancelled arrivals are marked everywhere now — feed cards,
detail rows, every modality. An amber "L7" next to the time means seven
minutes late; "Cancelled" replaces the time when there's no time worth
showing. Rail's had this; subway, bus, PATH, and ferry catch up.
• Picked a destination on a rail trip? The journey view now rings your
stop and folds the rest into "Continues to Babylon · 16 stops." You see
where you get off, not the whole line.
• Sort lives in the filter button now. One thumb-reach spot for both
"show me only subway" and "sort by distance vs my order."
• Appearance picker is free. It was technically gated but never upsold —
you'd pick Light, it'd silently flip back next time you opened Settings.
That's not a paywall, that's a bug shaped like one.
Mostly under-the-hood this time — making sure the data you've already saved
keeps working as the app grows.
• Tappable rail rows — LIRR, Metro-North, and NJ Transit departure rows
now show a chevron. They were always tappable; the affordance was just
missing. You shouldn't have to discover navigation by accident.
• Fixed a crash when deleting your last alert brief. The toggle next to it
would reach for an array index that just stopped existing.
Mala's Data Quality Corner:
• Select Bus routes are blue with a + now (M15+ instead of M15-SBS), same
as MTA's signage. We'd been painting every bus the same purple and
ignoring the colors the MTA's own API was sending us.
• NJ Transit "scheduled arrival" stopped sliding around with delays. The
scheduled time is the one number on that screen that's supposed to hold
still.
• Metro-North journey view stopped going blank Mar 28 when the server
changed how direction labels are sent. Decoder was being precious about
a field it didn't even need.
• Live Activity badges no longer show "Green'S" — that was an apostrophe
surviving a smart-quote round-trip somewhere upstream.
Tiny stuff:
• Toasts drop in from the top now — they were climbing over the search bar
and ending up halfway up the screen.
• Following a train from the Grand Central "All Departures" board now
shows the bell on the row. The follow worked; the indicator just
wasn't there.
• Settings icons are one size now. Some rows were drawing their own,
some were letting the system pick — they didn't agree.
• TSA card sits at the same height as everything else now. It was a few
pixels short — using a different layout primitive than the rest.
• Widget gate is simpler. The app counts how many widgets you've placed;
the widget just reads the count. Old way involved storing IDs that
could go stale and lock you out of your own widget.
1.2.3 Apr 6
• Tap your Live Activity, land on your train. Following a LIRR or
Metro-North departure now opens straight to that train's stop list —
no more scrolling the departures board to find the one you already
picked.
• Some route badges had white text on yellow. NJT Main Line, the SB
ferry, a few others — invisible. They read now. You'd think this
would have been caught earlier. It was not.
• Detail rows scan a little tighter. Badge column actually aligns
whether the row above is local or express. Separators run to the edge.
The kind of stuff you don't notice until it's wrong.
Mala's Data Quality Corner:
• River LINE was telling you Camden was north. It is south.
• AirTrain's loop trips couldn't tell you which terminal was the
destination because every stop was on the trip. They look at the
sequence now.
• Metro-North alerts at Grand Central were getting lost because the
feed sends a station ID that doesn't match the GTFS station ID.
We translate now.
• A handful of NJT bus stops vanished from the schedule import because
their names had quotes in them and the CSV parser flinched. We
handle the quotes now.
• Subway colors match what the MTA app uses (they nudged a few hexes
in their last refresh; we hadn't).
• Twenty-something other small ones. The validators get pickier every
week.
1.2.2 Apr 1
• Airport Wait Times — TSA security lines for JFK, LaGuardia, and Newark.
Search your airline, favorite your terminal, see Standard and PreCheck
waits before you leave the house. Taxi lines too.
• AirTrain JFK — every terminal, Jamaica, and Howard Beach now show live
departures. The picker knows what connects where ("To Jamaica · E J Z,
LIRR") so you don't have to guess which line gets you out.
• Alert Badges — new setting to tune the warning badge on route bullets.
Off, just delays and suspensions, or everything including planned
weekend work. Your call on the noise floor.
• Four new offline maps — PATH, NJ Transit rail, NJ Transit light rail,
and AirTrain. Settings → Transit Maps.
Mala's Data Quality Corner:
• Bus destinations stopped title-casing acronyms into nonsense. "JFK
Airport" not "Jfk Airport".
• Subway scheduled arrivals that were ghosting alongside their real-time
twin are gone. MTA changed their ID format again; we stopped caring
what the prefix looks like.
• Citibike capacity in search results is a real number now instead of 0.
1.2.1 Mar 30
SMARTER SERVICE ALERTS
A small warning badge appears right next to the arrival time when your train has a delay or reroute — only for your direction, only when it matters.
CITI BIKE, REBUILT
Big clear numbers for ebikes, classic bikes, and open docks. When the dock is empty, nearby docks that have what you need show up right below.
SMOOTHER MAPS
Tap the map and the sheet slides down while the pin recenters — one smooth motion.
PLUS
• The 7 train says "Flushing / Queens" now, not "Uptown"
• Detail pages open faster
• Journey animations respect Reduce Motion
• Long station names fit better at large text sizes
MALA'S QUALITY CORNER
• Split-direction stops show the skip reason when one side is empty
• Bus direction labels now come from the server
• More accurate subway line colors
1.2.0 Mar 28
Accumulate 1.1.10 release notes here as features land.
1.1.10 Mar 26
• Alert Notifications — schedule a heads-up when your stops have delays.
Pick a time, pick your days, pick which favorites to watch. We only
ping when something's actually wrong — no "all clear" spam.
• Track Alerts for LIRR, Metro-North & NJ Transit — swipe any train on
the departures board and we'll ping you the second its track posts.
Tap the notification and you land back on that board. No more staring
at the sign at Penn.
• Trip timeline now fills in behind the bus/train as it moves — progress
bar style. Your stop stays highlighted, the vehicle glides along.
• Alerts now show the reason up front ("Signal problems", "Track work")
instead of burying it in MTA prose.
Mala's Data Quality Corner:
• Citibike stations that aren't accepting returns now flag as out of
service (previously only caught not-renting).
1.1.8 Mar 24
What's new in 1.1.7
• Alerts now know which way you're going. The alert sheet defaults to "Your Direction" — hides the Bronx-bound-skip-stop noise when you're headed downtown. Tap the funnel for the full list.
• Zero-setup widget. Add the TinyBoard widget without picking a favorite — it shows whatever's nearest. Walk somewhere new, it updates. We also added a "Nearest Stop" option in the picker if you want that on purpose.
• Quick Actions — long-press the app icon for your top 3 favorites + nearest stop. One fewer tap on the commute.
• Filter menu moved to the toolbar funnel in Nearby and Search. Dropped the scrollable chip row.
• Accessibility status on Nearby cards — little wheelchair badge that goes amber when an elevator's out.
Mala's Data Quality Corner
• Track numbers at Penn Station and Grand Central departures. Turns out the real-time feed doesn't carry departure tracks at big terminals — only at smaller stations. We now grab them from the same board the MTA app uses. If you were ever standing under the Penn board squinting at track 18 while we cheerfully told you nothing, that was us.
• "Grand Central → Grand Central" arrivals are gone. Trains that terminate at a station aren't useful as departures from that station. We were showing them. We are no longer showing them.
• Scheduled arrivals that say "Arriving" now actually glow amber like live ones. The gate was killing the pulse while the text still said Arriving. Bit embarrassing.
• The [6X] bullet in alert text now renders instead of showing a broken image. We were trying to load a "6X" asset that doesn't exist. The 6 bullet is fine.
• "Downtown [6] trains are running with delays" now correctly files under Your Direction (or hides when you're uptown). The parser only caught "6-bound" — missed bare "Downtown."
• Lane 6 at Hoboken Terminal (and ~165 other NJ Transit bus stops where buses fan out in every direction) now collapses the subtitle instead of showing an empty string next to the name.
1.1.7 Mar 22
What's new in 1.1.6
• Tap the map at the top of any stop to expand it — pan, zoom, and scope out the area. Tap the list to come back. A recenter button lights up once you've wandered.
• Nearby filter pills are now grouped by modality (Subway, Bus, Commuter Rail, etc.) instead of one pill per agency. Six instead of ten.
• The map header is a touch shorter — one more arrival fits above the fold.
• Station names stopped shouting. Long ones marquee instead of cutting off.
• Launching underground now says "No connection" instead of the extremely unhelpful "No Trains." We know there are trains. We just can't see them right now.
• Widget content sits at the top instead of floating in the middle.
• The "in 5 min" countdown on trip journey screens actually counts down now. It was just sitting there. For how long? Unclear. Embarrassing.
Mala's Data Quality Corner
• F express trains (the diamond ones) were briefly crashing the app near stations that serve them. They got a color.
1.1.6 Mar 19
What's new:
- NJ Transit light rail. Hudson-Bergen, Newark, and the River LINE — all 63 stops. Flip it on in Settings under Light Rail. Schedule-based for now (NJT doesn't publish real-time for these yet), so you'll see what's scheduled, not what's delayed. Teal badge for HBLR, blue for Newark, navy for River LINE.
- Plan ahead on LIRR, Metro-North, and NJ Transit rail. Tap "Leaving now" under the trip header, pick a time, see the schedule from that moment. Tomorrow at 6pm? Thursday morning? Scroll the wheel, departures update live. Tap × to snap back to now.
- Train numbers and track info on commuter rail. The departure row shows the train number (#1294, #2770), and if the track changes we'll highlight it. Tap a departure to see the full stop list.
- Stretchy map header on every detail screen. Pull down, the map stretches. Looks nice.
- If in-app purchases are blocked on your device (Screen Time restrictions, Ask to Buy), we now tell you exactly where to fix it instead of just saying "try again." One person hit the buy button eight times over three hours before giving up — that shouldn't happen.
- Cold-start on Nearby is smoother. If your phone hasn't locked onto GPS yet when you open the app, we show you what we can while we wait, instead of a blank screen.
Mala's Data Quality Corner:
- Schedules fill in when real-time is quiet. PATH at 3am, ferry on a slow Tuesday, NJT rail when the feed's having a moment — you'll see scheduled departures instead of nothing. They're labeled so you know the difference.
- PATH and ferry were showing everything as "live" even when the data was schedule-only. The little "scheduled" badge shows correctly now.
- NJT bus feed occasionally sends garbage bytes that were crashing the decode. We catch those and fall back gracefully instead of going empty.
- Fixed a ghost-train thing on MTA bus where a stop that a bus had already passed could briefly reappear as upcoming.
- PATH was showing some trains twice — once from the live feed, once from the schedule, a few seconds apart. The feed also occasionally sends two copies of the same train with slightly different predicted times. Both fixed.
- Station of the Day is gone. It was fun for a minute but nobody was claiming them.
1.1.5 Mar 18
What's new:
- Lists! Group your favorites into Commute, Weekend, Late Night — whatever makes sense. Long-press a card → Add to List, pick an icon, done. Filter your board from the top-right menu.
- Tap-to-favorite on Nearby. There's a little star on every nearby card now — one tap and it's on your board. Little buzz, little "Favorited" pill so you know it stuck.
- Chunkier buttons in a few places where they were easy to miss.
Mala's Data Quality Corner:
- Alerts stay in their lane now. Elevator outage at 125 St was showing up on 86 St (and everywhere else on the line) — we were treating "alert at one stop" as "alert on the whole route." Fixed for subway, LIRR, Metro-North, and ferry.
- PATH service alerts weren't coming through at all. They are now.
- NJ Transit bus alerts were scoped wrong — showing advisories for route 126 at stops that don't serve route 126. Also fixed.
- Elevator/escalator status at transfer stations covers all the connected lines, not just whichever one the MTA happened to file the outage under.
1.1.4 Mar 15
What's new:
- Lock screen widgets! Long-press your lock screen → Customize → tap below the clock → TinyBoard. Pick a favorite (or leave it on "Nearest") and get next arrivals without unlocking. Thanks to Alletterration on Reddit for the nudge.
- Search got a tune-up: "1 Av" finds the L station now (instead of 50 Queens bus stops), "96 St" properly ranks all four subway stations, and stuff like "kings highway" or "first av" actually works. We also catch typos — "wrold" finds World Trade Center, "cortlandy" finds Cortlandt St.
- Filter chips in search — tap Subway or Bus to narrow results. Tap again to clear.
Mala's Data Quality Corner:
- NJ Transit bus arrivals are back. NJT rotates their schedule data quarterly and the handoff wasn't automatic on our end — so for about a day every NJT bus stop said NO ARRIVALS. Fixed, and automated so it won't happen again.
- Subway schedule no longer shows phantom arrivals when a line is fully suspended. If the G is down for the weekend, we'll say so instead of cheerfully listing the timetable.
1.1.3 Mar 10
What's new:
- Subway trains were sometimes showing up twice (once live, once from the schedule) — now deduped so you only see each train once
- Tapping a scheduled subway arrival now actually opens the trip details instead of bouncing you back
- When you've scrolled down to see later arrivals, the screen refreshes without losing your place or ripping rows out from under you
- Full-screen map: the Apple Maps attribution no longer hides under the home indicator
- Arrival rows now show a small dot when the time is live-tracked (vs. scheduled) — so you know if that "4m" is a real bus or just the timetable talking
- New dismissible banner on your Home screen reminding you widgets exist. Tap it for a quick how-to, or find it anytime under Settings → Resources.
Mala's Data Quality Corner:
- LIRR/Metro-North/NJ Transit now show the scheduled departure time (the one on the timetable) with delays shown separately as "Late 2m" — matches what you'd see on station boards. If you know your 8:22 train, it'll say 8:22, not 8:24.
1.1.2 Mar 8
What's new:
- Subway trains were sometimes showing up twice (once live, once from the schedule) — now deduped so you only see each train once
- Tapping a scheduled subway arrival now actually opens the trip details instead of bouncing you back
- When you've scrolled down to see later arrivals, the screen refreshes without losing your place or ripping rows out from under you
- Full-screen map: the Apple Maps attribution no longer hides under the home indicator
Mala's Data Quality Corner:
- LIRR/Metro-North/NJ Transit now show the scheduled departure time (the one on the timetable) with delays shown separately as "Late 2m" — matches what you'd see on station boards. If you know your 8:22 train, it'll say 8:22, not 8:24.
1.1.1 Mar 6
Accumulate 1.2.5 release notes here as features land.
- Widgets, as many as you want — the upgrade prompt is gone.
- Widget picker shows direction (Eastbound / Westbound) so two saves of the same stop are easy to tell apart.
- Widgets keep showing arrivals through a network blip instead of going blank, and fit as many rows as the size allows.
- Taller map on every detail screen — more street context at a glance.
- Fresh installs land in your system light/dark mode, no permission prompts before you've seen anything.
- New "Rate TinyBoard" link in Settings.
- A pile of tiny fixes: detail screens bounce back from errors, deeplinks land where they should, the freshness pill stops fibbing.
### Mala's Data Quality Corner
- Route badges no longer truncate to "…" on small widgets — the headsign gives, the badge doesn't.
more Version 1.2.5 Apr 15
Data Not Linked to You The following data may be collected but it is not linked to your identity:
Purchases Location Usage Data Diagnostics