What’s New on Shop Orting: Road Alerts, Cardinals Scores, Daily Puzzles and a Facebook Page

Mt. Rainier from Sunrise, with the title What’s New on Shop Orting
Mt. Rainier from Sunrise, WA 23 Oct 2026, 2:00 AM PDT · Clear · Orionid meteor shower · Weather: MET Norway

A town site earns a place on someone’s phone by being right about today: which road is closed, whether the river is up, who won Friday night.


Earlier this month we wrote about building Shop Orting, the free directory of every business in our hometown, and about Orting News, its self-hosted local news feed. The site hasn’t sat still since. It now lists 110 businesses (up from 99), and it does a lot more than help you find a plumber.

This post covers what’s new: live road and emergency information, scores for every Orting High team, a daily Sudoku and crossword, a Facebook Page that mostly runs itself, and a long list of tools for business owners. As before, there’s some of the code behind it.

Three phones showing Shop Orting's Roads near Orting box, the Go Cardinals scores page and today's Sudoku
Roads, Cardinals scores and the daily puzzles, on a phone.

Be ready, in real time

Orting sits between two rivers in the shadow of a volcano, so the Be ready page matters more here than on most town sites. It already showed Mount Rainier’s alert level, the river flows and recent earthquakes. Now it keeps itself current while you look at it.

  • Roads near Orting. Collisions, closures and roadwork on the state highways around town (SR 162, 165, 161, 410 and nearby), from WSDOT, checked every 10 minutes. Each alert gets its official route shield and a road-sign icon for its type, and opens a map pin.
  • A page that updates itself. With the page open, it re-checks every 5 minutes and swaps in only what changed, without losing your place. “Updated 3 min ago” tells you how fresh it is.
  • A banner across the whole site, only while something official is happening: a flood warning or watch for Orting, the Puyallup at Orting reaching its action level, or a message from the school district (snow days, late starts).
The Be ready page: Right now cards for Mount Rainier, both rivers, weather alerts and earthquakes, and the Roads near Orting box
Right now, and Roads near Orting, on the Be ready page.

The road check is a small Python job on a plain systemd timer:

[Unit]
Description=Shop Orting: WSDOT road alerts every 10 minutes

[Timer]
OnBootSec=3min
OnUnitActiveSec=10min
RandomizedDelaySec=60

[Install]
WantedBy=timers.target

The page is clear about what it isn’t: it is not a warning system. Real warnings come from the lahar sirens, Pierce County ALERT and the city’s alerts, and the page tells people how to sign up for those.


A Facebook Page that keeps itself current

Most of Orting talks on Facebook, so Shop Orting now has a Page: facebook.com/shoporting. We didn’t want it to become one more thing someone has to remember to update, so the site posts to it:

  • Urgent road alerts (collisions, closures, fires, hazards) go up right away. When WSDOT updates or clears one, the site adds a comment to the same post instead of starting a new one.
  • Emergency alerts go up at any hour: National Weather Service warnings and watches, the Puyallup reaching flood stages, earthquakes of magnitude 3.0 or more within 60 miles, and Mount Rainier above “normal”.
  • Everything else waits for a sensible time: new stories, newly claimed listings, Cardinals final scores, and a Thursday afternoon “This weekend in Orting” roundup. No posts between 10 PM and 7 AM, and at most six a day.

Live feeds are noisy. A river gauge can tick back and forth across a line, and the Weather Service reissues the same warning many times. So a change has to show up in two readings in a row before we post about it. An “all clear” also has to hold for two runs, so one bad reading doesn’t tell the town a flood warning is over. Here’s that part of the code:

// Any other change must hold for two readings in a row,
// so a flapping feed posts nothing.
$p = $a['rank'] . '|' . $a['sig'];
if ( ( $b['pend'] ?? '' ) !== $p ) { $st['items'][ $k ]['pend'] = $p; continue; }

// ...and for an alert that has gone away:
// Two runs in a row, so one bad reading isn't an all-clear.
if ( ++$st['items'][ $k ]['gone'] < 2 ) continue;
so_fb_alert_follow( $b, "ENDED $when: {$b['label']} has ended",
	so_fb_alert_ended( $b, $t ) );

The everyday posts follow two simple rules, kept as plain code so they’re easy to read and change:

// 'auto' posts a day; more and Facebook shows the Page to fewer people
const SO_FB_DAILY = 6;

// Quiet hours, 10 PM to 7 AM Orting time
function so_fb_quiet( $ts ) {
	$h = (int) so_fb_local( 'G', $ts );
	return $h >= 22 || $h < 7;
}

Before anything posts, the site checks it: the text isn’t empty, the event has a date and place and isn’t over, the link loads, the share picture is a real image, and Facebook’s own read of the page shows the same picture. Anything that fails is held and sent to our team chat as a ready-to-paste post, for a person to fix and post by hand. One off switch stops all of it.

Share cards for everything

Every listing, event, story, road alert and section of the site now has its own share picture, drawn by the site and redrawn when something changes. The Cardinals card shows the current varsity records. A road card puts the route shield and the alert on a photo of the road into town, all inside the square middle that Facebook’s phone feed crops to.

Four Shop Orting share cards: Be ready, an SR 410 collision alert, Go Cardinals with varsity records, and Today's puzzles
Share cards, drawn by the site. The Cardinals card updates when the scores do.

Go Cardinals

The new Cardinals page has results and schedules for every Orting High team at every level, Varsity, JV and C-Team, from the South Puget Sound League’s official schedules. It updates every hour.

  • Each sport shows where Orting stands in the league (“1st of 8 in the league · League 5–0 · Overall 7–0”) and a record for each level.
  • Games list the date, time, home or away, the venue and the opponent. Scores read Orting first.
  • Sports that haven’t started yet stay out of the way until their first game.
  • Varsity home games also show up on the town events calendar.

