Skip to main content
Blog

Real images for app and site builders

A field guide built by an agent, live on this page, shown the moment before images and the moment after. Twelve pages, twelve retrieval calls, every fish the real species.

Agents build content sites now: travel guides, catalogs, directories, field guides. The text generalizes fine. The images do not. Every page needs the one specific thing the page is about, and a generator would quietly fake all of them; readers who know the subject would know. Below is the honest version of that problem, live on this page: a small field guide, exactly as an agent scaffolds it, and then the same build after twelve retrieval calls filled its image slots.

Flip it yourself. The placeholder state is real, that is what every content build looks like the moment before images. The filled state is real too: every photo came back from a Lightdrift query naming the species, and each one is the actual fish, from National Park Service stream surveys, public domain, license chip rendered from the rights answer.

The same build, before and after retrieval

streamguide.example/fishes
StreamguideSearch species

Eastern Rivers and Mountains

Fishes of Appalachian Streams

Twelve residents of the cold creeks and rivers of the eastern mountains, photographed in the field.

12 species · 5 families · Updated for the fall survey

alt="variegate darter"

Variegate darter

No. 01

Etheostoma variatum

A riffle specialist of the Ohio drainage; spring males flush orange and blue.

PercidaeView entry →
alt="rainbow darter"

Rainbow darter

No. 02

Etheostoma caeruleum

Among the most colorful fish in North America, banded blue and orange at spawn.

PercidaeView entry →
alt="greenside darter"

Greenside darter

No. 03

Etheostoma blennioides

The largest darter in many eastern streams; breeding males turn leaf green.

PercidaeView entry →
alt="snubnose darter"

Snubnose darter

No. 04

Etheostoma simoterum

A blunt-snouted darter of upland streams in the Tennessee drainage.

PercidaeView entry →
alt="shield darter"

Shield darter

No. 05

Percina peltata

An Atlantic slope species that patrols the sandy runs between riffles.

PercidaeView entry →
alt="roanoke darter"

Roanoke darter

No. 06

Percina roanoka

Endemic to the Roanoke and neighboring drainages; males wear an orange dorsal band.

PercidaeView entry →
alt="common shiner"

Common shiner

No. 07

Luxilus cornutus

A schooling minnow of cool creeks that spawns over the gravel nests of chubs.

LeuciscidaeView entry →
alt="redbreast sunfish"

Redbreast sunfish

No. 08

Lepomis auritus

The river sunfish of the East, marked by a long black ear flap.

CentrarchidaeView entry →
alt="rock bass"

Rock bass

No. 09

Ambloplites rupestris

A red-eyed ambush feeder that holds under boulders and sunken logs.

CentrarchidaeView entry →
alt="redfin pickerel"

Redfin pickerel

No. 10

Esox americanus

A pocket-sized pike of weedy backwaters, rarely longer than a foot.

EsocidaeView entry →
alt="mottled sculpin"

Mottled sculpin

No. 11

Cottus bairdii

A flattened bottom-dweller whose presence signals clean, cold water.

CottidaeView entry →
alt="american eel"

American eel

No. 12

Anguilla rostrata

Born in the Sargasso Sea; climbs rivers and lives for decades before returning.

AnguillidaeView entry →
© Streamguide · Photographs: National Park Service, public domainField notesContributeRSS
The twelve queries, one per image slot
variegate darter (Etheostoma variatum), full body, adult
rainbow darter (Etheostoma caeruleum), full body, adult
greenside darter (Etheostoma blennioides), full body, adult
snubnose darter (Etheostoma simoterum), full body, adult
shield darter (Percina peltata), full body, adult
Roanoke darter (Percina roanoka), full body, adult
common shiner (Luxilus cornutus), full body, adult
redbreast sunfish (Lepomis auritus), full body, adult
rock bass (Ambloplites rupestris), full body, adult
redfin pickerel (Esox americanus), full body, adult
mottled sculpin (Cottus bairdii), full body, adult
American eel (Anguilla rostrata), full body, adult

Why this needed retrieval

Look at the darters. Six of the twelve entries are small striped fish from the same family, several from the same genus, and the differences that matter, the orange spot rows, the dorsal band, the snout, are exactly what a generator blurs and exactly what keyword stock search cannot rank. This is the long tail again: the more specific the page, the fewer real photographs exist, and the more it matters that you find the actual one. A guide like this is only trustworthy if every image is the species it claims.

The loop that filled the slots is the same two-endpoint loop from the rest of this blog. The agent already knows what each page is about, so the page subject is the query. The top result arrives with its rights answer, the build script keeps commercial-safe results and renders the license chip from the same field, and the credits section below was generated, not written.

The loop, per page
for (const page of guide.pages) {
  const res = await lightdrift.search({
    query: `${page.common} (${page.latin}), full body, adult`, k: 3 });
  const img = res.results.find((r) => r.rights.commercial);
  page.image = { src: img.file, credit: img.rights.attribution };
}

Twelve pages, twelve queries, $0.24 of retrieval, and a guide where every image can face a reader who knows fish. That is the difference between a site that looks finished and a site that is finished.

Image credits
Read the docs

© 2026 Ondara, LLC (dba Lightdrift)