List-page URL params — naming variants

URL params = the ?foo=bar part of the browser address bar. They hold filter / page / sort state so refresh, share, bookmark all work. Below: same user action ("page 2, 50 per page, search 'hussam', sort name asc") rendered in 3 naming styles.

Why this matters

Right now /campaigns uses one set of names. We're about to bless ONE convention for /blasts, /template-groups, /orders, /clients, /orders too. Pick once now → consistent everywhere.

User-facing surface = the URL bar. Try refreshing /campaigns?page=2 today — that's the param at work.

Option A

Verbose — keep /campaigns names verbatim

Recommended

Zero migration. /campaigns links keep working. Same names enforced on PR-3 pages.

User on page 2, 50 per page, searching "hussam", sorting by name asc
🔒 nexus.rodeoleads.com/campaigns?page=2&pageSize=50&search=hussam&sort=name&sortDir=asc
/blasts with category filter under same scheme
🔒 nexus.rodeoleads.com/blasts?page=1&pageSize=25&category=SALES

Pros

  • Zero risk to existing /campaigns bookmarks
  • Self-documenting — sortDir obvious
  • Matches what code already does today

Cons

  • Longer URLs (3-4 extra chars)
  • search vs q — most apps use q
Option B

Short — ?p, ?s, ?q, ?sort, ?dir

Cleaner URLs. /campaigns links break (internal app, low impact). Primitive enforces new names everywhere.

Same scenario: page 2, 50 per page, search hussam, sort name asc
🔒 nexus.rodeoleads.com/campaigns?p=2&s=50&q=hussam&sort=name&dir=asc
/blasts
🔒 nexus.rodeoleads.com/blasts?p=1&s=25&category=SALES

Pros

  • Compact URLs (~30% shorter)
  • q matches Google/Linear/most apps

Cons

  • ?s ambiguous — size? sort? search?
  • Existing /campaigns bookmarks 404-state
  • Less readable when debugging
Option C

Mixed — keep page+pageSize, rename rest

?page, ?pageSize, ?q, ?sort, ?dir. Pragmatic middle.

Same scenario
🔒 nexus.rodeoleads.com/campaigns?page=2&pageSize=50&q=hussam&sort=name&dir=asc

Pros

  • Keeps the 2 longest names readable
  • q + dir are industry standard
  • Migrate /campaigns once, then primitive imposes on rest

Cons

  • Existing ?search= and ?sortDir= links break
  • Slight inconsistency (long page names, short sort name)