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)