USA Archery Platform Modernization
A working modernization of a national governing body's WordPress site — 2,900+ articles migrated to Payload CMS, a rebuilt information architecture, role-based editorial workflow, and a governed AI assistant with citation-backed answers.
- Project
- USA Archery (proposal & working demo)
- Role
- Principal — strategy, IA, and implementation
- Timeline
- 2026
- 2,900+
- Articles migrated
- 739
- Resources catalogued
- ~1-2 min
- Build time, from 6+
Context
USA Archery is a national governing body: Olympic and Paralympic team information, membership, coach and judge certification, event sanctioning, SafeSport compliance, and a large archive of member resources — all on a WordPress installation that had become difficult to manage and expensive to maintain.
I built a working modernization rather than a slide deck. The demo is deployed and explorable, and it runs the real content: the actual article archive, the actual resource library, the actual navigation depth. Proposals argue about what a platform could be. Running code settles it.
Information architecture first
The legacy site’s problem wasn’t visual. It was structural — deep sidebar navigation, unclear ownership of content, and audiences with genuinely different goals sharing the same undifferentiated paths.
I audited the legacy navigation and feature inventory, then rebuilt the IA around who is actually arriving: someone who wants to try archery, a current member renewing, a coach seeking certification, a parent checking SafeSport, a fan following the national team. The deep sidebar became a mega menu that can carry real depth without hiding it, and every CMS page renders a contextual “In This Section” sidebar that auto-detects the current section and shows siblings — so no page is a dead end.
That work is documented as artifacts, not vibes: an IA map, ADRs for the CMS selection and data migration, a migration strategy, a design system, and a content-ownership matrix specifying exactly which content staff control versus developers.
Migrating the archive
Content migration is where these projects usually fail. 2,900+ articles, 134 static pages and 739 downloadable resources came across into Payload collections, and the interesting work was in the exceptions:
- Scraped 404s excluded. 24 pages of captured error content would otherwise have migrated as real pages.
- Cloudflare email-protection artifacts replaced. Obfuscated email placeholders became working contact links.
- Legacy internal links rewritten from absolute
usarchery.orgURLs to relative paths, so navigation survives the move. - Thin pages auto-flagged as drafts rather than published empty.
- Resources auto-categorized by keyword matching across 21 categories, which classified 652 of 739 — with the remainder left for human review instead of forced into a wrong bucket.
Slug derivation preferred the original sitemap URL over the scraped source URL,
because the latter produced paths that redirected through /events/ and broke.
Migrating content is only half the job — an archive nobody can search is just storage. The news listing, Resource Center and site search share one faceting vocabulary, so a query for “coach” narrows 2,903 articles to 264 and can be cut further by category; the resource library filters across 21 categories; the national team roster filters 207 athletes by division and discipline; and the event finder filters 41 events by state and by national, regional, state or local level.
Nock: an AI assistant with governance
The site’s assistant is named Nock, after the notch on an arrow — the first step before every shot. It answers in three tiers, and the ordering is the whole design:
- Curated intents. Staff-authored Q&A pairs matched on keywords and optional regex patterns, with priority ordering for overlaps. Instant, exact, and worded the way the organization wants.
- Knowledge-backed retrieval. With no curated match, it searches CMS pages and articles, injects the top results as context at reduced temperature, and returns a grounded answer that displays which sources it drew from.
- Model fallback. Only when the organization’s own content has nothing.
This is KCS reasoning expressed as conversational AI. Curated answers are the known-good articles. Retrieval with visible citations is search against the knowledge base. The fallback is explicitly the last resort, not the default — the inverse of how most bolted-on chatbots behave.
The governance matters as much as the retrieval. Nock declines medical advice, won’t speculate on athlete selection, won’t disclose private athlete information, redirects SafeSport questions to the U.S. Center for SafeSport, and is instructed to say it doesn’t know rather than guess. Staff manage intents directly in the admin panel, each one tracking trigger counts and last-triggered dates — so content gaps surface as data. When many questions fall through to fallback, that’s the backlog.
Making it run
- Build time cut from 6+ minutes to roughly 1–2 by stopping build-time prerendering of all 2,900+ articles (roughly 8,700 database round trips per deploy) and moving to on-demand generation.
- Tiered caching sized for a governing body’s traffic shape, where an Olympic medal can arrive as a traffic spike: 24-hour revalidation on article detail and CMS pages, one hour on news listings, with stale-while-revalidate on the news API.
- Query reduction on the news page from three to one, eliminating two full-table scans over 2,900+ documents.
- Indexes added on publish date, slug and categories.
- Repository cleanup removing 1.3 GB of migrated content files from git tracking once the data lived in Postgres.
Editorial control
Five roles — Super Admin, Admin, Editor, Author, Manager — with a numeric hierarchy and a fine-grained permission matrix across collections. Authors draft their own news, events and media and edit only their own work; editors and above can update anything; membership deletion is restricted to Super Admin. The goal was WordPress-equivalent permissions, because an organization that already delegates content this way shouldn’t have to change how it operates to adopt a better platform.
Logged-in editors also get a floating edit button on front-end pages that links straight to the corresponding admin record — the small affordance that decides whether staff actually maintain a site.
Design tokens follow the organization’s published brand style guide: Poppins, and the specified Pantone-matched navy and red.
Status
A working demo and proposal, not a live production site. Everything described here runs against the real migrated content — but it hasn’t been adopted, and I won’t present it as though it has.
Inside the build
5More designed & built work
-
TerraGreetings
TerraGreetings
A subscription platform for printable outdoor-themed greeting cards — built end to end with auth, payments, an admin CMS, and a browser-side duplex PDF print engine.
-
KnowledgePeak.ai
KnowledgePeak.ai
An AI documentation generator that puts enterprise knowledge practice within reach of small teams — guided questionnaires produce structured articles, with provider-agnostic LLM routing and admin-configurable templates.
-
Shimmer (open source)
Shimmer
Open-source audio restoration and mastering software that removes generation artifacts from AI-produced music. Deterministic DSP, nine detectors on a protected high band, and an audible check on exactly what was removed.
Questions about this work?
Happy to go deeper on any of it — the decisions, the trade-offs, or what I'd do differently.