Skip to content

Article Workflow

This covers the full lifecycle of an article from the dashboard side. The backend owns the state transitions — the dashboard just sends the requests.

  1. Go to /articles/add — Fill in the article form:

    • Title — auto-generates a URL slug
    • Body — written in the CKEditor rich text editor
    • Tags — determines which child sites this article appears on
    • Category and Section — used for content organization
    • Thumbnail — uploaded via the S3 signed URL flow
  2. Save the article — Click Save. The dashboard calls POST /api/v1/article. The article is stored in MongoDB as a draft.

  3. Edit if needed — Go to /articles/edit/:id to update any fields. Calls PUT /api/v1/article/:id.

  4. Preview — Open /articles/preview/:id to see how the article will look before publishing.

  5. Assign to sites — Select which child sites should host this article. Calls POST /api/v1/article/host-site/:id.

  6. Publish — Click the Publish button. Calls PUT /api/v1/article/publish/:id. The article is now live and returned by the client API.

RSS-imported articles that aren’t auto-approved land in a pending queue. Admins can review them at /articles filtered by pending status.

ActionAPI call
ApprovePUT /api/v1/article/approve/:id
RejectPUT /api/v1/article/reject/:id