Pet adoption · Portland, OR

Waiting, choreographed. Home, sooner.

Every pet profile on this page arrives the way a good host greets you: shell first, shape before detail, cards landing one by one — never a blank page, never a lie about progress.

Meet the pets
0pets homed
0%stay adopted
0days avg. to match
✦ Available now
Milo · 2 yrsCalm, sofa-trained, good with kids

The catalog

Meet the residents

Filter, then hit “Replay the load” — the grid re-runs its whole arrival: shell, shimmer, staged reveal.

The loading lab

Three ways to wait. Only one feels fast.

The same wait, three treatments. Shimmer wins because it moves with direction — pulse reads as stuck, a lone spinner says nothing at all.

Shimmer — the default

Light sweeps left to right across the exact shape of what's coming. Direction reads as progress.

Pulse — the fallback

Opacity breathing. Acceptable for reduced motion and low-power mode — never the first choice.

Spinner — the last resort

For buttons and tiny inline waits only. A full page of spinner is a page with nothing to say.

Honest progress, live

Press run — each step completes for real before the bar moves. No timer-driven fake percentages.

  1. Check your details
  2. Review home notes
  3. Confirm match

Good to know

Questions, answered before you ask

A spinner says "something is happening". A skeleton shows the shape of what's coming, so your eye already knows where to look when it lands. It feels faster even when the wait is identical.

The shimmer stops and you get a plain explanation plus one retry button, right where the content should have been. A loading state with no ending is the one unforgivable state.

Yes. With prefers-reduced-motion, shimmer becomes a static tint, staggered cards appear instantly, and the ticker stops. Nothing essential ever depends on motion.

Ready when you are

Your new housemate is already waiting.

Four honest steps, no fake progress bars, and a match card that arrives the way everything here does — in order.

Start an application →