What it doesn’t show is just as deliberate: no student rosters, ever. It’s a page about teams.

The Go Cardinals page with Football and Volleyball: league standing, upcoming games and recent wins
Every sport and level, with league standings and results.

A daily Sudoku and an Orting crossword

There’s now a puzzles page with a Sudoku in three levels and The Orting Crossword, a small daily crossword where every answer is an Orting word: places, rivers, history and the things that make the town. Both have large-print versions for the kitchen table.

Today's puzzles: the easy Sudoku with number buttons, pencil marks and a How to play box
The daily Sudoku. The crossword is just below it on the same page.

Everyone in town gets the same puzzle each day, with no server involved. The puzzle is built in your browser from a random-number generator seeded with today’s date in Pacific time, so every phone in Orting draws the same grid:

// Same date, same seed, same grid on every phone in town.
var date = new Intl.DateTimeFormat('en-CA', {
	timeZone: 'America/Los_Angeles',
	year: 'numeric', month: '2-digit', day: '2-digit',
}).format(new Date());             // e.g. "2026-10-17"
var game = generate(date, bank);   // a seeded draw from the Orting word bank

Your progress is saved on your own device until midnight, and nothing about your game is sent anywhere.


More for business owners

Owners can now do a lot more with their listing, without asking us:

  • Notices and deals. Post a dated notice (“Closed for inventory Monday”) or a deal with an end date. A “closed” notice switches off Open now for those days, and deals appear on the listing, on its card and in a “Deals this week” row on the home page.
  • Holiday hours. Set special hours for Thanksgiving or any other day, and Open now follows them.
  • Now hiring. A hiring note on the listing, plus a Hiring now filter in the directory.
  • Meet the owner. A short introduction with the people behind the counter.
  • Your photos. Up to seven photos, which owners can reorder by dragging, choose a cover for, and remove or add to. Visitors can tap any photo to see it bigger.
  • A listing checklist and share kit. A “your listing” checklist shows what’s still missing. The share kit has the listing’s share card, a post to paste, and a “Find us on Shop Orting” badge for the shop’s own website.
  • Monthly stats. Owners get a short email each month with their listing’s views and taps. The first one goes out November 1.

Claiming a listing now also gets it a welcome post on the Facebook Page. Nonprofits get a Nonprofit tag and a place in the Community and nonprofits category. Businesses with no storefront say “Based in Orting”, and their address stays private.


Finding things faster

  • Search as you type on the home page and directory, and spelling mistakes are fixed for you (“piza” finds pizza, with a “Showing results for” note).
  • Saved places. Tap the heart on any business to keep it in a Saved list. It’s stored only in your own browser. We don’t have accounts for visitors, and we don’t want them.
  • Smarter hours. “Open now · until 5pm”, “Closes soon” and “Closed · opens Tue 7am”, plus Open late and Open Sunday filters.
  • Events three ways. Cards, a list grouped by week, or a month calendar. On a phone the calendar shows dots, and you tap a day to see its events.
  • Calendars for just what you want. Besides the full events calendar, you can subscribe to just city meetings, schools, the library, or community and local business events.
The events calendar view for October 2026, with the day's events listed under the month grid
Events in calendar view. Pick a day to see what’s on.

Orting News, a step further

The news feed from our last post picked up a few things:

  • Full city notices. City of Orting notices now post their full text, not the short teaser from the city’s feed, and each one ends with a note that it’s shared as posted by the city.
  • Maps for road closures. Traffic and detour stories get a map pin where the streets they name cross.
  • “What’s on the agenda” previews. A few days before a council meeting, the system reads the agenda packet and drafts a plain-English preview, with a fixed “How to take part” section. The checks from the news pipeline apply here too: the draft is flagged if it uses a figure that isn’t in the packet, talks about the meeting in the past tense, or says the council “will approve” something. A person reviews every preview before it posts.
  • City meeting links on events. Upcoming city meetings pick up their agenda packet, Zoom and live TV links automatically once the city posts them.

Faster on a phone

  • Lighter photos. Phones now get a phone-sized crop of the big home page photo, less than half the download (257 KB down to 118 KB), and the page starts loading it right away.
  • Images are cached for 30 days, so the second visit is quick.
  • Maps that don’t trap your thumb. On a touch screen, one finger scrolls the page and two fingers move the map.
  • Buttons that react the moment you tap them. Android’s grey tap box is gone.
  • A proper home-screen icon on Android.

And on the home page, tap the cardinal logo.


How we ship it

Shop Orting has a full staging copy. Every change goes there first and has to pass the full regression suite: browser tests of every page at phone, tablet and desktop widths, accessibility checks, the search tests and the pipeline tests. Then the same suite runs against production.

Some features are finished but held back on purpose until they’re ready. The release script builds production from the exact commit and refuses anything that’s still on hold, so a half-finished idea can’t slip out with a bug fix.


Why we keep at it

Rainier IT is an Orting business, and Shop Orting is our way of helping the town we work in. It’s still free for every business, with no ads and no paid placement. The best feature requests come from people who use it, so if there’s something you’d like to see, email [email protected].

If you run an Orting business: find yours on shoporting.org and claim it for free, or add your business.

If you’d like something like this for your town, your organization or your business: this is the kind of work we do. See our web design services, or get in touch.

$ share

Christopher Engelhardt

Rainier IT

Rainier IT

$ leave_a_comment

Your email is never shown. Comments are read before they appear.

Protected by reCAPTCHA. Google's Privacy Policy and Terms apply.