
bus-lot
Buses parked across the yard, low winter sun behind them.
portrait672 × 12009:16
49 frames of the SMART tag world, each under a short ID. Say “use S4” and it lands on the screen.
ID = letter + number
BBus & fleetB1–B7
DDrivers & staffD1–D9
SStudents & ridersS1–S18
CCampus & communityC1–C7
TTech & operationsT1–T8
Click a frame to inspect it. Click its ID chip to copy.
49 shown

bus-lot
Buses parked across the yard, low winter sun behind them.
portrait672 × 12009:16

bus-loop
Buses nose-to-tail along the school loop, riders queued at the far end.
portrait899 × 12003:4

bus-parked
A single bus at the curb of a residential street under live oaks.
portrait672 × 12009:16

bus-driving-road
Two buses climbing a switchback through dry hill country at dusk.
portrait672 × 12009:16

bus-dash
The driver's dash and wheel from the seat, windshield open to the lot.
portrait672 × 12009:16

bus-seats
The empty aisle of a bus, low sun raking the seat backs.
portrait672 × 12009:16

subdivision-stop
A bus stopped on a new subdivision street, riders gathering at the door.
landscape1600 × 10673:2

driver-portrait
Waist-up portrait of a driver in a canvas work jacket, terminal behind him.
portrait928 × 12323:4

at-the-wheel
Over the shoulder from the seat — hands on the wheel, buses ahead through the glass.
landscape1344 × 8963:2

yard-conversation
Two drivers in uniform talking between rows of parked buses.
landscape1344 × 8963:2

depot-loadout
A driver and monitor loading crates with two teachers before a trip.
landscape1456 × 81616:9

teacher-wave
A staff member waving students off as they head for the bus.
landscape1600 × 89616:9

field-trip
An aide reading a printed roster as riders file past onto the bus.
portrait899 × 12003:4

field-trip-2
An aide with a clipboard beside a long line of students at the bus door.
portrait672 × 12009:16

driver-training
Drivers seated through an in-service training session.
portrait672 × 12009:16

driver-training-2
From behind a driver at a training-room desk, the room out of focus.
portrait672 × 12009:16

waiting-for-bus
A parent and small child on the sidewalk watching the bus come up the street at sunrise.
portrait672 × 12009:16

backpack-porch
A packed backpack and shoes waiting by the front door at first light.
portrait672 × 12009:16

guardian
A grandparent walking a small child up the porch steps at dusk.
portrait672 × 12009:16

sunrise-pickup
Three riders boarding at the curb with the sun coming up behind the bus.
landscape1600 × 10673:2

morning-walkup
A parent and boy walking up to the open bus door on a crisp morning.
portrait1278 × 16004:5

porch-view-pickup
The bus at the curb seen from a neighbor’s porch, lights on at dusk.
portrait1278 × 16004:5

autumn-walk-up
Two students walking a leaf-covered sidewalk toward the waiting bus.
portrait896 × 16009:16

running-late
A child running down the sidewalk toward a bus already at the stop.
landscape1600 × 89616:9

door-side-wait
A boy with a backpack waiting at the open bus door, hard sun flare across the frame.
landscape1600 × 10673:2

accessible-boarding
A wheelchair rider and family at the bus in evening rain, headlights on the wet road.
landscape1600 × 10673:2

curbside-greeting
A driver greeting a boy at the door with the line of buses stretching away.
portrait896 × 16009:16

bus-line-greeting
A driver in the doorway with two riders, buses lined up down the loop.
portrait960 × 12004:5

bus-line-boarding
An adult guiding two boys aboard at the school loop.
portrait960 × 12004:5

rainy-arrival
Umbrellas along the walk and buses reflected in a rain puddle.
portrait960 × 12004:5

winter-field-trip
A long queue of students beside a row of buses on a cold, bare day.
landscape1456 × 81616:9

dismissal-stairs
A crowd of students streaming down the stairs at dismissal.
portrait899 × 12003:4

dismissal-car
A student climbing into a car in the pickup line at sunset.
portrait672 × 12009:16

smarttag-cover-photo
A mother holding her child at the curb with the bus pulled up behind them.
portrait1856 × 24643:4

school-parking
The school across an empty lot under a wide evening sky.
portrait672 × 12009:16

empty-schoolyard
A quiet courtyard with a picnic table under a spreading live oak.
portrait899 × 12003:4

lockers
A locker corridor with window light striping the floor.
portrait899 × 12003:4

backpack-hallway
Backpacks on hooks in a warm, empty elementary corridor.
portrait672 × 12009:16

corridor-custodian
A custodian at a classroom door in a long, dim corridor.
landscape1456 × 81616:9

crosswalk
Yellow crossing flags in a bucket at the corner of an empty crosswalk.
portrait672 × 12009:16

bike-frontyard
A bike dropped on the lawn in front of a house at golden hour.
portrait672 × 12009:16

tablet-handoff
A dispatcher handing a rugged tablet across the counter to a driver.
landscape1344 × 8963:2

tablet-wiring
Hands wiring a rugged tablet into the footwell of a bus.
landscape1344 × 8963:2

dash-device-install
A technician fitting a device at the bus dash, daylight through the windshield.
landscape1344 × 8963:2

key-board
A hand lifting a key ring off a tagged key board in the depot office.
square1024 × 10241:1

dispatch-headset
A headset coiled on the dispatch desk in front of a live monitor.
portrait672 × 12009:16

router
Two routing coordinators at the transportation office counter.
square1024 × 10241:1

router-2
A routing coordinator's office seen through the doorway, buses out the window.
portrait904 × 12003:4

inspect-tires
A flashlight tire check at the bus wheel after dark.
portrait672 × 12009:16
Nothing matches that. Try a category letter, a slug, or a tag like “rain”.
Reference it by ID and the registry hands back the image plus the crop position that keeps its subject in frame. An unknown ID throws at build time rather than rendering a hole.
import { Image } from 'astro:assets';
import { photo } from '@/lib/photo-library';
const hero = photo('S4');
<Image src={hero.src} alt={hero.caption} class="size-full object-cover"
style={`object-position:${hero.position}`} />New photos: drop the raw exports into src/images/dashboard_photos/, run npm run photos:webp, rename each to a slug, then add a row to the registry. They show up here with the next free number in their category.