---
title: "Writing Room"
description: "Writing Room is a Sanity Studio plugin for long-form writing: a calm, full-screen room for your words, with every other field a click away under Details."
canonical_url: https://writingroom.studio/
plugin_version: 0.3.0
license: MIT
---

# Writing Room

> Writing Room is a Sanity Studio plugin for long-form writing: a calm, full-screen room for your words, with every other field a click away under Details.

**A calm, full-screen place to write.** Writing Room is a focused place for long-form writing, right inside your Studio. It gets out of the way while you type, and works with the document types you already have.

## Most Studios put writing in a form.

Panes, field labels and a toolbar around every sentence. That suits structured content, and it is hard to think in. The room is the same document, with everything but the words set aside.

## What's in the room

- **Controls that recede.** Leave, Details, Preview and Publish fade after a few keystrokes and come back when you pause.
- **Formatting on selection.** Bold, italic, headings, quotes and links in a small bubble above the text you select. Markdown works as you type, too.
- **An insert menu.** Type / on an empty line for images, embeds, code blocks, section breaks, quotes and lists.
- **Details, without leaving.** Every other field on the document is one click away, inside the room: slug, excerpt, cover image, tags and fields of your own.
- **Publish from the room.** The slug is settled and the date stamped for you. If something blocks the publish, the room takes you straight to it.
- **Yours to settle into.** Text size, typewriter scrolling, focus dimming, dark mode and fullscreen, in one menu. It works on a phone as well.

## Set up in three steps

You need a Studio on Sanity v6. The room finds each type's title, body, slug and published date by itself.

1. **Add the package**

   ```sh
   npm install sanity-plugin-writing-room
   ```

2. **Add the plugin, with the types you write in**

   ```ts
   // sanity.config.ts
   import {writingRoom} from 'sanity-plugin-writing-room'

   plugins: [structureTool(), writingRoom({types: ['post']})]
   ```

3. **Turn off Studio auto-updates**

   ```ts
   // sanity.cli.ts
   deployment: {autoUpdates: false}
   ```

**About step 3.** The room uses Sanity's App SDK, and an auto-updating Studio loads its own separate copy, so the room can't start in a deployed Studio until auto-updates are off. To upgrade later, bump `sanity` and deploy again. [Read the full install guide](https://writingroom.studio/docs/install.md).

## Starting from scratch?

Calm Editor is a template with a Studio, the Writing Room, and a Reading Site in the same typography and colour. Clone it to get both ends of a blog at once.

- [Get the template](https://github.com/mematthew123/calm-editor)

## Facts

- **Package:** [`sanity-plugin-writing-room`](https://www.npmjs.com/package/sanity-plugin-writing-room) on npm
- **Current version:** 0.3.0
- **Licence:** MIT
- **Price:** Free
- **Requires:** A Studio on Sanity v6, with Studio auto-updates off
- **Source:** [https://github.com/mematthew123/sanity-plugin-writing-room](https://github.com/mematthew123/sanity-plugin-writing-room)
- **Made by:** [Zephyr Pixels](https://zephyrpixels.dev)
- **More:** [Docs](https://writingroom.studio/docs.md) and [Changelog](https://writingroom.studio/changelog.md)

---

Writing Room is MIT licensed and free, made by [Zephyr Pixels](https://zephyrpixels.dev). Bugs and questions go to [GitHub issues](https://github.com/mematthew123/sanity-plugin-writing-room/issues). More: [About](https://writingroom.studio/about.md), [Contact](https://writingroom.studio/contact.md), [Privacy](https://writingroom.studio/privacy.md).

Every page of this site as markdown: [https://writingroom.studio/llms.txt](https://writingroom.studio/llms.txt)
