{
  "id": 15375979,
  "title": "Sanity CMS public dataset: why my codename desk needed a review queue",
  "url": "https://urgent.news/2026/10/18/sanity-cms-public-dataset-why-my-codename-desk-needed-a-review-queue",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-10-18T08:00:19.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/iam-tech/sanity-cms-public-dataset-why-my-codename-desk-needed-a-review-queue-2317"
  },
  "original_language": "en",
  "account": "The author manages codenames for personal use, initially storing them in a private CSV file. As the project grew, they wanted to share it as a static site. However, a static site that accepts submissions is no longer static, requiring a review workflow. The author rebuilt the site using Astro and Sanity, creating a public Sanity dataset for the review workflow. The review gap arose when someone wanted to submit a codename. A static site lacks a form handler, and using an unauthenticated webhook for submissions introduces security risks. The author wanted a pending state visible only to them, with the ability to approve or reject submissions. Sanity's draft and published states per document were almost the ideal workflow, but the submitter still needed a token to create a draft. To solve this, the author kept submissions as a separate document type, \"wordProposal,\" and built a minimal review interface in a Sanity Studio dashboard. The App SDK allowed them to add a queue view that listed proposals, displayed the proposed word and submission reason (if provided), and let the editor promote it to a published codename document or delete it.",
  "summary": "I manage codenames. Not for any organization that would pay me — just for myself, and now for whoever else lands on the page. Cryptonym Desk started as a private CSV that grew into something I wanted to share as a static site. The problem was that a static site that accepts submissions isn't really static anymore. Here's how I rebuilt it on Astro with a public Sanity dataset, where the review…",
  "key_points": [
    "Author initially stored codenames in a private CSV file",
    "Built a public Sanity dataset for review workflow",
    "Created separate wordProposal document type with review interface"
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}