Slug Collision Checks

A slug is the URL-friendly identifier for projects, collections, and papers.

Prerequisites

  • A Whitepapper account

Normalization

Slug normalization rules:

  1. Convert to lowercase
  2. Replace spaces with -
  3. Replace non [a-z0-9-] characters with -
  4. Collapse repeated -
  5. Trim leading/trailing -

Uniqueness scope

EntityUnique within
Project slugOwner account
Collection slugParent project
Paper slugOwner account

Availability check endpoints

GET /projects/slug/available?slug=<slug>&projectId=<optional>
GET /collections/slug/available?slug=<slug>&projectId=<projectId>&collectionId=<optional>
GET /papers/slug/available?slug=<slug>&paperId=<optional>

Collision behavior

OperationBehavior
Project createAuto-adjusts to a unique slug
Collection createAuto-adjusts to a unique slug
Project update with duplicate slugFails with conflict
Collection update with duplicate slugFails with conflict
Paper create with duplicate explicit slugFails with conflict

Auto-adjusted slugs use a short random suffix, not a simple increment.

Reserved path behavior

  • Username routes have reserved values (for example: api, dashboard, docs, sitemaps).
  • Project and paper reserved slug lists are currently empty in code, but this can be expanded later.
  • Empty or invalid normalized slugs are always unavailable.

Whitepapper

Whitepapper is an API first CMS engine for devs who publish content.

Antk i n